diff --git a/README.md b/README.md index 078d95ab..f75d162a 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,9 @@ Returns an object with all contracts from a deployment and their addresses. | Authorizer with Adaptor Validation | [`20230414-authorizer-wrapper`](./tasks/20230414-authorizer-wrapper) | | Voting Escrow Remapper | [`20230504-vebal-remapper`](./tasks/20230504-vebal-remapper) | | Gauge Registrant V4 | [`20230519-gauge-adder-v4`](./tasks/20230519-gauge-adder-v4) | +| LayerZero OmniVotingEscrowChild (Base) | [`20230524-base-lz-omni-voting-escrow-child`](./tasks/20230524-base-lz-omni-voting-escrow-child) | +| LayerZero OmniVotingEscrow | [`20230524-mainnet-lz-omni-voting-escrow`](./tasks/20230524-mainnet-lz-omni-voting-escrow) | +| LayerZero OmniVotingEscrowChild | [`20230524-lz-omni-voting-escrow-child`](./tasks/20230524-lz-omni-voting-escrow-child) | | L2 VeBoost V2 | [`20230525-l2-veboost-v2`](./tasks/20230525-l2-veboost-v2) | | Polygon ZkEVM Root Gauge, for veBAL voting | [`20230526-zkevm-root-gauge-factory`](./tasks/20230526-zkevm-root-gauge-factory) | | Gauge Working Balance Helper | [`20230526-gauge-working-balance-helper`](./tasks/20230526-gauge-working-balance-helper) | diff --git a/addresses/arbitrum.json b/addresses/arbitrum.json index 4d5658b7..5a217efb 100644 --- a/addresses/arbitrum.json +++ b/addresses/arbitrum.json @@ -666,6 +666,15 @@ ], "status": "ACTIVE" }, + "20230524-lz-omni-voting-escrow-child": { + "contracts": [ + { + "name": "OmniVotingEscrowChild", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, "20230525-l2-veboost-v2": { "contracts": [ { diff --git a/addresses/avalanche.json b/addresses/avalanche.json index 2664f26f..1097c8f8 100644 --- a/addresses/avalanche.json +++ b/addresses/avalanche.json @@ -317,6 +317,15 @@ ], "status": "ACTIVE" }, + "20230524-lz-omni-voting-escrow-child": { + "contracts": [ + { + "name": "OmniVotingEscrowChild", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, "20230525-l2-veboost-v2": { "contracts": [ { diff --git a/addresses/base.json b/addresses/base.json index cfa24ea9..811623b2 100644 --- a/addresses/base.json +++ b/addresses/base.json @@ -298,6 +298,15 @@ ], "status": "ACTIVE" }, + "20230524-base-lz-omni-voting-escrow-child": { + "contracts": [ + { + "name": "OmniVotingEscrowChild", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, "20230525-l2-veboost-v2": { "contracts": [ { diff --git a/addresses/fraxtal.json b/addresses/fraxtal.json index a53ba78a..17f694c6 100644 --- a/addresses/fraxtal.json +++ b/addresses/fraxtal.json @@ -200,6 +200,24 @@ ], "status": "ACTIVE" }, + "20230524-lz-omni-voting-escrow-child": { + "contracts": [ + { + "name": "OmniVotingEscrowChild", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, + "20230525-l2-veboost-v2": { + "contracts": [ + { + "name": "VeBoostV2", + "address": "0x1702067424096F07A60e62cceE3dE9420068492D" + } + ], + "status": "ACTIVE" + }, "20230526-gauge-working-balance-helper": { "contracts": [ { diff --git a/addresses/gnosis.json b/addresses/gnosis.json index d7f2673d..84760c8e 100644 --- a/addresses/gnosis.json +++ b/addresses/gnosis.json @@ -408,6 +408,15 @@ ], "status": "ACTIVE" }, + "20230524-lz-omni-voting-escrow-child": { + "contracts": [ + { + "name": "OmniVotingEscrowChild", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, "20230525-l2-veboost-v2": { "contracts": [ { diff --git a/addresses/mainnet.json b/addresses/mainnet.json index 63afd266..bde90154 100644 --- a/addresses/mainnet.json +++ b/addresses/mainnet.json @@ -1102,6 +1102,15 @@ ], "status": "ACTIVE" }, + "20230524-mainnet-lz-omni-voting-escrow": { + "contracts": [ + { + "name": "OmniVotingEscrow", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, "20230526-gauge-working-balance-helper": { "contracts": [ { diff --git a/addresses/optimism.json b/addresses/optimism.json index 43b8f650..b8d653ec 100644 --- a/addresses/optimism.json +++ b/addresses/optimism.json @@ -577,6 +577,15 @@ ], "status": "ACTIVE" }, + "20230524-lz-omni-voting-escrow-child": { + "contracts": [ + { + "name": "OmniVotingEscrowChild", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, "20230525-l2-veboost-v2": { "contracts": [ { diff --git a/addresses/polygon.json b/addresses/polygon.json index 946d57d4..bfe6a759 100644 --- a/addresses/polygon.json +++ b/addresses/polygon.json @@ -657,6 +657,15 @@ ], "status": "ACTIVE" }, + "20230524-lz-omni-voting-escrow-child": { + "contracts": [ + { + "name": "OmniVotingEscrowChild", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, "20230525-l2-veboost-v2": { "contracts": [ { diff --git a/addresses/zkevm.json b/addresses/zkevm.json index c672a10e..cbfd3b18 100644 --- a/addresses/zkevm.json +++ b/addresses/zkevm.json @@ -302,6 +302,15 @@ ], "status": "ACTIVE" }, + "20230524-lz-omni-voting-escrow-child": { + "contracts": [ + { + "name": "OmniVotingEscrowChild", + "address": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" + } + ], + "status": "ACTIVE" + }, "20230525-l2-veboost-v2": { "contracts": [ { diff --git a/deployment-txs/arbitrum.json b/deployment-txs/arbitrum.json index 362b9fa8..a695f6c5 100644 --- a/deployment-txs/arbitrum.json +++ b/deployment-txs/arbitrum.json @@ -106,5 +106,6 @@ "0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd": "0x9d94ebdc30e11d4e20ee8ba0cc2eba5df421735df85a96b147ff667a83659ae5", "0x4b7b369989e613ff2C65768B7Cf930cC927F901E": "0xa37e4213136abcfe45855253c4a6c834a4b208b94b59485d0084805daa4b4fcb", "0x4bdCc2fb18AEb9e2d281b0278D946445070EAda7": "0xfa1e7642e135fb32dc14c990b851e5e7a0ac7a463e3a60c5003ae4142396f45e", - "0xA38e07BcF8793E6e907EfFAD031081A99eFDa898": "0x4f8701da30c393fff745a0baada4bc3d71bdeef8a2356afb7ef57a7cc77f8720" + "0xA38e07BcF8793E6e907EfFAD031081A99eFDa898": "0x4f8701da30c393fff745a0baada4bc3d71bdeef8a2356afb7ef57a7cc77f8720", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0x115af6c8bb146c64232c51730de36d908927b55066243a78eb836349714f6818" } \ No newline at end of file diff --git a/deployment-txs/avalanche.json b/deployment-txs/avalanche.json index ad71aee1..e4221ba8 100644 --- a/deployment-txs/avalanche.json +++ b/deployment-txs/avalanche.json @@ -57,5 +57,6 @@ "0x76578ecf9a141296Ec657847fb45B0585bCDa3a6": "0x98f5e020e44143c890b635ccdf772758bbb3d902d7ca797f3d042ff7635d5d04", "0x88ED12A90142fDBFe2a28f7d5b48927254C7e760": "0xadb29ed4ca32249de255e8cd1588447fe41607493adbf0796d75a6f493784caf", "0xb9F8AB3ED3F3aCBa64Bc6cd2DcA74B7F38fD7B88": "0x246248ad396826dbfbdc5360cb9cbbdb3a672efa08cc745d1670900888c58c7b", - "0xc6057Da8673bE26378470A302628a07f70775F3A": "0x5bd10e1f25fb58b92b768f99a3dedf28740c49e90ba039aa1a33ac922f41d4a8" + "0xc6057Da8673bE26378470A302628a07f70775F3A": "0x5bd10e1f25fb58b92b768f99a3dedf28740c49e90ba039aa1a33ac922f41d4a8", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0x4f455045bb9de45ebda848291b4f6c6b142a6d243eada2ea184f48cf69a78f13" } \ No newline at end of file diff --git a/deployment-txs/base.json b/deployment-txs/base.json index 4443d35f..5de92c30 100644 --- a/deployment-txs/base.json +++ b/deployment-txs/base.json @@ -52,5 +52,6 @@ "0xE42FFA682A26EF8F25891db4882932711D42e467": "0xe4e40a72bd07b1f5ecda4500a9d7a82ba148972319d12760b5db67974b3e56ff", "0x82416Ce6eA7dD4923d4A3ED70a79B4A432a382C4": "0x36851b090d449fecfafa0932617d309ed02419c398b46aed466bffc6ef9b0205", "0x956CCab09898C0AF2aCa5e6C229c3aD4E93d9288": "0x5d3342faf0368b939daa93247536afa26cc72c83de52ba7711ae1b8646688467", - "0xe98F9e1aD609A48b7af16F0772144eB117b59b45": "0x0491b9653646cf9154c6300950f24f18df93addc4a7798838e9b0e3905068d57" + "0xe98F9e1aD609A48b7af16F0772144eB117b59b45": "0x0491b9653646cf9154c6300950f24f18df93addc4a7798838e9b0e3905068d57", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0x0695ead4a9938c9ced5d64a86e1064942acddefdb0c492c4ce83a11545c3b2c7" } \ No newline at end of file diff --git a/deployment-txs/fraxtal.json b/deployment-txs/fraxtal.json index 9e628660..4ebdfb02 100644 --- a/deployment-txs/fraxtal.json +++ b/deployment-txs/fraxtal.json @@ -32,5 +32,7 @@ "0x3f170631ed9821Ca51A59D996aB095162438DC10": "0x4854c1b91e1cffc6f7a8d5bc25da1695b1d2eb561afe975db90307b498ad9063", "0x662112B8CB18889e81459b92CA0f894a2ef2c1B8": "0x838062bb4d0d14b3e6cf00ff009733834af3ffa70bfa749ef6e24950f2c4e2bd", "0x4bdCc2fb18AEb9e2d281b0278D946445070EAda7": "0xd11ef5c062019f9af7f9da881db570377e965531a36d3b54c5057e6f59aaff84", - "0xA65bc2c42697494a53DC53bf1a45c9e72201467F": "0x9b9fb9ea4ea5ce89eeff4b3cbe1405a9116697ab665a41b8085ef1e1c5a18eb5" + "0xA65bc2c42697494a53DC53bf1a45c9e72201467F": "0x9b9fb9ea4ea5ce89eeff4b3cbe1405a9116697ab665a41b8085ef1e1c5a18eb5", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0x0ce7f2cfb8fd42c85e61e0a126a8395fe02c03ab2ddaf77ec57c46460e79064b", + "0x1702067424096F07A60e62cceE3dE9420068492D": "0x79e47b53d349bccc53a37701d1245ad540df5087f8e793491af3393f13580f1c" } \ No newline at end of file diff --git a/deployment-txs/gnosis.json b/deployment-txs/gnosis.json index 16f58a1f..750f89e2 100644 --- a/deployment-txs/gnosis.json +++ b/deployment-txs/gnosis.json @@ -68,5 +68,6 @@ "0xDB8d758BCb971e482B2C45f7F8a7740283A1bd3A": "0xdcde98dee90abc1083b789ce69a4f433bdad3e86c4b1b2ea3e35edd10d892f97", "0x8eA89804145c007e7D226001A96955ad53836087": "0xbc8fc1f4ab466c972716c6776e73dfc38462741c9a2bc4fe72853925716c1b0e", "0x47B489bf5836f83ABD928C316F8e39bC0587B020": "0xc3fc1fb96712a0659b7e9e5f406f63bdf5cbd5df9e04f0372c28f75785036791", - "0x5d98909Aa2b3d964907B3735597F47E06b04D8b4": "0xa814573ffdd86b757737f901806202098a899736c359c51e38c258301f59c4a2" + "0x5d98909Aa2b3d964907B3735597F47E06b04D8b4": "0xa814573ffdd86b757737f901806202098a899736c359c51e38c258301f59c4a2", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0xbddecd204c0ff30e450edee2fd8c90b57632ba63525f7c1771a5e0017308b15e" } \ No newline at end of file diff --git a/deployment-txs/mainnet.json b/deployment-txs/mainnet.json index edaad5a3..54e0df0d 100644 --- a/deployment-txs/mainnet.json +++ b/deployment-txs/mainnet.json @@ -167,5 +167,6 @@ "0xeA66501dF1A00261E3bB79D1E90444fc6A186B62": "0xcc232687fe7d8e42e86f66c29a12c0da6d99c4ae7132f7c25aec44bafe9f2d9d", "0x5B42eC6D40f7B7965BE5308c70e2603c0281C1E9": "0x4149cadfe5d3431205d9819fca44ed7a4c2b101adc51adc75cc4586dee237be8", "0xF1C849190Ecfae64d0Bd0a0708708E1De906aaB5": "0x19ecdc8479e8880edaf6072dc8b408daf8cc053edb1ed34e00dbfcce0a0b3150", - "0x18CC3C68A5e64b40c846Aa6E45312cbcBb94f71b": "0x1f11890a40a96fb3be92f2ab5ae160a70252e671ade0038242f21a6992f0ceab" + "0x18CC3C68A5e64b40c846Aa6E45312cbcBb94f71b": "0x1f11890a40a96fb3be92f2ab5ae160a70252e671ade0038242f21a6992f0ceab", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0x8ea045aa2c50cc3fe24f6e9122cac4d1825b9367598fce148fce736b2540a1ab" } \ No newline at end of file diff --git a/deployment-txs/optimism.json b/deployment-txs/optimism.json index 15602dd1..644c4537 100644 --- a/deployment-txs/optimism.json +++ b/deployment-txs/optimism.json @@ -96,5 +96,6 @@ "0x83E443EF4f9963C77bd860f94500075556668cb8": "0x6be69a855504cbd233f9fd4ec075910860a89389cfc18aa23a084f8e15f2d4b7", "0xA69E0Ccf150a29369D8Bbc0B3f510849dB7E8EEE": "0x8248e5013965d70663de36bfbf99e43117a575f39166d231d60baeb00401835e", "0x4bdCc2fb18AEb9e2d281b0278D946445070EAda7": "0xa38b696479f35a9751ca8b1f0ddeb160188b3146113975b8c2b657c2fe7d7fd2", - "0x287E4A89d03deCdF7ac372c7B5332AbCDb3D912A": "0x39cc35f6c6e6707bd82515a66d36b486fb7dc78cec6e2ddb58a80371cc617779" + "0x287E4A89d03deCdF7ac372c7B5332AbCDb3D912A": "0x39cc35f6c6e6707bd82515a66d36b486fb7dc78cec6e2ddb58a80371cc617779", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0xb4cfd52505333ab3c84871c50cdfe4cad5e1aa4675a7f1f42a7ec53e8e6f8562" } \ No newline at end of file diff --git a/deployment-txs/polygon.json b/deployment-txs/polygon.json index f03ddaa3..e7134715 100644 --- a/deployment-txs/polygon.json +++ b/deployment-txs/polygon.json @@ -106,5 +106,6 @@ "0xa3b370092aeb56770B23315252aB5E16DAcBF62B": "0x32a0d4b22c69b174ad62578ac8f9c7d367262baabb26576fbcc28bbe06e00b4a", "0xFf8b3b627a6959C85A8e82DBf8BEFB38579c2280": "0x11420b9ee5ec2e99e8ab41374aeb1558b1584634e7b11da28a7f69e64b9f3d6e", "0xEAedc32a51c510d35ebC11088fD5fF2b47aACF2E": "0x7b9678ad538b1cd3f3a03e63455e7d49a1bc716ea42310fbf99df4bf93ecfdfa", - "0xd78b8a04498a15c54cf96d3e201cdd85D4ba524d": "0x8727013d2e11655bfa9703cdbff17c7d956ed8be9146fe33e2f7d15b6e9f8e9f" + "0xd78b8a04498a15c54cf96d3e201cdd85D4ba524d": "0x8727013d2e11655bfa9703cdbff17c7d956ed8be9146fe33e2f7d15b6e9f8e9f", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0x430e8acfb86ef749181a711dc18dc08446db30c73b8babcceeb021a18924b0d5" } \ No newline at end of file diff --git a/deployment-txs/zkevm.json b/deployment-txs/zkevm.json index fc28ebb0..ba620297 100644 --- a/deployment-txs/zkevm.json +++ b/deployment-txs/zkevm.json @@ -55,5 +55,6 @@ "0xA76C92aaF1FE0f4c3be46edd1Ab020F5774eDf46": "0xb988d13eca0852d274fc72ec976ed0ec28cb638a22144624abe87e64a8c491bb", "0x0c5538098EBe88175078972F514C9e101D325D4F": "0x73c666089cafd2358e82336a5bf1b67ae18b92d3907a1df042590b2f3793b0ce", "0xf23b4DB826DbA14c0e857029dfF076b1c0264843": "0xd90d4cd68db73599c00379d0ad19fdca212a509b85a1ec5bea4f6635ec2f33bc", - "0x6Db6e2d95acF228bC0c9a98e0EB55144962Fe6c0": "0x0a7ea7a3efb453a2e292abd982aff61a9816ba484280c0338b1a042d9fd85d62" + "0x6Db6e2d95acF228bC0c9a98e0EB55144962Fe6c0": "0x0a7ea7a3efb453a2e292abd982aff61a9816ba484280c0338b1a042d9fd85d62", + "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad": "0xcd474de0a621203da4f2ad2fe5066b8c13d8071851148105472ba3d3f17b8887" } \ No newline at end of file diff --git a/tasks/20230524-base-lz-omni-voting-escrow-child/artifact/OmniVotingEscrowChild.json b/tasks/20230524-base-lz-omni-voting-escrow-child/artifact/OmniVotingEscrowChild.json new file mode 100644 index 00000000..da98789a --- /dev/null +++ b/tasks/20230524-base-lz-omni-voting-escrow-child/artifact/OmniVotingEscrowChild.json @@ -0,0 +1,909 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "OmniVotingEscrowChild", + "sourceName": "contracts/OmniVotingEscrowChild.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_lzEndpoint", + "type": "address" + }, + { + "internalType": "address", + "name": "_delegationHook", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_reason", + "type": "bytes" + } + ], + "name": "MessageFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "_payloadHash", + "type": "bytes32" + } + ], + "name": "RetryMessageSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "uint16", + "name": "_type", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minDstGas", + "type": "uint256" + } + ], + "name": "SetMinDstGas", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "precrime", + "type": "address" + } + ], + "name": "SetPrecrime", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_path", + "type": "bytes" + } + ], + "name": "SetTrustedRemote", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_remoteAddress", + "type": "bytes" + } + ], + "name": "SetTrustedRemoteAddress", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "srcChainId", + "type": "uint16" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "totalSupplyPoint", + "type": "tuple" + } + ], + "name": "TotalSupplyFromChain", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "srcChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "userPoint", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "totalSupplyPoint", + "type": "tuple" + } + ], + "name": "UserBalFromChain", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "delegationHook", + "outputs": [ + { + "internalType": "contract IL2LayerZeroDelegation", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "name": "failedMessages", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + } + ], + "name": "forceResumeReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_chainId", + "type": "uint16" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_configType", + "type": "uint256" + } + ], + "name": "getConfig", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "internalType": "struct IVotingEscrow.Point", + "name": "_point", + "type": "tuple" + } + ], + "name": "getPointValue", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + } + ], + "name": "getTrustedRemoteAddress", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + } + ], + "name": "isTrustedRemote", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "locked__end", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lzEndpoint", + "outputs": [ + { + "internalType": "contract ILayerZeroEndpoint", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "lzReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "name": "minDstGasLookup", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "nonblockingLzReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "precrime", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "retryMessage", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_chainId", + "type": "uint16" + }, + { + "internalType": "uint256", + "name": "_configType", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_config", + "type": "bytes" + } + ], + "name": "setConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_packetType", + "type": "uint16" + }, + { + "internalType": "uint256", + "name": "_minGas", + "type": "uint256" + } + ], + "name": "setMinDstGas", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_precrime", + "type": "address" + } + ], + "name": "setPrecrime", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + } + ], + "name": "setReceiveVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + } + ], + "name": "setSendVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_path", + "type": "bytes" + } + ], + "name": "setTrustedRemote", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_remoteAddress", + "type": "bytes" + } + ], + "name": "setTrustedRemoteAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupplyPoint", + "outputs": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "name": "trustedRemoteLookup", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userPoints", + "outputs": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60c0604052600a805463ffffffff1916620100001790553480156200002357600080fd5b50604051620027e5380380620027e583398101604081905262000046916200015e565b81806200005333620000f1565b6001600160a01b03908116608052821615159050620000de5760405162461bcd60e51b815260206004820152603460248201527f4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f60448201527f6e20686f6f6b2063616e6e6f7420626520307830000000000000000000000000606482015260840160405180910390fd5b6001600160a01b031660a0525062000196565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200015957600080fd5b919050565b600080604083850312156200017257600080fd5b6200017d8362000141565b91506200018d6020840162000141565b90509250929050565b60805160a0516125f1620001f460003960008181610376015281816118e601526119d80152600081816104d20152818161066b015281816108ba0152818161094301528181610abd01528181610f27015261136901526125f16000f3fe6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea26469706673582212208e77efc2663b67c491d6a8aa9cd21d2e9d7d8aee12e9c19fbab897fdd343d6ee64736f6c634300080a0033", + "deployedBytecode": "0x6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea26469706673582212208e77efc2663b67c491d6a8aa9cd21d2e9d7d8aee12e9c19fbab897fdd343d6ee64736f6c634300080a0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/tasks/20230524-base-lz-omni-voting-escrow-child/build-info/OmniVotingEscrowChild.json b/tasks/20230524-base-lz-omni-voting-escrow-child/build-info/OmniVotingEscrowChild.json new file mode 100644 index 00000000..1dc95231 --- /dev/null +++ b/tasks/20230524-base-lz-omni-voting-escrow-child/build-info/OmniVotingEscrowChild.json @@ -0,0 +1 @@ +{"id":"3e5729f97d299c29c901a9ffc28b30a3","_format":"hh-sol-build-info-1","solcVersion":"0.8.10","solcLongVersion":"0.8.10+commit.fc410830","input":{"language":"Solidity","sources":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\nimport \"./ILayerZeroUserApplicationConfig.sol\";\n\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\n // @param _dstChainId - the destination chain identifier\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\n // @param _payload - a custom bytes payload to send to the destination contract\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\n\n // @notice used by the messaging library to publish verified payload\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source contract (as bytes) at the source chain\n // @param _dstAddress - the address on destination chain\n // @param _nonce - the unbound message ordering nonce\n // @param _gasLimit - the gas limit for external contract execution\n // @param _payload - verified payload to send to the destination contract\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\n\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\n\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\n // @param _srcAddress - the source chain contract address\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\n\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\n // @param _dstChainId - the destination chain identifier\n // @param _userApplication - the user app address on this EVM chain\n // @param _payload - the custom message to send over LayerZero\n // @param _payInZRO - if false, user app pays the protocol fee in native token\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\n\n // @notice get this Endpoint's immutable source identifier\n function getChainId() external view returns (uint16);\n\n // @notice the interface to retry failed message on this Endpoint destination\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n // @param _payload - the payload to be retried\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\n\n // @notice query if any STORED payload (message blocking) at the endpoint.\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\n\n // @notice query if the _libraryAddress is valid for sending msgs.\n // @param _userApplication - the user app address on this EVM chain\n function getSendLibraryAddress(address _userApplication) external view returns (address);\n\n // @notice query if the _libraryAddress is valid for receiving msgs.\n // @param _userApplication - the user app address on this EVM chain\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\n\n // @notice query if the non-reentrancy guard for send() is on\n // @return true if the guard is on. false otherwise\n function isSendingPayload() external view returns (bool);\n\n // @notice query if the non-reentrancy guard for receive() is on\n // @return true if the guard is on. false otherwise\n function isReceivingPayload() external view returns (bool);\n\n // @notice get the configuration of the LayerZero messaging library of the specified version\n // @param _version - messaging library version\n // @param _chainId - the chainId for the pending config change\n // @param _userApplication - the contract address of the user application\n // @param _configType - type of configuration. every messaging library has its own convention.\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\n\n // @notice get the send() LayerZero messaging library version\n // @param _userApplication - the contract address of the user application\n function getSendVersion(address _userApplication) external view returns (uint16);\n\n // @notice get the lzReceive() LayerZero messaging library version\n // @param _userApplication - the contract address of the user application\n function getReceiveVersion(address _userApplication) external view returns (uint16);\n}\n"},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroReceiver {\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\n // @param _srcChainId - the source endpoint identifier\n // @param _srcAddress - the source sending contract address from the source chain\n // @param _nonce - the ordered message nonce\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroUserApplicationConfig {\n // @notice set the configuration of the LayerZero messaging library of the specified version\n // @param _version - messaging library version\n // @param _chainId - the chainId for the pending config change\n // @param _configType - type of configuration. every messaging library has its own convention.\n // @param _config - configuration in the bytes. can encode arbitrary content.\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\n\n // @notice set the send() LayerZero messaging library version to _version\n // @param _version - new messaging library version\n function setSendVersion(uint16 _version) external;\n\n // @notice set the lzReceive() LayerZero messaging library version to _version\n // @param _version - new messaging library version\n function setReceiveVersion(uint16 _version) external;\n\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\n // @param _srcChainId - the chainId of the source chain\n // @param _srcAddress - the contract address of the source contract at the source chain\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity >=0.6.0;\npragma experimental ABIEncoderV2;\n\nlibrary LzLib {\n // LayerZero communication\n struct CallParams {\n address payable refundAddress;\n address zroPaymentAddress;\n }\n\n //---------------------------------------------------------------------------\n // Address type handling\n\n struct AirdropParams {\n uint airdropAmount;\n bytes32 airdropAddress;\n }\n\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\n } else {\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\n }\n }\n\n // Build Adapter Params\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\n // txType 1\n // bytes [2 32 ]\n // fields [txType extraGas]\n return abi.encodePacked(uint16(1), _uaGas);\n }\n\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\n require(_params.airdropAmount > 0, \"Airdrop amount must be greater than 0\");\n require(_params.airdropAddress != bytes32(0x0), \"Airdrop address must be set\");\n\n // txType 2\n // bytes [2 32 32 bytes[] ]\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\n }\n\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n assembly {\n gasLimit := mload(add(_adapterParams, 34))\n }\n }\n\n // Decode Adapter Params\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n assembly {\n txType := mload(add(_adapterParams, 2))\n uaGas := mload(add(_adapterParams, 34))\n }\n require(txType == 1 || txType == 2, \"Unsupported txType\");\n require(uaGas > 0, \"Gas too low\");\n\n if (txType == 2) {\n assembly {\n airdropAmount := mload(add(_adapterParams, 66))\n airdropAddress := mload(add(_adapterParams, 86))\n }\n }\n }\n\n //---------------------------------------------------------------------------\n // Address type handling\n // TODO: testing\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\n require(bytes12(_bytes32Address) == bytes12(0), \"Invalid address\"); // first 12 bytes should be empty\n return address(uint160(uint(_bytes32Address)));\n }\n\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\n return bytes32(uint(uint160(_address)));\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../interfaces/ILayerZeroReceiver.sol\";\nimport \"../interfaces/ILayerZeroUserApplicationConfig.sol\";\nimport \"../interfaces/ILayerZeroEndpoint.sol\";\nimport \"../util/BytesLib.sol\";\n\n/*\n * a generic LzReceiver implementation\n */\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\n using BytesLib for bytes;\n\n ILayerZeroEndpoint public immutable lzEndpoint;\n mapping(uint16 => bytes) public trustedRemoteLookup;\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\n address public precrime;\n\n event SetPrecrime(address precrime);\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\n\n constructor(address _endpoint) {\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\n }\n\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\n // lzReceive must be called by the endpoint for security\n require(_msgSender() == address(lzEndpoint), \"LzApp: invalid endpoint caller\");\n\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \"LzApp: invalid source sending contract\");\n\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n }\n\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\n\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\n require(trustedRemote.length != 0, \"LzApp: destination chain is not a trusted source\");\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\n }\n\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\n uint providedGasLimit = _getGasLimit(_adapterParams);\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\n require(minGasLimit > 0, \"LzApp: minGasLimit not set\");\n require(providedGasLimit >= minGasLimit, \"LzApp: gas limit is too low\");\n }\n\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\n require(_adapterParams.length >= 34, \"LzApp: invalid adapterParams\");\n assembly {\n gasLimit := mload(add(_adapterParams, 34))\n }\n }\n\n //---------------------------UserApplication config----------------------------------------\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\n }\n\n // generic config for LayerZero user Application\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\n }\n\n function setSendVersion(uint16 _version) external override onlyOwner {\n lzEndpoint.setSendVersion(_version);\n }\n\n function setReceiveVersion(uint16 _version) external override onlyOwner {\n lzEndpoint.setReceiveVersion(_version);\n }\n\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\n }\n\n // _path = abi.encodePacked(remoteAddress, localAddress)\n // this function set the trusted path for the cross-chain communication\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\n trustedRemoteLookup[_srcChainId] = _path;\n emit SetTrustedRemote(_srcChainId, _path);\n }\n\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\n }\n\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\n bytes memory path = trustedRemoteLookup[_remoteChainId];\n require(path.length != 0, \"LzApp: no trusted path record\");\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\n }\n\n function setPrecrime(address _precrime) external onlyOwner {\n precrime = _precrime;\n emit SetPrecrime(_precrime);\n }\n\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\n require(_minGas > 0, \"LzApp: invalid minGas\");\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\n }\n\n //--------------------------- VIEW FUNCTION ----------------------------------------\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\n return keccak256(trustedSource) == keccak256(_srcAddress);\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./LzApp.sol\";\nimport \"../util/ExcessivelySafeCall.sol\";\n\n/*\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\n */\nabstract contract NonblockingLzApp is LzApp {\n using ExcessivelySafeCall for address;\n\n constructor(address _endpoint) LzApp(_endpoint) {}\n\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\n\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\n\n // overriding the virtual function in LzReceiver\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\n // try-catch all errors/exceptions\n if (!success) {\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\n }\n }\n\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\n // only internal transaction\n require(_msgSender() == address(this), \"NonblockingLzApp: caller must be LzApp\");\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n }\n\n //@notice override this function\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\n\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\n // assert there is message to retry\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\n require(payloadHash != bytes32(0), \"NonblockingLzApp: no stored message\");\n require(keccak256(_payload) == payloadHash, \"NonblockingLzApp: invalid payload\");\n // clear the stored message\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\n // execute the message. revert if it fails again\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../interfaces/ILayerZeroReceiver.sol\";\nimport \"../interfaces/ILayerZeroEndpoint.sol\";\nimport \"../libraries/LzLib.sol\";\n\n/*\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\nunlike a real LayerZero endpoint, it is\n- no messaging library versioning\n- send() will short circuit to lzReceive()\n- no user application configuration\n*/\ncontract LZEndpointMock is ILayerZeroEndpoint {\n uint8 internal constant _NOT_ENTERED = 1;\n uint8 internal constant _ENTERED = 2;\n\n mapping(address => address) public lzEndpointLookup;\n\n uint16 public mockChainId;\n bool public nextMsgBlocked;\n\n // fee config\n RelayerFeeConfig public relayerFeeConfig;\n ProtocolFeeConfig public protocolFeeConfig;\n uint public oracleFee;\n bytes public defaultAdapterParams;\n\n // path = remote addrss + local address\n // inboundNonce = [srcChainId][path].\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\n //todo: this is a hack\n // outboundNonce = [dstChainId][srcAddress]\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\n // // outboundNonce = [dstChainId][path].\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\n // storedPayload = [srcChainId][path]\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\n // msgToDeliver = [srcChainId][path]\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\n\n // reentrancy guard\n uint8 internal _send_entered_state = 1;\n uint8 internal _receive_entered_state = 1;\n\n struct ProtocolFeeConfig {\n uint zroFee;\n uint nativeBP;\n }\n\n struct RelayerFeeConfig {\n uint128 dstPriceRatio; // 10^10\n uint128 dstGasPriceInWei;\n uint128 dstNativeAmtCap;\n uint64 baseGas;\n uint64 gasPerByte;\n }\n\n struct StoredPayload {\n uint64 payloadLength;\n address dstAddress;\n bytes32 payloadHash;\n }\n\n struct QueuedPayload {\n address dstAddress;\n uint64 nonce;\n bytes payload;\n }\n\n modifier sendNonReentrant() {\n require(_send_entered_state == _NOT_ENTERED, \"LayerZeroMock: no send reentrancy\");\n _send_entered_state = _ENTERED;\n _;\n _send_entered_state = _NOT_ENTERED;\n }\n\n modifier receiveNonReentrant() {\n require(_receive_entered_state == _NOT_ENTERED, \"LayerZeroMock: no receive reentrancy\");\n _receive_entered_state = _ENTERED;\n _;\n _receive_entered_state = _NOT_ENTERED;\n }\n\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\n event ValueTransferFailed(address indexed to, uint indexed quantity);\n\n constructor(uint16 _chainId) {\n mockChainId = _chainId;\n\n // init config\n relayerFeeConfig = RelayerFeeConfig({\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\n dstGasPriceInWei: 1e10,\n dstNativeAmtCap: 1e19,\n baseGas: 100,\n gasPerByte: 1\n });\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\n oracleFee = 1e16;\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\n }\n\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\n require(_path.length == 40, \"LayerZeroMock: incorrect remote address size\"); // only support evm chains\n\n address dstAddr;\n assembly {\n dstAddr := mload(add(_path, 20))\n }\n\n address lzEndpoint = lzEndpointLookup[dstAddr];\n require(lzEndpoint != address(0), \"LayerZeroMock: destination LayerZero Endpoint not found\");\n\n // not handle zro token\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\n require(msg.value >= nativeFee, \"LayerZeroMock: not enough native for fees\");\n\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\n\n // refund if they send too much\n uint amount = msg.value - nativeFee;\n if (amount > 0) {\n (bool success, ) = _refundAddress.call{value: amount}(\"\");\n require(success, \"LayerZeroMock: failed to refund\");\n }\n\n // Mock the process of receiving msg on dst chain\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\n if (dstNativeAmt > 0) {\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\"\");\n if (!success) {\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\n }\n }\n\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\n bytes memory payload = _payload;\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\n }\n\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n\n // assert and increment the nonce. no message shuffling\n require(_nonce == ++inboundNonce[_srcChainId][_path], \"LayerZeroMock: wrong nonce\");\n\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\n if (sp.payloadHash != bytes32(0)) {\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\n\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\n // shift all the msgs over so we can treat this like a fifo via array.pop()\n if (msgs.length > 0) {\n // extend the array\n msgs.push(newMsg);\n\n // shift all the indexes up for pop()\n for (uint i = 0; i < msgs.length - 1; i++) {\n msgs[i + 1] = msgs[i];\n }\n\n // put the newMsg at the bottom of the stack\n msgs[0] = newMsg;\n } else {\n msgs.push(newMsg);\n }\n } else if (nextMsgBlocked) {\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\"\"));\n // ensure the next msgs that go through are no longer blocked\n nextMsgBlocked = false;\n } else {\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\n // ensure the next msgs that go through are no longer blocked\n nextMsgBlocked = false;\n }\n }\n }\n\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\n return inboundNonce[_chainID][_path];\n }\n\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\n return outboundNonce[_chainID][_srcAddress];\n }\n\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n\n // Relayer Fee\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\n\n // LayerZero Fee\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\n\n // return the sum of fees\n nativeFee = nativeFee + relayerFee + oracleFee;\n }\n\n function getChainId() external view override returns (uint16) {\n return mockChainId;\n }\n\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \"LayerZeroMock: invalid payload\");\n\n address dstAddress = sp.dstAddress;\n // empty the storedPayload\n sp.payloadLength = 0;\n sp.dstAddress = address(0);\n sp.payloadHash = bytes32(0);\n\n uint64 nonce = inboundNonce[_srcChainId][_path];\n\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\n }\n\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n return sp.payloadHash != bytes32(0);\n }\n\n function getSendLibraryAddress(address) external view override returns (address) {\n return address(this);\n }\n\n function getReceiveLibraryAddress(address) external view override returns (address) {\n return address(this);\n }\n\n function isSendingPayload() external view override returns (bool) {\n return _send_entered_state == _ENTERED;\n }\n\n function isReceivingPayload() external view override returns (bool) {\n return _receive_entered_state == _ENTERED;\n }\n\n function getConfig(\n uint16, /*_version*/\n uint16, /*_chainId*/\n address, /*_ua*/\n uint /*_configType*/\n ) external pure override returns (bytes memory) {\n return \"\";\n }\n\n function getSendVersion(\n address /*_userApplication*/\n ) external pure override returns (uint16) {\n return 1;\n }\n\n function getReceiveVersion(\n address /*_userApplication*/\n ) external pure override returns (uint16) {\n return 1;\n }\n\n function setConfig(\n uint16, /*_version*/\n uint16, /*_chainId*/\n uint, /*_configType*/\n bytes memory /*_config*/\n ) external override {}\n\n function setSendVersion(\n uint16 /*version*/\n ) external override {}\n\n function setReceiveVersion(\n uint16 /*version*/\n ) external override {}\n\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n // revert if no messages are cached. safeguard malicious UA behaviour\n require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n require(sp.dstAddress == msg.sender, \"LayerZeroMock: invalid caller\");\n\n // empty the storedPayload\n sp.payloadLength = 0;\n sp.dstAddress = address(0);\n sp.payloadHash = bytes32(0);\n\n emit UaForceResumeReceive(_srcChainId, _path);\n\n // resume the receiving of msgs after we force clear the \"stuck\" msg\n _clearMsgQue(_srcChainId, _path);\n }\n\n // ------------------------------ Other Public/External Functions --------------------------------------------------\n\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\n return msgsToDeliver[_srcChainId][_srcAddress].length;\n }\n\n // used to simulate messages received get stored as a payload\n function blockNextMsg() external {\n nextMsgBlocked = true;\n }\n\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\n lzEndpointLookup[destAddr] = lzEndpointAddr;\n }\n\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\n relayerFeeConfig.baseGas = _baseGas;\n relayerFeeConfig.gasPerByte = _gasPerByte;\n }\n\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\n protocolFeeConfig.zroFee = _zroFee;\n protocolFeeConfig.nativeBP = _nativeBP;\n }\n\n function setOracleFee(uint _oracleFee) external {\n oracleFee = _oracleFee;\n }\n\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\n defaultAdapterParams = _adapterParams;\n }\n\n // --------------------- Internal Functions ---------------------\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\n while (msgs.length > 0) {\n QueuedPayload memory payload = msgs[msgs.length - 1];\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\n msgs.pop();\n }\n }\n\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\n if (_payInZro) {\n return protocolFeeConfig.zroFee;\n } else {\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\n }\n }\n\n function _getRelayerFee(\n uint16, /* _dstChainId */\n uint16, /* _outboundProofType */\n address, /* _userApplication */\n uint _payloadSize,\n bytes memory _adapterParams\n ) internal view returns (uint) {\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\n if (txType == 2) {\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \"LayerZeroMock: dstNativeAmt too large \");\n totalRemoteToken += dstNativeAmt;\n }\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\n totalRemoteToken += remoteGasTotal;\n\n // tokenConversionRate = dstPrice / localPrice\n // basePrice = totalRemoteToken * tokenConversionRate\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n return basePrice + _payloadSize * pricePerByte;\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"content":"// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá \n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\n\nlibrary BytesLib {\n function concat(\n bytes memory _preBytes,\n bytes memory _postBytes\n )\n internal\n pure\n returns (bytes memory)\n {\n bytes memory tempBytes;\n\n assembly {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // Store the length of the first bytes array at the beginning of\n // the memory for tempBytes.\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n\n // Maintain a memory counter for the current write location in the\n // temp bytes array by adding the 32 bytes for the array length to\n // the starting location.\n let mc := add(tempBytes, 0x20)\n // Stop copying when the memory counter reaches the length of the\n // first bytes array.\n let end := add(mc, length)\n\n for {\n // Initialize a copy counter to the start of the _preBytes data,\n // 32 bytes into its memory.\n let cc := add(_preBytes, 0x20)\n } lt(mc, end) {\n // Increase both counters by 32 bytes each iteration.\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // Write the _preBytes data into the tempBytes memory 32 bytes\n // at a time.\n mstore(mc, mload(cc))\n }\n\n // Add the length of _postBytes to the current length of tempBytes\n // and store it as the new length in the first 32 bytes of the\n // tempBytes memory.\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n\n // Move the memory counter back from a multiple of 0x20 to the\n // actual end of the _preBytes data.\n mc := end\n // Stop copying when the memory counter reaches the new combined\n // length of the arrays.\n end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n // Update the free-memory pointer by padding our last write location\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n // next 32 byte block, then round down to the nearest multiple of\n // 32. If the sum of the length of the two arrays is zero then add\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\n mstore(0x40, and(\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n not(31) // Round down to the nearest 32 bytes.\n ))\n }\n\n return tempBytes;\n }\n\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n assembly {\n // Read the first 32 bytes of _preBytes storage, which is the length\n // of the array. (We don't need to use the offset into the slot\n // because arrays use the entire slot.)\n let fslot := sload(_preBytes.slot)\n // Arrays of 31 bytes or less have an even value in their slot,\n // while longer arrays have an odd value. The actual length is\n // the slot divided by two for odd values, and the lowest order\n // byte divided by two for even values.\n // If the slot is even, bitwise and the slot with 255 and divide by\n // two to get the length. If the slot is odd, bitwise and the slot\n // with -1 and divide by two.\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n // Since the new array still fits in the slot, we just need to\n // update the contents of the slot.\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n sstore(\n _preBytes.slot,\n // all the modifications to the slot are inside this\n // next block\n add(\n // we can just add to the slot contents because the\n // bytes we want to change are the LSBs\n fslot,\n add(\n mul(\n div(\n // load the bytes from memory\n mload(add(_postBytes, 0x20)),\n // zero all bytes to the right\n exp(0x100, sub(32, mlength))\n ),\n // and now shift left the number of bytes to\n // leave space for the length in the slot\n exp(0x100, sub(32, newlength))\n ),\n // increase length by the double of the memory\n // bytes length\n mul(mlength, 2)\n )\n )\n )\n }\n case 1 {\n // The stored value fits in the slot, but the combined value\n // will exceed it.\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // The contents of the _postBytes array start 32 bytes into\n // the structure. Our first read should obtain the `submod`\n // bytes that can fit into the unused space in the last word\n // of the stored array. To get this, we read 32 bytes starting\n // from `submod`, so the data we read overlaps with the array\n // contents by `submod` bytes. Masking the lowest-order\n // `submod` bytes allows us to add that value directly to the\n // stored value.\n\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(\n sc,\n add(\n and(\n fslot,\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n ),\n and(mload(mc), mask)\n )\n )\n\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n // Start copying to the last used word of the stored array.\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // Copy over the first `submod` bytes of the new data as in\n // case 1 above.\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n }\n }\n\n function slice(\n bytes memory _bytes,\n uint256 _start,\n uint256 _length\n )\n internal\n pure\n returns (bytes memory)\n {\n require(_length + 31 >= _length, \"slice_overflow\");\n require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n bytes memory tempBytes;\n\n assembly {\n switch iszero(_length)\n case 0 {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // The first word of the slice result is potentially a partial\n // word read from the original array. To read it, we calculate\n // the length of that partial word and start copying that many\n // bytes into the array. The first word we copy will start with\n // data we don't care about, but the last `lengthmod` bytes will\n // land at the beginning of the contents of the new array. When\n // we're done copying, we overwrite the full first word with\n // the actual length of the slice.\n let lengthmod := and(_length, 31)\n\n // The multiplication in the next line is necessary\n // because when slicing multiples of 32 bytes (lengthmod == 0)\n // the following copy loop was copying the origin's length\n // and then ending prematurely not copying everything it should.\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n\n for {\n // The multiplication in the next line has the same exact purpose\n // as the one above.\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n mstore(tempBytes, _length)\n\n //update free-memory pointer\n //allocating the array padded to 32 bytes like the compiler does now\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n //if we want a zero-length slice let's just return a zero-length array\n default {\n tempBytes := mload(0x40)\n //zero out the 32 bytes slice we are about to return\n //we need to do it because Solidity does not garbage collect\n mstore(tempBytes, 0)\n\n mstore(0x40, add(tempBytes, 0x20))\n }\n }\n\n return tempBytes;\n }\n\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\n require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n address tempAddress;\n\n assembly {\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n }\n\n return tempAddress;\n }\n\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\n require(_bytes.length >= _start + 1 , \"toUint8_outOfBounds\");\n uint8 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x1), _start))\n }\n\n return tempUint;\n }\n\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\n require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n uint16 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x2), _start))\n }\n\n return tempUint;\n }\n\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\n require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n uint32 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x4), _start))\n }\n\n return tempUint;\n }\n\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\n require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n uint64 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x8), _start))\n }\n\n return tempUint;\n }\n\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\n require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n uint96 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0xc), _start))\n }\n\n return tempUint;\n }\n\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\n require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n uint128 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x10), _start))\n }\n\n return tempUint;\n }\n\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\n require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n uint256 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempUint;\n }\n\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\n require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n bytes32 tempBytes32;\n\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n } eq(add(lt(mc, end), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equalStorage(\n bytes storage _preBytes,\n bytes memory _postBytes\n )\n internal\n view\n returns (bool)\n {\n bool success = true;\n\n assembly {\n // we know _preBytes_offset is 0\n let fslot := sload(_preBytes.slot)\n // Decode the length of the stored array like in concatStorage().\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(slength, mlength)\n case 1 {\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n if iszero(iszero(slength)) {\n switch lt(slength, 32)\n case 1 {\n // blank the last byte which is the length\n fslot := mul(div(fslot, 0x100), 0x100)\n\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n // unsuccess:\n success := 0\n }\n }\n default {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := keccak256(0x0, 0x20)\n\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n for {} eq(add(lt(mc, end), cb), 2) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n if iszero(eq(sload(sc), mload(mc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity >=0.7.6;\n\nlibrary ExcessivelySafeCall {\n uint256 constant LOW_28_MASK =\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\n\n /// @notice Use when you _really_ really _really_ don't trust the called\n /// contract. This prevents the called contract from causing reversion of\n /// the caller in as many ways as we can.\n /// @dev The main difference between this and a solidity low-level call is\n /// that we limit the number of bytes that the callee can cause to be\n /// copied to caller memory. This prevents stupid things like malicious\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\n /// to memory.\n /// @param _target The address to call\n /// @param _gas The amount of gas to forward to the remote contract\n /// @param _maxCopy The maximum number of bytes of returndata to copy\n /// to memory.\n /// @param _calldata The data to send to the remote contract\n /// @return success and returndata, as `.call()`. Returndata is capped to\n /// `_maxCopy` bytes.\n function excessivelySafeCall(\n address _target,\n uint256 _gas,\n uint16 _maxCopy,\n bytes memory _calldata\n ) internal returns (bool, bytes memory) {\n // set up for assembly call\n uint256 _toCopy;\n bool _success;\n bytes memory _returnData = new bytes(_maxCopy);\n // dispatch message to recipient\n // by assembly calling \"handle\" function\n // we call via assembly to avoid memcopying a very large returndata\n // returned by a malicious contract\n assembly {\n _success := call(\n _gas, // gas\n _target, // recipient\n 0, // ether value\n add(_calldata, 0x20), // inloc\n mload(_calldata), // inlen\n 0, // outloc\n 0 // outlen\n )\n // limit our copy to 256 bytes\n _toCopy := returndatasize()\n if gt(_toCopy, _maxCopy) {\n _toCopy := _maxCopy\n }\n // Store the length of the copied bytes\n mstore(_returnData, _toCopy)\n // copy the bytes from returndata[0:_toCopy]\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n }\n return (_success, _returnData);\n }\n\n /// @notice Use when you _really_ really _really_ don't trust the called\n /// contract. This prevents the called contract from causing reversion of\n /// the caller in as many ways as we can.\n /// @dev The main difference between this and a solidity low-level call is\n /// that we limit the number of bytes that the callee can cause to be\n /// copied to caller memory. This prevents stupid things like malicious\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\n /// to memory.\n /// @param _target The address to call\n /// @param _gas The amount of gas to forward to the remote contract\n /// @param _maxCopy The maximum number of bytes of returndata to copy\n /// to memory.\n /// @param _calldata The data to send to the remote contract\n /// @return success and returndata, as `.call()`. Returndata is capped to\n /// `_maxCopy` bytes.\n function excessivelySafeStaticCall(\n address _target,\n uint256 _gas,\n uint16 _maxCopy,\n bytes memory _calldata\n ) internal view returns (bool, bytes memory) {\n // set up for assembly call\n uint256 _toCopy;\n bool _success;\n bytes memory _returnData = new bytes(_maxCopy);\n // dispatch message to recipient\n // by assembly calling \"handle\" function\n // we call via assembly to avoid memcopying a very large returndata\n // returned by a malicious contract\n assembly {\n _success := staticcall(\n _gas, // gas\n _target, // recipient\n add(_calldata, 0x20), // inloc\n mload(_calldata), // inlen\n 0, // outloc\n 0 // outlen\n )\n // limit our copy to 256 bytes\n _toCopy := returndatasize()\n if gt(_toCopy, _maxCopy) {\n _toCopy := _maxCopy\n }\n // Store the length of the copied bytes\n mstore(_returnData, _toCopy)\n // copy the bytes from returndata[0:_toCopy]\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n }\n return (_success, _returnData);\n }\n\n /**\n * @notice Swaps function selectors in encoded contract calls\n * @dev Allows reuse of encoded calldata for functions with identical\n * argument types but different names. It simply swaps out the first 4 bytes\n * for the new selector. This function modifies memory in place, and should\n * only be used with caution.\n * @param _newSelector The new 4-byte selector\n * @param _buf The encoded contract args\n */\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\n internal\n pure\n {\n require(_buf.length >= 4);\n uint256 _mask = LOW_28_MASK;\n assembly {\n // load the first word of\n let _word := mload(add(_buf, 0x20))\n // mask out the top 4 bytes\n // /x\n _word := and(_word, _mask)\n _word := or(_newSelector, _word)\n mstore(add(_buf, 0x20), _word)\n }\n }\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\n * overridden;\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `amount`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n // decrementing then incrementing.\n _balances[to] += amount;\n }\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n unchecked {\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n _balances[account] += amount;\n }\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n // Overflow not possible: amount <= accountBalance <= totalSupply.\n _totalSupply -= amount;\n }\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * has been transferred to `to`.\n * - when `from` is zero, `amount` tokens have been minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n"},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\n */\ninterface IL2LayerZeroDelegation {\n function onVeBalBridged(address user) external;\n\n function onVeBalSupplyUpdate() external;\n}\n"},"contracts/interfaces/IOmniVotingEscrow.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @dev Partial voting escrow bridge interface.\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\n */\ninterface IOmniVotingEscrow {\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\n\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\n\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\n\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\n}\n"},"contracts/interfaces/IVotingEscrow.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\ninterface IVotingEscrow {\n struct Point {\n int128 bias;\n int128 slope;\n uint ts;\n uint blk; // TODO get rid of blk?\n }\n\n function epoch() external view returns (uint);\n\n function user_point_epoch(address _user) external returns (uint);\n\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\n\n function point_history(uint _epoch) external returns (Point memory);\n\n function checkpoint() external;\n\n function locked__end(address user) external view returns (uint);\n}\n"},"contracts/interfaces/IVotingEscrowRemapper.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\nimport \"./IVotingEscrow.sol\";\nimport \"./IOmniVotingEscrow.sol\";\n\ninterface IVotingEscrowRemapper {\n /**\n * @notice Returns Voting Escrow contract address.\n */\n function getVotingEscrow() external view returns (IVotingEscrow);\n\n // /**\n // * @notice Returns Omni Voting Escrow contract address).\n // */\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\n //\n // /**\n // * @notice Get timestamp when `user`'s lock finishes.\n // * @dev The returned value is taken directly from the voting escrow.\n // */\n // function getLockedEnd(address user) external view returns (uint256);\n\n // /**\n // * @notice Returns the local user corresponding to an address on a remote chain.\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\n // * @param chainId - The chain ID of the network which this user is on.\n // */\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\n\n /**\n * @notice Returns the remote user corresponding to an address on the local chain.\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\n * @param chainId - The chain ID of the network which the remote user is on.\n */\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\n}\n"},"contracts/mocks/ERC20Mock.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n// this is a MOCK\ncontract ERC20Mock is ERC20 {\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}\n\n function mint(address _to, uint _amount) public {\n _mint(_to, _amount);\n }\n}\n"},"contracts/mocks/L2LayerZeroDelegation.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport \"../interfaces/IL2LayerZeroDelegation.sol\";\n\ncontract L2LayerZeroDelegation is IL2LayerZeroDelegation {\n function onVeBalBridged(address user) external {}\n\n function onVeBalSupplyUpdate() external {}\n}\n"},"contracts/mocks/LZEndpointMock.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\";\n\n/*\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\nunlike a real LayerZero endpoint, it is\n- no messaging library versioning\n- send() will short circuit to lzReceive()\n- no user application configuration\n*/\ncontract LZMock is LZEndpointMock {\n constructor(uint16 _chainId) LZEndpointMock(_chainId) {}\n}\n"},"contracts/mocks/MockToken.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.4;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n// this is a MOCK\ncontract MockToken is ERC20 {\n // this is a MOCK\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {\n _mint(msg.sender, 1_000_000_000 * 10**18); // mint 1B to deployoooor\n }\n\n // this is a MOCK\n function mint(address _to, uint _amount) public {\n _mint(_to, _amount);\n }\n}\n"},"contracts/mocks/VotingEscrowRemapperMock.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport \"../interfaces/IVotingEscrowRemapper.sol\";\n\ncontract VotingEscrowRemapperMock is IVotingEscrowRemapper {\n IVotingEscrow public getVotingEscrow;\n\n mapping(uint16 => mapping(address => address)) public _localToRemoteAddressMap;\n\n constructor(address _votingEscrow) {\n getVotingEscrow = IVotingEscrow(_votingEscrow);\n }\n\n function getRemoteUser(address _localUser, uint16 _dstChainId) external view returns (address) {\n return _localToRemoteAddressMap[_dstChainId][_localUser];\n }\n\n function setRemoteUser(address _remoteUser, uint16 _dstChainId) external {\n _localToRemoteAddressMap[_dstChainId][msg.sender] = _remoteUser;\n }\n}\n"},"contracts/OmniVotingEscrow.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"./interfaces/IVotingEscrow.sol\";\nimport \"./interfaces/IOmniVotingEscrow.sol\";\nimport \"./interfaces/IVotingEscrowRemapper.sol\";\nimport \"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\";\n\ncontract OmniVotingEscrow is NonblockingLzApp, IOmniVotingEscrow {\n IVotingEscrow public immutable votingEscrow;\n IVotingEscrowRemapper public immutable votingEscrowRemapper;\n\n // Packet types for child chains:\n uint16 PT_USER = 0; // user balance and total supply update\n uint16 PT_TS = 1; // total supply update\n\n event UserBalToChain(uint16 dstChainId, address localUser, address remoteUser, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\n event TotalSupplyToChain(uint16 dstChainId, IVotingEscrow.Point totalSupplyPoint);\n\n constructor(address _lzEndpoint, address _votingEscrowRemapper) NonblockingLzApp(_lzEndpoint) {\n require(_votingEscrowRemapper != address(0x0), \"OmniVotingEscrow: remapper cannot be 0x0\");\n\n votingEscrowRemapper = IVotingEscrowRemapper(_votingEscrowRemapper);\n votingEscrow = votingEscrowRemapper.getVotingEscrow();\n }\n\n function _nonblockingLzReceive(\n uint16, /*_srcChainId*/\n bytes memory, /*_srcAddress*/\n uint64, /*_nonce*/\n bytes memory /*_payload*/\n ) internal virtual override {\n revert(\"OmniVotingEscrow: cannot receive lzMsgs\");\n }\n\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory lzPayload = abi.encode(PT_USER, address(0x0), 0, IVotingEscrow.Point(0, 0, 0, 0), IVotingEscrow.Point(0, 0, 0, 0));\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\n }\n\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory lzPayload = abi.encode(PT_TS, IVotingEscrow.Point(0, 0, 0, 0));\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\n }\n\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\n uint userEpoch = votingEscrow.user_point_epoch(_localUser);\n IVotingEscrow.Point memory uPoint = votingEscrow.user_point_history(_localUser, userEpoch);\n\n uint lockedEnd = votingEscrow.locked__end(_localUser);\n\n // always send total supply along with a user update\n uint totalSupplyEpoch = votingEscrow.epoch();\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n\n address remappedAddress = votingEscrowRemapper.getRemoteUser(_localUser, _dstChainId);\n address remoteUser = remappedAddress != address(0x0) ? remappedAddress : _localUser;\n\n bytes memory lzPayload = abi.encode(PT_USER, remoteUser, lockedEnd, uPoint, tsPoint);\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\n emit UserBalToChain(_dstChainId, _localUser, remoteUser, uPoint, tsPoint);\n }\n\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\n uint totalSupplyEpoch = votingEscrow.epoch();\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n\n // Total supply point may only change if none has checkpointed after the current week has started.\n // If that's the case the checkpoint is performed at this point, before bridging the total supply.\n if (_hasLastCheckpointExpired(tsPoint.ts)) {\n votingEscrow.checkpoint();\n // Get updated point.\n totalSupplyEpoch = votingEscrow.epoch();\n tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n }\n\n bytes memory lzPayload = abi.encode(PT_TS, tsPoint);\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\n emit TotalSupplyToChain(_dstChainId, tsPoint);\n }\n\n function _hasLastCheckpointExpired(uint lastCheckpointTimestamp) internal view returns (bool) {\n // If last checkpoint rounded to weeks + one week is still behind the block timestamp, then it has expired.\n return (lastCheckpointTimestamp / 1 weeks) * 1 weeks + 1 weeks < block.timestamp;\n }\n}\n"},"contracts/OmniVotingEscrowChild.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"./interfaces/IVotingEscrow.sol\";\nimport \"./interfaces/IL2LayerZeroDelegation.sol\";\nimport \"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\";\n\ncontract OmniVotingEscrowChild is NonblockingLzApp {\n mapping(address => uint) public locked__end; // -> end of lock period\n mapping(address => IVotingEscrow.Point) public userPoints; // -> balanceOf\n IVotingEscrow.Point public totalSupplyPoint; // -> totalSupply\n\n // Packet types for child chains:\n uint16 PT_USER = 0; // user balance and total supply update\n uint16 PT_TS = 1; // total supply update\n\n IL2LayerZeroDelegation public immutable delegationHook;\n\n event UserBalFromChain(uint16 srcChainId, address user, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\n event TotalSupplyFromChain(uint16 srcChainId, IVotingEscrow.Point totalSupplyPoint);\n\n constructor(address _lzEndpoint, address _delegationHook) NonblockingLzApp(_lzEndpoint) {\n require(_delegationHook != address(0x0), \"OmniVotingEscrowChild: delegation hook cannot be 0x0\");\n delegationHook = IL2LayerZeroDelegation(_delegationHook);\n }\n\n function _nonblockingLzReceive(\n uint16 _srcChainId,\n bytes memory, /*_srcAddress*/\n uint64, /*_nonce*/\n bytes memory _payload\n ) internal virtual override {\n uint16 packetType;\n assembly {\n packetType := mload(add(_payload, 32))\n }\n\n if (packetType == PT_USER) {\n _updateUserAndTotalSupplyFromChain(_srcChainId, _payload);\n } else if (packetType == PT_TS) {\n _updateTotalSupplyFromChain(_srcChainId, _payload);\n } else {\n revert(\"OmniVotingEscrowChild: unknown packet type\");\n }\n }\n\n function _updateUserAndTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\n (, address _userAddress, uint _lockedEnd, IVotingEscrow.Point memory _userPoint, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, address, uint, IVotingEscrow.Point, IVotingEscrow.Point));\n locked__end[_userAddress] = _lockedEnd;\n userPoints[_userAddress] = _userPoint;\n totalSupplyPoint = _totalSupplyPoint;\n\n delegationHook.onVeBalBridged(_userAddress);\n emit UserBalFromChain(_srcChainId, _userAddress, _userPoint, _totalSupplyPoint);\n }\n\n function _updateTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\n (, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, IVotingEscrow.Point));\n totalSupplyPoint = _totalSupplyPoint;\n\n delegationHook.onVeBalSupplyUpdate();\n emit TotalSupplyFromChain(_srcChainId, _totalSupplyPoint);\n }\n\n function balanceOf(address _user) public view returns (uint) {\n return _getPointValue(userPoints[_user]);\n }\n\n function totalSupply() public view returns (uint) {\n return _getPointValue(totalSupplyPoint);\n }\n\n // external for testing\n function getPointValue(IVotingEscrow.Point memory _point) external view returns (uint) {\n return _getPointValue(_point);\n }\n\n function _getPointValue(IVotingEscrow.Point memory _point) internal view returns (uint) {\n IVotingEscrow.Point memory p = _point;\n\n int128 bias = p.bias - (p.slope * int128(uint128(block.timestamp - p.ts)));\n return bias < 0 ? 0 : uint(uint128(bias));\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","storageLayout","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"errors":[{"component":"general","errorCode":"5740","formattedMessage":"Warning: Unreachable code.\n --> @layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:51:9:\n |\n51 | emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unreachable code.","severity":"warning","sourceLocation":{"end":2850,"file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","start":2779},"type":"Warning"}],"sources":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroUserApplicationConfig":[189]},"id":145,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:0"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","file":"./ILayerZeroUserApplicationConfig.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":145,"sourceUnit":190,"src":"59:47:0","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3,"name":"ILayerZeroUserApplicationConfig","nodeType":"IdentifierPath","referencedDeclaration":189,"src":"140:31:0"},"id":4,"nodeType":"InheritanceSpecifier","src":"140:31:0"}],"canonicalName":"ILayerZeroEndpoint","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":144,"linearizedBaseContracts":[144,189],"name":"ILayerZeroEndpoint","nameLocation":"118:18:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c5803100","id":19,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"923:4:0","nodeType":"FunctionDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6,"mutability":"mutable","name":"_dstChainId","nameLocation":"935:11:0","nodeType":"VariableDeclaration","scope":19,"src":"928:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5,"name":"uint16","nodeType":"ElementaryTypeName","src":"928:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":8,"mutability":"mutable","name":"_destination","nameLocation":"963:12:0","nodeType":"VariableDeclaration","scope":19,"src":"948:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7,"name":"bytes","nodeType":"ElementaryTypeName","src":"948:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10,"mutability":"mutable","name":"_payload","nameLocation":"992:8:0","nodeType":"VariableDeclaration","scope":19,"src":"977:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9,"name":"bytes","nodeType":"ElementaryTypeName","src":"977:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12,"mutability":"mutable","name":"_refundAddress","nameLocation":"1018:14:0","nodeType":"VariableDeclaration","scope":19,"src":"1002:30:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":11,"name":"address","nodeType":"ElementaryTypeName","src":"1002:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":14,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1042:18:0","nodeType":"VariableDeclaration","scope":19,"src":"1034:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16,"mutability":"mutable","name":"_adapterParams","nameLocation":"1077:14:0","nodeType":"VariableDeclaration","scope":19,"src":"1062:29:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15,"name":"bytes","nodeType":"ElementaryTypeName","src":"1062:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"927:165:0"},"returnParameters":{"id":18,"nodeType":"ParameterList","parameters":[],"src":"1109:0:0"},"scope":144,"src":"914:196:0","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"c2fa4813","id":34,"implemented":false,"kind":"function","modifiers":[],"name":"receivePayload","nameLocation":"1602:14:0","nodeType":"FunctionDefinition","parameters":{"id":32,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21,"mutability":"mutable","name":"_srcChainId","nameLocation":"1624:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1617:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20,"name":"uint16","nodeType":"ElementaryTypeName","src":"1617:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"_srcAddress","nameLocation":"1652:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1637:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":22,"name":"bytes","nodeType":"ElementaryTypeName","src":"1637:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"_dstAddress","nameLocation":"1673:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1665:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"1665:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27,"mutability":"mutable","name":"_nonce","nameLocation":"1693:6:0","nodeType":"VariableDeclaration","scope":34,"src":"1686:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":26,"name":"uint64","nodeType":"ElementaryTypeName","src":"1686:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":29,"mutability":"mutable","name":"_gasLimit","nameLocation":"1706:9:0","nodeType":"VariableDeclaration","scope":34,"src":"1701:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28,"name":"uint","nodeType":"ElementaryTypeName","src":"1701:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"_payload","nameLocation":"1732:8:0","nodeType":"VariableDeclaration","scope":34,"src":"1717:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":30,"name":"bytes","nodeType":"ElementaryTypeName","src":"1717:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1616:125:0"},"returnParameters":{"id":33,"nodeType":"ParameterList","parameters":[],"src":"1750:0:0"},"scope":144,"src":"1593:158:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fdc07c70","id":43,"implemented":false,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"1987:15:0","nodeType":"FunctionDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36,"mutability":"mutable","name":"_srcChainId","nameLocation":"2010:11:0","nodeType":"VariableDeclaration","scope":43,"src":"2003:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":35,"name":"uint16","nodeType":"ElementaryTypeName","src":"2003:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":38,"mutability":"mutable","name":"_srcAddress","nameLocation":"2038:11:0","nodeType":"VariableDeclaration","scope":43,"src":"2023:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":37,"name":"bytes","nodeType":"ElementaryTypeName","src":"2023:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2002:48:0"},"returnParameters":{"id":42,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43,"src":"2074:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":40,"name":"uint64","nodeType":"ElementaryTypeName","src":"2074:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2073:8:0"},"scope":144,"src":"1978:104:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7a145748","id":52,"implemented":false,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"2257:16:0","nodeType":"FunctionDefinition","parameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"_dstChainId","nameLocation":"2281:11:0","nodeType":"VariableDeclaration","scope":52,"src":"2274:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44,"name":"uint16","nodeType":"ElementaryTypeName","src":"2274:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47,"mutability":"mutable","name":"_srcAddress","nameLocation":"2302:11:0","nodeType":"VariableDeclaration","scope":52,"src":"2294:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2273:41:0"},"returnParameters":{"id":51,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52,"src":"2338:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49,"name":"uint64","nodeType":"ElementaryTypeName","src":"2338:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2337:8:0"},"scope":144,"src":"2248:98:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"40a7bb10","id":69,"implemented":false,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"2869:12:0","nodeType":"FunctionDefinition","parameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54,"mutability":"mutable","name":"_dstChainId","nameLocation":"2889:11:0","nodeType":"VariableDeclaration","scope":69,"src":"2882:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53,"name":"uint16","nodeType":"ElementaryTypeName","src":"2882:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":56,"mutability":"mutable","name":"_userApplication","nameLocation":"2910:16:0","nodeType":"VariableDeclaration","scope":69,"src":"2902:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55,"name":"address","nodeType":"ElementaryTypeName","src":"2902:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58,"mutability":"mutable","name":"_payload","nameLocation":"2943:8:0","nodeType":"VariableDeclaration","scope":69,"src":"2928:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":57,"name":"bytes","nodeType":"ElementaryTypeName","src":"2928:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":60,"mutability":"mutable","name":"_payInZRO","nameLocation":"2958:9:0","nodeType":"VariableDeclaration","scope":69,"src":"2953:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59,"name":"bool","nodeType":"ElementaryTypeName","src":"2953:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":62,"mutability":"mutable","name":"_adapterParam","nameLocation":"2984:13:0","nodeType":"VariableDeclaration","scope":69,"src":"2969:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":61,"name":"bytes","nodeType":"ElementaryTypeName","src":"2969:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2881:117:0"},"returnParameters":{"id":68,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65,"mutability":"mutable","name":"nativeFee","nameLocation":"3027:9:0","nodeType":"VariableDeclaration","scope":69,"src":"3022:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64,"name":"uint","nodeType":"ElementaryTypeName","src":"3022:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67,"mutability":"mutable","name":"zroFee","nameLocation":"3043:6:0","nodeType":"VariableDeclaration","scope":69,"src":"3038:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66,"name":"uint","nodeType":"ElementaryTypeName","src":"3038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:29:0"},"scope":144,"src":"2860:191:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3408e470","id":74,"implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"3129:10:0","nodeType":"FunctionDefinition","parameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"3139:2:0"},"returnParameters":{"id":73,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74,"src":"3165:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":71,"name":"uint16","nodeType":"ElementaryTypeName","src":"3165:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3164:8:0"},"scope":144,"src":"3120:53:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aaff5f16","id":83,"implemented":false,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"3439:12:0","nodeType":"FunctionDefinition","parameters":{"id":81,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76,"mutability":"mutable","name":"_srcChainId","nameLocation":"3459:11:0","nodeType":"VariableDeclaration","scope":83,"src":"3452:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":75,"name":"uint16","nodeType":"ElementaryTypeName","src":"3452:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":78,"mutability":"mutable","name":"_srcAddress","nameLocation":"3487:11:0","nodeType":"VariableDeclaration","scope":83,"src":"3472:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77,"name":"bytes","nodeType":"ElementaryTypeName","src":"3472:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"_payload","nameLocation":"3515:8:0","nodeType":"VariableDeclaration","scope":83,"src":"3500:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79,"name":"bytes","nodeType":"ElementaryTypeName","src":"3500:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3451:73:0"},"returnParameters":{"id":82,"nodeType":"ParameterList","parameters":[],"src":"3533:0:0"},"scope":144,"src":"3430:104:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0eaf6ea6","id":92,"implemented":false,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"3746:16:0","nodeType":"FunctionDefinition","parameters":{"id":88,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85,"mutability":"mutable","name":"_srcChainId","nameLocation":"3770:11:0","nodeType":"VariableDeclaration","scope":92,"src":"3763:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":84,"name":"uint16","nodeType":"ElementaryTypeName","src":"3763:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":87,"mutability":"mutable","name":"_srcAddress","nameLocation":"3798:11:0","nodeType":"VariableDeclaration","scope":92,"src":"3783:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86,"name":"bytes","nodeType":"ElementaryTypeName","src":"3783:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3762:48:0"},"returnParameters":{"id":91,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92,"src":"3834:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89,"name":"bool","nodeType":"ElementaryTypeName","src":"3834:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3833:6:0"},"scope":144,"src":"3737:103:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9c729da1","id":99,"implemented":false,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"3998:21:0","nodeType":"FunctionDefinition","parameters":{"id":95,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94,"mutability":"mutable","name":"_userApplication","nameLocation":"4028:16:0","nodeType":"VariableDeclaration","scope":99,"src":"4020:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93,"name":"address","nodeType":"ElementaryTypeName","src":"4020:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4019:26:0"},"returnParameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99,"src":"4069:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"4069:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4068:9:0"},"scope":144,"src":"3989:89:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"71ba2fd6","id":106,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"4238:24:0","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"_userApplication","nameLocation":"4271:16:0","nodeType":"VariableDeclaration","scope":106,"src":"4263:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"4263:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4262:26:0"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":106,"src":"4312:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":103,"name":"address","nodeType":"ElementaryTypeName","src":"4312:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4311:9:0"},"scope":144,"src":"4229:92:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e97a448a","id":111,"implemented":false,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"4458:16:0","nodeType":"FunctionDefinition","parameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"4474:2:0"},"returnParameters":{"id":110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":111,"src":"4500:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108,"name":"bool","nodeType":"ElementaryTypeName","src":"4500:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4499:6:0"},"scope":144,"src":"4449:57:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ca066b35","id":116,"implemented":false,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"4646:18:0","nodeType":"FunctionDefinition","parameters":{"id":112,"nodeType":"ParameterList","parameters":[],"src":"4664:2:0"},"returnParameters":{"id":115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":116,"src":"4690:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":113,"name":"bool","nodeType":"ElementaryTypeName","src":"4690:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4689:6:0"},"scope":144,"src":"4637:59:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f5ecbdbc","id":129,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"5103:9:0","nodeType":"FunctionDefinition","parameters":{"id":125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"_version","nameLocation":"5120:8:0","nodeType":"VariableDeclaration","scope":129,"src":"5113:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":117,"name":"uint16","nodeType":"ElementaryTypeName","src":"5113:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":120,"mutability":"mutable","name":"_chainId","nameLocation":"5137:8:0","nodeType":"VariableDeclaration","scope":129,"src":"5130:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":119,"name":"uint16","nodeType":"ElementaryTypeName","src":"5130:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":122,"mutability":"mutable","name":"_userApplication","nameLocation":"5155:16:0","nodeType":"VariableDeclaration","scope":129,"src":"5147:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"5147:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":124,"mutability":"mutable","name":"_configType","nameLocation":"5178:11:0","nodeType":"VariableDeclaration","scope":129,"src":"5173:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint","nodeType":"ElementaryTypeName","src":"5173:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5112:78:0"},"returnParameters":{"id":128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":129,"src":"5214:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":126,"name":"bytes","nodeType":"ElementaryTypeName","src":"5214:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5213:14:0"},"scope":144,"src":"5094:134:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"096568f6","id":136,"implemented":false,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"5387:14:0","nodeType":"FunctionDefinition","parameters":{"id":132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"_userApplication","nameLocation":"5410:16:0","nodeType":"VariableDeclaration","scope":136,"src":"5402:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":130,"name":"address","nodeType":"ElementaryTypeName","src":"5402:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5401:26:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":134,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":136,"src":"5451:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":133,"name":"uint16","nodeType":"ElementaryTypeName","src":"5451:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5450:8:0"},"scope":144,"src":"5378:81:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"da1a7c9a","id":143,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"5623:17:0","nodeType":"FunctionDefinition","parameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"_userApplication","nameLocation":"5649:16:0","nodeType":"VariableDeclaration","scope":143,"src":"5641:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5640:26:0"},"returnParameters":{"id":142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":143,"src":"5690:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":140,"name":"uint16","nodeType":"ElementaryTypeName","src":"5690:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5689:8:0"},"scope":144,"src":"5614:84:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":145,"src":"108:5592:0","usedErrors":[]}],"src":"33:5668:0"},"id":0},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[158]},"id":159,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":146,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":158,"linearizedBaseContracts":[158],"name":"ILayerZeroReceiver","nameLocation":"69:18:1","nodeType":"ContractDefinition","nodes":[{"functionSelector":"001d3567","id":157,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"482:9:1","nodeType":"FunctionDefinition","parameters":{"id":155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":148,"mutability":"mutable","name":"_srcChainId","nameLocation":"499:11:1","nodeType":"VariableDeclaration","scope":157,"src":"492:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":147,"name":"uint16","nodeType":"ElementaryTypeName","src":"492:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":150,"mutability":"mutable","name":"_srcAddress","nameLocation":"527:11:1","nodeType":"VariableDeclaration","scope":157,"src":"512:26:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":149,"name":"bytes","nodeType":"ElementaryTypeName","src":"512:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":152,"mutability":"mutable","name":"_nonce","nameLocation":"547:6:1","nodeType":"VariableDeclaration","scope":157,"src":"540:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":151,"name":"uint64","nodeType":"ElementaryTypeName","src":"540:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":154,"mutability":"mutable","name":"_payload","nameLocation":"570:8:1","nodeType":"VariableDeclaration","scope":157,"src":"555:23:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":153,"name":"bytes","nodeType":"ElementaryTypeName","src":"555:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"491:88:1"},"returnParameters":{"id":156,"nodeType":"ParameterList","parameters":[],"src":"588:0:1"},"scope":158,"src":"473:116:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":159,"src":"59:532:1","usedErrors":[]}],"src":"33:559:1"},"id":1},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","exportedSymbols":{"ILayerZeroUserApplicationConfig":[189]},"id":190,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":160,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:2"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroUserApplicationConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":189,"linearizedBaseContracts":[189],"name":"ILayerZeroUserApplicationConfig","nameLocation":"69:31:2","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cbed8b9c","id":171,"implemented":false,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"512:9:2","nodeType":"FunctionDefinition","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":162,"mutability":"mutable","name":"_version","nameLocation":"529:8:2","nodeType":"VariableDeclaration","scope":171,"src":"522:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":161,"name":"uint16","nodeType":"ElementaryTypeName","src":"522:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":164,"mutability":"mutable","name":"_chainId","nameLocation":"546:8:2","nodeType":"VariableDeclaration","scope":171,"src":"539:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":163,"name":"uint16","nodeType":"ElementaryTypeName","src":"539:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":166,"mutability":"mutable","name":"_configType","nameLocation":"561:11:2","nodeType":"VariableDeclaration","scope":171,"src":"556:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":165,"name":"uint","nodeType":"ElementaryTypeName","src":"556:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":168,"mutability":"mutable","name":"_config","nameLocation":"589:7:2","nodeType":"VariableDeclaration","scope":171,"src":"574:22:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":167,"name":"bytes","nodeType":"ElementaryTypeName","src":"574:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"521:76:2"},"returnParameters":{"id":170,"nodeType":"ParameterList","parameters":[],"src":"606:0:2"},"scope":189,"src":"503:104:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"07e0db17","id":176,"implemented":false,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"755:14:2","nodeType":"FunctionDefinition","parameters":{"id":174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173,"mutability":"mutable","name":"_version","nameLocation":"777:8:2","nodeType":"VariableDeclaration","scope":176,"src":"770:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":172,"name":"uint16","nodeType":"ElementaryTypeName","src":"770:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"769:17:2"},"returnParameters":{"id":175,"nodeType":"ParameterList","parameters":[],"src":"795:0:2"},"scope":189,"src":"746:50:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"10ddb137","id":181,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"949:17:2","nodeType":"FunctionDefinition","parameters":{"id":179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"_version","nameLocation":"974:8:2","nodeType":"VariableDeclaration","scope":181,"src":"967:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":177,"name":"uint16","nodeType":"ElementaryTypeName","src":"967:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"966:17:2"},"returnParameters":{"id":180,"nodeType":"ParameterList","parameters":[],"src":"992:0:2"},"scope":189,"src":"940:53:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"42d65a8d","id":188,"implemented":false,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"1271:18:2","nodeType":"FunctionDefinition","parameters":{"id":186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":183,"mutability":"mutable","name":"_srcChainId","nameLocation":"1297:11:2","nodeType":"VariableDeclaration","scope":188,"src":"1290:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":182,"name":"uint16","nodeType":"ElementaryTypeName","src":"1290:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":185,"mutability":"mutable","name":"_srcAddress","nameLocation":"1325:11:2","nodeType":"VariableDeclaration","scope":188,"src":"1310:26:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":184,"name":"bytes","nodeType":"ElementaryTypeName","src":"1310:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1289:48:2"},"returnParameters":{"id":187,"nodeType":"ParameterList","parameters":[],"src":"1346:0:2"},"scope":189,"src":"1262:85:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":190,"src":"59:1290:2","usedErrors":[]}],"src":"33:1317:2"},"id":2},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol","exportedSymbols":{"LzLib":[427]},"id":428,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":191,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"38:24:3"},{"id":192,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"63:33:3"},{"abstract":false,"baseContracts":[],"canonicalName":"LzLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":427,"linearizedBaseContracts":[427],"name":"LzLib","nameLocation":"106:5:3","nodeType":"ContractDefinition","nodes":[{"canonicalName":"LzLib.CallParams","id":197,"members":[{"constant":false,"id":194,"mutability":"mutable","name":"refundAddress","nameLocation":"193:13:3","nodeType":"VariableDeclaration","scope":197,"src":"177:29:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"177:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":196,"mutability":"mutable","name":"zroPaymentAddress","nameLocation":"224:17:3","nodeType":"VariableDeclaration","scope":197,"src":"216:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":195,"name":"address","nodeType":"ElementaryTypeName","src":"216:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"CallParams","nameLocation":"156:10:3","nodeType":"StructDefinition","scope":427,"src":"149:99:3","visibility":"public"},{"canonicalName":"LzLib.AirdropParams","id":202,"members":[{"constant":false,"id":199,"mutability":"mutable","name":"airdropAmount","nameLocation":"402:13:3","nodeType":"VariableDeclaration","scope":202,"src":"397:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":198,"name":"uint","nodeType":"ElementaryTypeName","src":"397:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":201,"mutability":"mutable","name":"airdropAddress","nameLocation":"433:14:3","nodeType":"VariableDeclaration","scope":202,"src":"425:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"425:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"AirdropParams","nameLocation":"373:13:3","nodeType":"StructDefinition","scope":427,"src":"366:88:3","visibility":"public"},{"body":{"id":240,"nodeType":"Block","src":"600:284:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":212,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"614:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"614:28:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"614:33:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":216,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"651:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"651:29:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"692:3:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:3","typeDescriptions":{}}},"id":221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"684:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"651:45:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"614:82:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":238,"nodeType":"Block","src":"783:95:3","statements":[{"expression":{"id":236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":231,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":210,"src":"797:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":233,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"839:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":234,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"852:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}],"id":232,"name":"buildAirdropAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"813:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_struct$_AirdropParams_$202_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,struct LzLib.AirdropParams memory) pure returns (bytes memory)"}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"813:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"797:70:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":237,"nodeType":"ExpressionStatement","src":"797:70:3"}]},"id":239,"nodeType":"IfStatement","src":"610:268:3","trueBody":{"id":230,"nodeType":"Block","src":"698:79:3","statements":[{"expression":{"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":224,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":210,"src":"712:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":226,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"754:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":225,"name":"buildDefaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"728:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"728:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"712:54:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":229,"nodeType":"ExpressionStatement","src":"712:54:3"}]}}]},"id":241,"implemented":true,"kind":"function","modifiers":[],"name":"buildAdapterParams","nameLocation":"469:18:3","nodeType":"FunctionDefinition","parameters":{"id":208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":205,"mutability":"mutable","name":"_airdropParams","nameLocation":"515:14:3","nodeType":"VariableDeclaration","scope":241,"src":"488:41:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":204,"nodeType":"UserDefinedTypeName","pathNode":{"id":203,"name":"LzLib.AirdropParams","nodeType":"IdentifierPath","referencedDeclaration":202,"src":"488:19:3"},"referencedDeclaration":202,"src":"488:19:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"},{"constant":false,"id":207,"mutability":"mutable","name":"_uaGasLimit","nameLocation":"536:11:3","nodeType":"VariableDeclaration","scope":241,"src":"531:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206,"name":"uint","nodeType":"ElementaryTypeName","src":"531:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"487:61:3"},"returnParameters":{"id":211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":210,"mutability":"mutable","name":"adapterParams","nameLocation":"585:13:3","nodeType":"VariableDeclaration","scope":241,"src":"572:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":209,"name":"bytes","nodeType":"ElementaryTypeName","src":"572:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"571:28:3"},"scope":427,"src":"460:424:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":257,"nodeType":"Block","src":"1003:153:3","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"31","id":252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1131:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":250,"name":"uint16","nodeType":"ElementaryTypeName","src":"1131:6:3","typeDescriptions":{}}},"id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1131:9:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":254,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":243,"src":"1142:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":248,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1114:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1114:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1114:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":247,"id":256,"nodeType":"Return","src":"1107:42:3"}]},"id":258,"implemented":true,"kind":"function","modifiers":[],"name":"buildDefaultAdapterParams","nameLocation":"927:25:3","nodeType":"FunctionDefinition","parameters":{"id":244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":243,"mutability":"mutable","name":"_uaGas","nameLocation":"958:6:3","nodeType":"VariableDeclaration","scope":258,"src":"953:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":242,"name":"uint","nodeType":"ElementaryTypeName","src":"953:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:13:3"},"returnParameters":{"id":247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":258,"src":"989:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":245,"name":"bytes","nodeType":"ElementaryTypeName","src":"989:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"988:14:3"},"scope":427,"src":"918:238:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":300,"nodeType":"Block","src":"1277:438:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":269,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1295:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"1295:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1319:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1295:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f7020616d6f756e74206d7573742062652067726561746572207468616e2030","id":273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:39:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""},"value":"Airdrop amount must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""}],"id":268,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1287:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1287:75:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":275,"nodeType":"ExpressionStatement","src":"1287:75:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":277,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1380:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"1380:22:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1414:3:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1406:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:3","typeDescriptions":{}}},"id":282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1406:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1380:38:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f702061646472657373206d75737420626520736574","id":284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1420:29:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""},"value":"Airdrop address must be set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""}],"id":276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1372:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1372:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":286,"nodeType":"ExpressionStatement","src":"1372:78:3"},{"expression":{"arguments":[{"arguments":[{"hexValue":"32","id":291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1650:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1643:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":289,"name":"uint16","nodeType":"ElementaryTypeName","src":"1643:6:3","typeDescriptions":{}}},"id":292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1643:9:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":293,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1654:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":294,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1662:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"1662:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":296,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1685:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"1685:22:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":287,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1626:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1626:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1626:82:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":267,"id":299,"nodeType":"Return","src":"1619:89:3"}]},"id":301,"implemented":true,"kind":"function","modifiers":[],"name":"buildAirdropAdapterParams","nameLocation":"1171:25:3","nodeType":"FunctionDefinition","parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"_uaGas","nameLocation":"1202:6:3","nodeType":"VariableDeclaration","scope":301,"src":"1197:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":259,"name":"uint","nodeType":"ElementaryTypeName","src":"1197:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":263,"mutability":"mutable","name":"_params","nameLocation":"1231:7:3","nodeType":"VariableDeclaration","scope":301,"src":"1210:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":262,"nodeType":"UserDefinedTypeName","pathNode":{"id":261,"name":"AirdropParams","nodeType":"IdentifierPath","referencedDeclaration":202,"src":"1210:13:3"},"referencedDeclaration":202,"src":"1210:13:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"}],"src":"1196:43:3"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":301,"src":"1263:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":265,"name":"bytes","nodeType":"ElementaryTypeName","src":"1263:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1262:14:3"},"scope":427,"src":"1162:553:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":322,"nodeType":"Block","src":"1809:192:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":309,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"1827:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1827:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:2:3","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"1827:27:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":313,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"1858:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1858:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1882:2:3","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"1858:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1827:57:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1886:23:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1819:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1819:91:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":320,"nodeType":"ExpressionStatement","src":"1819:91:3"},{"AST":{"nodeType":"YulBlock","src":"1929:66:3","statements":[{"nodeType":"YulAssignment","src":"1943:42:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"1965:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"1981:2:3","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1961:3:3"},"nodeType":"YulFunctionCall","src":"1961:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1955:5:3"},"nodeType":"YulFunctionCall","src":"1955:30:3"},"variableNames":[{"name":"gasLimit","nodeType":"YulIdentifier","src":"1943:8:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":303,"isOffset":false,"isSlot":false,"src":"1965:14:3","valueSize":1},{"declaration":306,"isOffset":false,"isSlot":false,"src":"1943:8:3","valueSize":1}],"id":321,"nodeType":"InlineAssembly","src":"1920:75:3"}]},"id":323,"implemented":true,"kind":"function","modifiers":[],"name":"getGasLimit","nameLocation":"1730:11:3","nodeType":"FunctionDefinition","parameters":{"id":304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":303,"mutability":"mutable","name":"_adapterParams","nameLocation":"1755:14:3","nodeType":"VariableDeclaration","scope":323,"src":"1742:27:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":302,"name":"bytes","nodeType":"ElementaryTypeName","src":"1742:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1741:29:3"},"returnParameters":{"id":307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":306,"mutability":"mutable","name":"gasLimit","nameLocation":"1799:8:3","nodeType":"VariableDeclaration","scope":323,"src":"1794:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":305,"name":"uint","nodeType":"ElementaryTypeName","src":"1794:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1793:15:3"},"scope":427,"src":"1721:280:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":374,"nodeType":"Block","src":"2196:555:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":337,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"2214:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2214:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2239:2:3","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"2214:27:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":341,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"2245:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2245:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2269:2:3","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"2245:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2214:57:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2273:23:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":336,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2206:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2206:91:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":348,"nodeType":"ExpressionStatement","src":"2206:91:3"},{"AST":{"nodeType":"YulBlock","src":"2316:115:3","statements":[{"nodeType":"YulAssignment","src":"2330:39:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2350:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2366:1:3","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2346:3:3"},"nodeType":"YulFunctionCall","src":"2346:22:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2340:5:3"},"nodeType":"YulFunctionCall","src":"2340:29:3"},"variableNames":[{"name":"txType","nodeType":"YulIdentifier","src":"2330:6:3"}]},{"nodeType":"YulAssignment","src":"2382:39:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2401:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2417:2:3","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2397:3:3"},"nodeType":"YulFunctionCall","src":"2397:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2391:5:3"},"nodeType":"YulFunctionCall","src":"2391:30:3"},"variableNames":[{"name":"uaGas","nodeType":"YulIdentifier","src":"2382:5:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":325,"isOffset":false,"isSlot":false,"src":"2350:14:3","valueSize":1},{"declaration":325,"isOffset":false,"isSlot":false,"src":"2401:14:3","valueSize":1},{"declaration":328,"isOffset":false,"isSlot":false,"src":"2330:6:3","valueSize":1},{"declaration":330,"isOffset":false,"isSlot":false,"src":"2382:5:3","valueSize":1}],"id":349,"nodeType":"InlineAssembly","src":"2307:124:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":351,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2448:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2458:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2448:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":354,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2463:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2473:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2463:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2448:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e737570706f7274656420747854797065","id":358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2476:20:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""},"value":"Unsupported txType"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""}],"id":350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2440:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:57:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":360,"nodeType":"ExpressionStatement","src":"2440:57:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":362,"name":"uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"2515:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2523:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2515:9:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617320746f6f206c6f77","id":365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2526:13:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""},"value":"Gas too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""}],"id":361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2507:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":367,"nodeType":"ExpressionStatement","src":"2507:33:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":368,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2555:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2565:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2555:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":373,"nodeType":"IfStatement","src":"2551:194:3","trueBody":{"id":372,"nodeType":"Block","src":"2568:177:3","statements":[{"AST":{"nodeType":"YulBlock","src":"2591:144:3","statements":[{"nodeType":"YulAssignment","src":"2609:47:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2636:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2652:2:3","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2632:3:3"},"nodeType":"YulFunctionCall","src":"2632:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2626:5:3"},"nodeType":"YulFunctionCall","src":"2626:30:3"},"variableNames":[{"name":"airdropAmount","nodeType":"YulIdentifier","src":"2609:13:3"}]},{"nodeType":"YulAssignment","src":"2673:48:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2701:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2717:2:3","type":"","value":"86"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2697:3:3"},"nodeType":"YulFunctionCall","src":"2697:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2691:5:3"},"nodeType":"YulFunctionCall","src":"2691:30:3"},"variableNames":[{"name":"airdropAddress","nodeType":"YulIdentifier","src":"2673:14:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":325,"isOffset":false,"isSlot":false,"src":"2636:14:3","valueSize":1},{"declaration":325,"isOffset":false,"isSlot":false,"src":"2701:14:3","valueSize":1},{"declaration":334,"isOffset":false,"isSlot":false,"src":"2673:14:3","valueSize":1},{"declaration":332,"isOffset":false,"isSlot":false,"src":"2609:13:3","valueSize":1}],"id":371,"nodeType":"InlineAssembly","src":"2582:153:3"}]}}]},"id":375,"implemented":true,"kind":"function","modifiers":[],"name":"decodeAdapterParams","nameLocation":"2045:19:3","nodeType":"FunctionDefinition","parameters":{"id":326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":325,"mutability":"mutable","name":"_adapterParams","nameLocation":"2078:14:3","nodeType":"VariableDeclaration","scope":375,"src":"2065:27:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":324,"name":"bytes","nodeType":"ElementaryTypeName","src":"2065:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2064:29:3"},"returnParameters":{"id":335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":328,"mutability":"mutable","name":"txType","nameLocation":"2124:6:3","nodeType":"VariableDeclaration","scope":375,"src":"2117:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":327,"name":"uint16","nodeType":"ElementaryTypeName","src":"2117:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":330,"mutability":"mutable","name":"uaGas","nameLocation":"2137:5:3","nodeType":"VariableDeclaration","scope":375,"src":"2132:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":329,"name":"uint","nodeType":"ElementaryTypeName","src":"2132:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":332,"mutability":"mutable","name":"airdropAmount","nameLocation":"2149:13:3","nodeType":"VariableDeclaration","scope":375,"src":"2144:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":331,"name":"uint","nodeType":"ElementaryTypeName","src":"2144:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":334,"mutability":"mutable","name":"airdropAddress","nameLocation":"2180:14:3","nodeType":"VariableDeclaration","scope":375,"src":"2164:30:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":333,"name":"address","nodeType":"ElementaryTypeName","src":"2164:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"2116:79:3"},"scope":427,"src":"2036:715:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":406,"nodeType":"Block","src":"2981:173:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"id":391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":385,"name":"_bytes32Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"3007:15:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2999:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":383,"name":"bytes12","nodeType":"ElementaryTypeName","src":"2999:7:3","typeDescriptions":{}}},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2999:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3035:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3027:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":387,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3027:7:3","typeDescriptions":{}}},"id":390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3027:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"src":"2999:38:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646472657373","id":392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3039:17:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""},"value":"Invalid address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""}],"id":382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2991:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2991:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":394,"nodeType":"ExpressionStatement","src":"2991:66:3"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":401,"name":"_bytes32Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"3129:15:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3124:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":399,"name":"uint","nodeType":"ElementaryTypeName","src":"3124:4:3","typeDescriptions":{}}},"id":402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3124:21:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3116:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":397,"name":"uint160","nodeType":"ElementaryTypeName","src":"3116:7:3","typeDescriptions":{}}},"id":403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3116:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3108:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":395,"name":"address","nodeType":"ElementaryTypeName","src":"3108:7:3","typeDescriptions":{}}},"id":404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3108:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":381,"id":405,"nodeType":"Return","src":"3101:46:3"}]},"id":407,"implemented":true,"kind":"function","modifiers":[],"name":"bytes32ToAddress","nameLocation":"2898:16:3","nodeType":"FunctionDefinition","parameters":{"id":378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":377,"mutability":"mutable","name":"_bytes32Address","nameLocation":"2923:15:3","nodeType":"VariableDeclaration","scope":407,"src":"2915:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2915:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2914:25:3"},"returnParameters":{"id":381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":380,"mutability":"mutable","name":"_address","nameLocation":"2971:8:3","nodeType":"VariableDeclaration","scope":407,"src":"2963:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":379,"name":"address","nodeType":"ElementaryTypeName","src":"2963:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2962:18:3"},"scope":427,"src":"2889:265:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":425,"nodeType":"Block","src":"3252:56:3","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":420,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":409,"src":"3290:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3282:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":418,"name":"uint160","nodeType":"ElementaryTypeName","src":"3282:7:3","typeDescriptions":{}}},"id":421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3282:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3277:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":416,"name":"uint","nodeType":"ElementaryTypeName","src":"3277:4:3","typeDescriptions":{}}},"id":422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3277:23:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3269:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3269:7:3","typeDescriptions":{}}},"id":423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3269:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":413,"id":424,"nodeType":"Return","src":"3262:39:3"}]},"id":426,"implemented":true,"kind":"function","modifiers":[],"name":"addressToBytes32","nameLocation":"3169:16:3","nodeType":"FunctionDefinition","parameters":{"id":410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":409,"mutability":"mutable","name":"_address","nameLocation":"3194:8:3","nodeType":"VariableDeclaration","scope":426,"src":"3186:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":408,"name":"address","nodeType":"ElementaryTypeName","src":"3186:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3185:18:3"},"returnParameters":{"id":413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":412,"mutability":"mutable","name":"_bytes32Address","nameLocation":"3235:15:3","nodeType":"VariableDeclaration","scope":426,"src":"3227:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3227:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3226:25:3"},"scope":427,"src":"3160:148:3","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":428,"src":"98:3212:3","usedErrors":[]}],"src":"38:3273:3"},"id":3},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LzApp":[917],"Ownable":[2996]},"id":918,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":429,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:4"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":2997,"src":"58:52:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","file":"../interfaces/ILayerZeroReceiver.sol","id":431,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":159,"src":"111:46:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","file":"../interfaces/ILayerZeroUserApplicationConfig.sol","id":432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":190,"src":"158:59:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","file":"../interfaces/ILayerZeroEndpoint.sol","id":433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":145,"src":"218:46:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol","file":"../util/BytesLib.sol","id":434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":2787,"src":"265:30:4","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":435,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":2996,"src":"370:7:4"},"id":436,"nodeType":"InheritanceSpecifier","src":"370:7:4"},{"baseName":{"id":437,"name":"ILayerZeroReceiver","nodeType":"IdentifierPath","referencedDeclaration":158,"src":"379:18:4"},"id":438,"nodeType":"InheritanceSpecifier","src":"379:18:4"},{"baseName":{"id":439,"name":"ILayerZeroUserApplicationConfig","nodeType":"IdentifierPath","referencedDeclaration":189,"src":"399:31:4"},"id":440,"nodeType":"InheritanceSpecifier","src":"399:31:4"}],"canonicalName":"LzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":917,"linearizedBaseContracts":[917,189,158,2996,3708],"name":"LzApp","nameLocation":"361:5:4","nodeType":"ContractDefinition","nodes":[{"id":443,"libraryName":{"id":441,"name":"BytesLib","nodeType":"IdentifierPath","referencedDeclaration":2786,"src":"443:8:4"},"nodeType":"UsingForDirective","src":"437:25:4","typeName":{"id":442,"name":"bytes","nodeType":"ElementaryTypeName","src":"456:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":false,"functionSelector":"b353aaa7","id":446,"mutability":"immutable","name":"lzEndpoint","nameLocation":"504:10:4","nodeType":"VariableDeclaration","scope":917,"src":"468:46:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":445,"nodeType":"UserDefinedTypeName","pathNode":{"id":444,"name":"ILayerZeroEndpoint","nodeType":"IdentifierPath","referencedDeclaration":144,"src":"468:18:4"},"referencedDeclaration":144,"src":"468:18:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"visibility":"public"},{"constant":false,"functionSelector":"7533d788","id":450,"mutability":"mutable","name":"trustedRemoteLookup","nameLocation":"552:19:4","nodeType":"VariableDeclaration","scope":917,"src":"520:51:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"typeName":{"id":449,"keyType":{"id":447,"name":"uint16","nodeType":"ElementaryTypeName","src":"528:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"520:24:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"valueType":{"id":448,"name":"bytes","nodeType":"ElementaryTypeName","src":"538:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"visibility":"public"},{"constant":false,"functionSelector":"8cfd8f5c","id":456,"mutability":"mutable","name":"minDstGasLookup","nameLocation":"627:15:4","nodeType":"VariableDeclaration","scope":917,"src":"577:65:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"typeName":{"id":455,"keyType":{"id":451,"name":"uint16","nodeType":"ElementaryTypeName","src":"585:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"577:42:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"valueType":{"id":454,"keyType":{"id":452,"name":"uint16","nodeType":"ElementaryTypeName","src":"603:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"595:23:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueType":{"id":453,"name":"uint","nodeType":"ElementaryTypeName","src":"613:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"950c8a74","id":458,"mutability":"mutable","name":"precrime","nameLocation":"663:8:4","nodeType":"VariableDeclaration","scope":917,"src":"648:23:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":457,"name":"address","nodeType":"ElementaryTypeName","src":"648:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"id":462,"name":"SetPrecrime","nameLocation":"684:11:4","nodeType":"EventDefinition","parameters":{"id":461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":460,"indexed":false,"mutability":"mutable","name":"precrime","nameLocation":"704:8:4","nodeType":"VariableDeclaration","scope":462,"src":"696:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":459,"name":"address","nodeType":"ElementaryTypeName","src":"696:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"695:18:4"},"src":"678:36:4"},{"anonymous":false,"id":468,"name":"SetTrustedRemote","nameLocation":"725:16:4","nodeType":"EventDefinition","parameters":{"id":467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"749:14:4","nodeType":"VariableDeclaration","scope":468,"src":"742:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":463,"name":"uint16","nodeType":"ElementaryTypeName","src":"742:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":466,"indexed":false,"mutability":"mutable","name":"_path","nameLocation":"771:5:4","nodeType":"VariableDeclaration","scope":468,"src":"765:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":465,"name":"bytes","nodeType":"ElementaryTypeName","src":"765:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"741:36:4"},"src":"719:59:4"},{"anonymous":false,"id":474,"name":"SetTrustedRemoteAddress","nameLocation":"789:23:4","nodeType":"EventDefinition","parameters":{"id":473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":470,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"820:14:4","nodeType":"VariableDeclaration","scope":474,"src":"813:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":469,"name":"uint16","nodeType":"ElementaryTypeName","src":"813:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":472,"indexed":false,"mutability":"mutable","name":"_remoteAddress","nameLocation":"842:14:4","nodeType":"VariableDeclaration","scope":474,"src":"836:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":471,"name":"bytes","nodeType":"ElementaryTypeName","src":"836:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"812:45:4"},"src":"783:75:4"},{"anonymous":false,"id":482,"name":"SetMinDstGas","nameLocation":"869:12:4","nodeType":"EventDefinition","parameters":{"id":481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":476,"indexed":false,"mutability":"mutable","name":"_dstChainId","nameLocation":"889:11:4","nodeType":"VariableDeclaration","scope":482,"src":"882:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":475,"name":"uint16","nodeType":"ElementaryTypeName","src":"882:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":478,"indexed":false,"mutability":"mutable","name":"_type","nameLocation":"909:5:4","nodeType":"VariableDeclaration","scope":482,"src":"902:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":477,"name":"uint16","nodeType":"ElementaryTypeName","src":"902:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":480,"indexed":false,"mutability":"mutable","name":"_minDstGas","nameLocation":"921:10:4","nodeType":"VariableDeclaration","scope":482,"src":"916:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":479,"name":"uint","nodeType":"ElementaryTypeName","src":"916:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"881:51:4"},"src":"863:70:4"},{"body":{"id":493,"nodeType":"Block","src":"970:59:4","statements":[{"expression":{"id":491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":487,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"980:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":489,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"1012:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":488,"name":"ILayerZeroEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"993:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroEndpoint_$144_$","typeString":"type(contract ILayerZeroEndpoint)"}},"id":490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"993:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"src":"980:42:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":492,"nodeType":"ExpressionStatement","src":"980:42:4"}]},"id":494,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":484,"mutability":"mutable","name":"_endpoint","nameLocation":"959:9:4","nodeType":"VariableDeclaration","scope":494,"src":"951:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":483,"name":"address","nodeType":"ElementaryTypeName","src":"951:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"950:19:4"},"returnParameters":{"id":486,"nodeType":"ParameterList","parameters":[],"src":"970:0:4"},"scope":917,"src":"939:90:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[157],"body":{"id":552,"nodeType":"Block","src":"1166:622:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":507,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1249:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1249:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":511,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"1273:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}],"id":510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1265:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":509,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:4","typeDescriptions":{}}},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1265:19:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1249:35:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","id":514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1286:32:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""},"value":"LzApp: invalid endpoint caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""}],"id":506,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1241:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1241:78:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":516,"nodeType":"ExpressionStatement","src":"1241:78:4"},{"assignments":[518],"declarations":[{"constant":false,"id":518,"mutability":"mutable","name":"trustedRemote","nameLocation":"1343:13:4","nodeType":"VariableDeclaration","scope":552,"src":"1330:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":517,"name":"bytes","nodeType":"ElementaryTypeName","src":"1330:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":522,"initialValue":{"baseExpression":{"id":519,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"1359:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":521,"indexExpression":{"id":520,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"1379:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1359:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1330:61:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":524,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1541:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1541:18:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":526,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1563:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1563:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1541:42:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":529,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1587:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1587:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1610:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1587:24:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1541:70:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":535,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1625:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":534,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1615:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1615:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":538,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1651:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":537,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1641:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1641:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1615:50:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1541:124:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6e7472616374","id":542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1667:40:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""},"value":"LzApp: invalid source sending contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""}],"id":523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1533:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1533:175:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":544,"nodeType":"ExpressionStatement","src":"1533:175:4"},{"expression":{"arguments":[{"id":546,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"1738:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":547,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1751:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":548,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"1764:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":549,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"1772:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":545,"name":"_blockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":564,"src":"1719:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1719:62:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":551,"nodeType":"ExpressionStatement","src":"1719:62:4"}]},"functionSelector":"001d3567","id":553,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"1044:9:4","nodeType":"FunctionDefinition","overrides":{"id":504,"nodeType":"OverrideSpecifier","overrides":[],"src":"1157:8:4"},"parameters":{"id":503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":496,"mutability":"mutable","name":"_srcChainId","nameLocation":"1061:11:4","nodeType":"VariableDeclaration","scope":553,"src":"1054:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":495,"name":"uint16","nodeType":"ElementaryTypeName","src":"1054:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":498,"mutability":"mutable","name":"_srcAddress","nameLocation":"1089:11:4","nodeType":"VariableDeclaration","scope":553,"src":"1074:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":497,"name":"bytes","nodeType":"ElementaryTypeName","src":"1074:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":500,"mutability":"mutable","name":"_nonce","nameLocation":"1109:6:4","nodeType":"VariableDeclaration","scope":553,"src":"1102:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":499,"name":"uint64","nodeType":"ElementaryTypeName","src":"1102:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":502,"mutability":"mutable","name":"_payload","nameLocation":"1132:8:4","nodeType":"VariableDeclaration","scope":553,"src":"1117:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":501,"name":"bytes","nodeType":"ElementaryTypeName","src":"1117:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1053:88:4"},"returnParameters":{"id":505,"nodeType":"ParameterList","parameters":[],"src":"1166:0:4"},"scope":917,"src":"1035:753:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":564,"implemented":false,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"1946:18:4","nodeType":"FunctionDefinition","parameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":555,"mutability":"mutable","name":"_srcChainId","nameLocation":"1972:11:4","nodeType":"VariableDeclaration","scope":564,"src":"1965:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":554,"name":"uint16","nodeType":"ElementaryTypeName","src":"1965:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":557,"mutability":"mutable","name":"_srcAddress","nameLocation":"1998:11:4","nodeType":"VariableDeclaration","scope":564,"src":"1985:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":556,"name":"bytes","nodeType":"ElementaryTypeName","src":"1985:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":559,"mutability":"mutable","name":"_nonce","nameLocation":"2018:6:4","nodeType":"VariableDeclaration","scope":564,"src":"2011:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":558,"name":"uint64","nodeType":"ElementaryTypeName","src":"2011:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":561,"mutability":"mutable","name":"_payload","nameLocation":"2039:8:4","nodeType":"VariableDeclaration","scope":564,"src":"2026:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":560,"name":"bytes","nodeType":"ElementaryTypeName","src":"2026:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1964:84:4"},"returnParameters":{"id":563,"nodeType":"ParameterList","parameters":[],"src":"2065:0:4"},"scope":917,"src":"1937:129:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":606,"nodeType":"Block","src":"2255:308:4","statements":[{"assignments":[580],"declarations":[{"constant":false,"id":580,"mutability":"mutable","name":"trustedRemote","nameLocation":"2278:13:4","nodeType":"VariableDeclaration","scope":606,"src":"2265:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":579,"name":"bytes","nodeType":"ElementaryTypeName","src":"2265:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":584,"initialValue":{"baseExpression":{"id":581,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"2294:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":583,"indexExpression":{"id":582,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":566,"src":"2314:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2294:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2265:61:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":586,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"2344:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2344:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2368:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2344:25:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2371:50:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""},"value":"LzApp: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""}],"id":585,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2336:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2336:86:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"2336:86:4"},{"expression":{"arguments":[{"id":598,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":566,"src":"2467:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":599,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"2480:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":600,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"2495:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":601,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2505:14:4","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":602,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"2521:18:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":603,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":574,"src":"2541:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":593,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"2432:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"send","nodeType":"MemberAccess","referencedDeclaration":19,"src":"2432:15:4","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":596,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":576,"src":"2455:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2432:34:4","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2432:124:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":605,"nodeType":"ExpressionStatement","src":"2432:124:4"}]},"id":607,"implemented":true,"kind":"function","modifiers":[],"name":"_lzSend","nameLocation":"2081:7:4","nodeType":"FunctionDefinition","parameters":{"id":577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":566,"mutability":"mutable","name":"_dstChainId","nameLocation":"2096:11:4","nodeType":"VariableDeclaration","scope":607,"src":"2089:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":565,"name":"uint16","nodeType":"ElementaryTypeName","src":"2089:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":568,"mutability":"mutable","name":"_payload","nameLocation":"2122:8:4","nodeType":"VariableDeclaration","scope":607,"src":"2109:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":567,"name":"bytes","nodeType":"ElementaryTypeName","src":"2109:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":570,"mutability":"mutable","name":"_refundAddress","nameLocation":"2148:14:4","nodeType":"VariableDeclaration","scope":607,"src":"2132:30:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":569,"name":"address","nodeType":"ElementaryTypeName","src":"2132:15:4","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":572,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"2172:18:4","nodeType":"VariableDeclaration","scope":607,"src":"2164:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":571,"name":"address","nodeType":"ElementaryTypeName","src":"2164:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":574,"mutability":"mutable","name":"_adapterParams","nameLocation":"2205:14:4","nodeType":"VariableDeclaration","scope":607,"src":"2192:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":573,"name":"bytes","nodeType":"ElementaryTypeName","src":"2192:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":576,"mutability":"mutable","name":"_nativeFee","nameLocation":"2226:10:4","nodeType":"VariableDeclaration","scope":607,"src":"2221:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":575,"name":"uint","nodeType":"ElementaryTypeName","src":"2221:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2088:149:4"},"returnParameters":{"id":578,"nodeType":"ParameterList","parameters":[],"src":"2255:0:4"},"scope":917,"src":"2072:491:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":648,"nodeType":"Block","src":"2694:290:4","statements":[{"assignments":[619],"declarations":[{"constant":false,"id":619,"mutability":"mutable","name":"providedGasLimit","nameLocation":"2709:16:4","nodeType":"VariableDeclaration","scope":648,"src":"2704:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":618,"name":"uint","nodeType":"ElementaryTypeName","src":"2704:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":623,"initialValue":{"arguments":[{"id":621,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"2741:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":620,"name":"_getGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"2728:12:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2728:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2704:52:4"},{"assignments":[625],"declarations":[{"constant":false,"id":625,"mutability":"mutable","name":"minGasLimit","nameLocation":"2771:11:4","nodeType":"VariableDeclaration","scope":648,"src":"2766:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":624,"name":"uint","nodeType":"ElementaryTypeName","src":"2766:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":633,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":626,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"2785:15:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":628,"indexExpression":{"id":627,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"2801:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2785:28:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":630,"indexExpression":{"id":629,"name":"_type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"2814:5:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2785:35:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":631,"name":"_extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"2823:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2785:47:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2766:66:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":635,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":625,"src":"2850:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2864:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2850:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206d696e4761734c696d6974206e6f7420736574","id":638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2867:28:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""},"value":"LzApp: minGasLimit not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""}],"id":634,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2842:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2842:54:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":640,"nodeType":"ExpressionStatement","src":"2842:54:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":642,"name":"providedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"2914:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":643,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":625,"src":"2934:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2914:31:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20676173206c696d697420697320746f6f206c6f77","id":645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2947:29:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""},"value":"LzApp: gas limit is too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""}],"id":641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2906:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2906:71:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":647,"nodeType":"ExpressionStatement","src":"2906:71:4"}]},"id":649,"implemented":true,"kind":"function","modifiers":[],"name":"_checkGasLimit","nameLocation":"2578:14:4","nodeType":"FunctionDefinition","parameters":{"id":616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":609,"mutability":"mutable","name":"_dstChainId","nameLocation":"2600:11:4","nodeType":"VariableDeclaration","scope":649,"src":"2593:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":608,"name":"uint16","nodeType":"ElementaryTypeName","src":"2593:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":611,"mutability":"mutable","name":"_type","nameLocation":"2620:5:4","nodeType":"VariableDeclaration","scope":649,"src":"2613:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":610,"name":"uint16","nodeType":"ElementaryTypeName","src":"2613:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":613,"mutability":"mutable","name":"_adapterParams","nameLocation":"2640:14:4","nodeType":"VariableDeclaration","scope":649,"src":"2627:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":612,"name":"bytes","nodeType":"ElementaryTypeName","src":"2627:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":615,"mutability":"mutable","name":"_extraGas","nameLocation":"2661:9:4","nodeType":"VariableDeclaration","scope":649,"src":"2656:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":614,"name":"uint","nodeType":"ElementaryTypeName","src":"2656:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2592:79:4"},"returnParameters":{"id":617,"nodeType":"ParameterList","parameters":[],"src":"2694:0:4"},"scope":917,"src":"2569:415:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":665,"nodeType":"Block","src":"3087:169:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":657,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"3105:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3105:21:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3334","id":659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3130:2:4","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"3105:27:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c69642061646170746572506172616d73","id":661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3134:30:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""},"value":"LzApp: invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""}],"id":656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3097:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3097:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":663,"nodeType":"ExpressionStatement","src":"3097:68:4"},{"AST":{"nodeType":"YulBlock","src":"3184:66:4","statements":[{"nodeType":"YulAssignment","src":"3198:42:4","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"3220:14:4"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:4","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:4"},"nodeType":"YulFunctionCall","src":"3216:23:4"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3210:5:4"},"nodeType":"YulFunctionCall","src":"3210:30:4"},"variableNames":[{"name":"gasLimit","nodeType":"YulIdentifier","src":"3198:8:4"}]}]},"evmVersion":"london","externalReferences":[{"declaration":651,"isOffset":false,"isSlot":false,"src":"3220:14:4","valueSize":1},{"declaration":654,"isOffset":false,"isSlot":false,"src":"3198:8:4","valueSize":1}],"id":664,"nodeType":"InlineAssembly","src":"3175:75:4"}]},"id":666,"implemented":true,"kind":"function","modifiers":[],"name":"_getGasLimit","nameLocation":"2999:12:4","nodeType":"FunctionDefinition","parameters":{"id":652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":651,"mutability":"mutable","name":"_adapterParams","nameLocation":"3025:14:4","nodeType":"VariableDeclaration","scope":666,"src":"3012:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":650,"name":"bytes","nodeType":"ElementaryTypeName","src":"3012:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3011:29:4"},"returnParameters":{"id":655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":654,"mutability":"mutable","name":"gasLimit","nameLocation":"3077:8:4","nodeType":"VariableDeclaration","scope":666,"src":"3072:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":653,"name":"uint","nodeType":"ElementaryTypeName","src":"3072:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3071:15:4"},"scope":917,"src":"2990:266:4","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":690,"nodeType":"Block","src":"3475:92:4","statements":[{"expression":{"arguments":[{"id":681,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"3513:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":682,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"3523:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":685,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3541:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}],"id":684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3533:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":683,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:4","typeDescriptions":{}}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3533:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":687,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":674,"src":"3548:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":679,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3492:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getConfig","nodeType":"MemberAccess","referencedDeclaration":129,"src":"3492:20:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint16,uint16,address,uint256) view external returns (bytes memory)"}},"id":688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3492:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":678,"id":689,"nodeType":"Return","src":"3485:75:4"}]},"functionSelector":"f5ecbdbc","id":691,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"3367:9:4","nodeType":"FunctionDefinition","parameters":{"id":675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":668,"mutability":"mutable","name":"_version","nameLocation":"3384:8:4","nodeType":"VariableDeclaration","scope":691,"src":"3377:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":667,"name":"uint16","nodeType":"ElementaryTypeName","src":"3377:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":670,"mutability":"mutable","name":"_chainId","nameLocation":"3401:8:4","nodeType":"VariableDeclaration","scope":691,"src":"3394:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":669,"name":"uint16","nodeType":"ElementaryTypeName","src":"3394:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":691,"src":"3411:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":671,"name":"address","nodeType":"ElementaryTypeName","src":"3411:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":674,"mutability":"mutable","name":"_configType","nameLocation":"3425:11:4","nodeType":"VariableDeclaration","scope":691,"src":"3420:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":673,"name":"uint","nodeType":"ElementaryTypeName","src":"3420:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3376:61:4"},"returnParameters":{"id":678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":691,"src":"3461:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":676,"name":"bytes","nodeType":"ElementaryTypeName","src":"3461:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3460:14:4"},"scope":917,"src":"3358:209:4","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[171],"body":{"id":714,"nodeType":"Block","src":"3749:79:4","statements":[{"expression":{"arguments":[{"id":708,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"3780:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":709,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"3790:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":710,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"3800:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":711,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"3813:7:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":705,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3759:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setConfig","nodeType":"MemberAccess","referencedDeclaration":171,"src":"3759:20:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,uint16,uint256,bytes memory) external"}},"id":712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3759:62:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":713,"nodeType":"ExpressionStatement","src":"3759:62:4"}]},"functionSelector":"cbed8b9c","id":715,"implemented":true,"kind":"function","modifiers":[{"id":703,"kind":"modifierInvocation","modifierName":{"id":702,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"3739:9:4"},"nodeType":"ModifierInvocation","src":"3739:9:4"}],"name":"setConfig","nameLocation":"3635:9:4","nodeType":"FunctionDefinition","overrides":{"id":701,"nodeType":"OverrideSpecifier","overrides":[],"src":"3730:8:4"},"parameters":{"id":700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":693,"mutability":"mutable","name":"_version","nameLocation":"3652:8:4","nodeType":"VariableDeclaration","scope":715,"src":"3645:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":692,"name":"uint16","nodeType":"ElementaryTypeName","src":"3645:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":695,"mutability":"mutable","name":"_chainId","nameLocation":"3669:8:4","nodeType":"VariableDeclaration","scope":715,"src":"3662:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":694,"name":"uint16","nodeType":"ElementaryTypeName","src":"3662:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":697,"mutability":"mutable","name":"_configType","nameLocation":"3684:11:4","nodeType":"VariableDeclaration","scope":715,"src":"3679:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":696,"name":"uint","nodeType":"ElementaryTypeName","src":"3679:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":699,"mutability":"mutable","name":"_config","nameLocation":"3712:7:4","nodeType":"VariableDeclaration","scope":715,"src":"3697:22:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":698,"name":"bytes","nodeType":"ElementaryTypeName","src":"3697:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3644:76:4"},"returnParameters":{"id":704,"nodeType":"ParameterList","parameters":[],"src":"3749:0:4"},"scope":917,"src":"3626:202:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[176],"body":{"id":729,"nodeType":"Block","src":"3903:52:4","statements":[{"expression":{"arguments":[{"id":726,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":717,"src":"3939:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":723,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3913:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setSendVersion","nodeType":"MemberAccess","referencedDeclaration":176,"src":"3913:25:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3913:35:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":728,"nodeType":"ExpressionStatement","src":"3913:35:4"}]},"functionSelector":"07e0db17","id":730,"implemented":true,"kind":"function","modifiers":[{"id":721,"kind":"modifierInvocation","modifierName":{"id":720,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"3893:9:4"},"nodeType":"ModifierInvocation","src":"3893:9:4"}],"name":"setSendVersion","nameLocation":"3843:14:4","nodeType":"FunctionDefinition","overrides":{"id":719,"nodeType":"OverrideSpecifier","overrides":[],"src":"3884:8:4"},"parameters":{"id":718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":717,"mutability":"mutable","name":"_version","nameLocation":"3865:8:4","nodeType":"VariableDeclaration","scope":730,"src":"3858:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":716,"name":"uint16","nodeType":"ElementaryTypeName","src":"3858:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3857:17:4"},"returnParameters":{"id":722,"nodeType":"ParameterList","parameters":[],"src":"3903:0:4"},"scope":917,"src":"3834:121:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[181],"body":{"id":744,"nodeType":"Block","src":"4033:55:4","statements":[{"expression":{"arguments":[{"id":741,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"4072:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":738,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4043:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setReceiveVersion","nodeType":"MemberAccess","referencedDeclaration":181,"src":"4043:28:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4043:38:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":743,"nodeType":"ExpressionStatement","src":"4043:38:4"}]},"functionSelector":"10ddb137","id":745,"implemented":true,"kind":"function","modifiers":[{"id":736,"kind":"modifierInvocation","modifierName":{"id":735,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4023:9:4"},"nodeType":"ModifierInvocation","src":"4023:9:4"}],"name":"setReceiveVersion","nameLocation":"3970:17:4","nodeType":"FunctionDefinition","overrides":{"id":734,"nodeType":"OverrideSpecifier","overrides":[],"src":"4014:8:4"},"parameters":{"id":733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"mutability":"mutable","name":"_version","nameLocation":"3995:8:4","nodeType":"VariableDeclaration","scope":745,"src":"3988:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":731,"name":"uint16","nodeType":"ElementaryTypeName","src":"3988:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3987:17:4"},"returnParameters":{"id":737,"nodeType":"ParameterList","parameters":[],"src":"4033:0:4"},"scope":917,"src":"3961:127:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[188],"body":{"id":762,"nodeType":"Block","src":"4198:72:4","statements":[{"expression":{"arguments":[{"id":758,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"4238:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":759,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":749,"src":"4251:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":755,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4208:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"forceResumeReceive","nodeType":"MemberAccess","referencedDeclaration":188,"src":"4208:29:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory) external"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4208:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":761,"nodeType":"ExpressionStatement","src":"4208:55:4"}]},"functionSelector":"42d65a8d","id":763,"implemented":true,"kind":"function","modifiers":[{"id":753,"kind":"modifierInvocation","modifierName":{"id":752,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4188:9:4"},"nodeType":"ModifierInvocation","src":"4188:9:4"}],"name":"forceResumeReceive","nameLocation":"4103:18:4","nodeType":"FunctionDefinition","overrides":{"id":751,"nodeType":"OverrideSpecifier","overrides":[],"src":"4179:8:4"},"parameters":{"id":750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":747,"mutability":"mutable","name":"_srcChainId","nameLocation":"4129:11:4","nodeType":"VariableDeclaration","scope":763,"src":"4122:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":746,"name":"uint16","nodeType":"ElementaryTypeName","src":"4122:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":749,"mutability":"mutable","name":"_srcAddress","nameLocation":"4157:11:4","nodeType":"VariableDeclaration","scope":763,"src":"4142:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":748,"name":"bytes","nodeType":"ElementaryTypeName","src":"4142:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4121:48:4"},"returnParameters":{"id":754,"nodeType":"ParameterList","parameters":[],"src":"4198:0:4"},"scope":917,"src":"4094:176:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":783,"nodeType":"Block","src":"4500:108:4","statements":[{"expression":{"id":776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":772,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"4510:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":774,"indexExpression":{"id":773,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"4530:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4510:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":775,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"4545:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"4510:40:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":777,"nodeType":"ExpressionStatement","src":"4510:40:4"},{"eventCall":{"arguments":[{"id":779,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"4582:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":780,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"4595:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":778,"name":"SetTrustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"4565:16:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4565:36:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":782,"nodeType":"EmitStatement","src":"4560:41:4"}]},"functionSelector":"eb8d72b7","id":784,"implemented":true,"kind":"function","modifiers":[{"id":770,"kind":"modifierInvocation","modifierName":{"id":769,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4490:9:4"},"nodeType":"ModifierInvocation","src":"4490:9:4"}],"name":"setTrustedRemote","nameLocation":"4422:16:4","nodeType":"FunctionDefinition","parameters":{"id":768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":765,"mutability":"mutable","name":"_srcChainId","nameLocation":"4446:11:4","nodeType":"VariableDeclaration","scope":784,"src":"4439:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":764,"name":"uint16","nodeType":"ElementaryTypeName","src":"4439:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":767,"mutability":"mutable","name":"_path","nameLocation":"4474:5:4","nodeType":"VariableDeclaration","scope":784,"src":"4459:20:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":766,"name":"bytes","nodeType":"ElementaryTypeName","src":"4459:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4438:42:4"},"returnParameters":{"id":771,"nodeType":"ParameterList","parameters":[],"src":"4500:0:4"},"scope":917,"src":"4413:195:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":811,"nodeType":"Block","src":"4720:172:4","statements":[{"expression":{"id":804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":793,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"4730:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":795,"indexExpression":{"id":794,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"4750:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4730:35:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":798,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"4785:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"id":801,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4809:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}],"id":800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4801:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":799,"name":"address","nodeType":"ElementaryTypeName","src":"4801:7:4","typeDescriptions":{}}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4801:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4768:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4768:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4768:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4730:85:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":805,"nodeType":"ExpressionStatement","src":"4730:85:4"},{"eventCall":{"arguments":[{"id":807,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"4854:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":808,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"4870:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":806,"name":"SetTrustedRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"4830:23:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4830:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":810,"nodeType":"EmitStatement","src":"4825:60:4"}]},"functionSelector":"a6c3d165","id":812,"implemented":true,"kind":"function","modifiers":[{"id":791,"kind":"modifierInvocation","modifierName":{"id":790,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4710:9:4"},"nodeType":"ModifierInvocation","src":"4710:9:4"}],"name":"setTrustedRemoteAddress","nameLocation":"4623:23:4","nodeType":"FunctionDefinition","parameters":{"id":789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":786,"mutability":"mutable","name":"_remoteChainId","nameLocation":"4654:14:4","nodeType":"VariableDeclaration","scope":812,"src":"4647:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":785,"name":"uint16","nodeType":"ElementaryTypeName","src":"4647:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":788,"mutability":"mutable","name":"_remoteAddress","nameLocation":"4685:14:4","nodeType":"VariableDeclaration","scope":812,"src":"4670:29:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":787,"name":"bytes","nodeType":"ElementaryTypeName","src":"4670:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4646:54:4"},"returnParameters":{"id":792,"nodeType":"ParameterList","parameters":[],"src":"4720:0:4"},"scope":917,"src":"4614:278:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":842,"nodeType":"Block","src":"4991:233:4","statements":[{"assignments":[820],"declarations":[{"constant":false,"id":820,"mutability":"mutable","name":"path","nameLocation":"5014:4:4","nodeType":"VariableDeclaration","scope":842,"src":"5001:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":819,"name":"bytes","nodeType":"ElementaryTypeName","src":"5001:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":824,"initialValue":{"baseExpression":{"id":821,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"5021:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":823,"indexExpression":{"id":822,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":814,"src":"5041:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5021:35:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5001:55:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":826,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5074:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5074:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5089:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5074:16:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","id":830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5092:31:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""},"value":"LzApp: no trusted path record"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""}],"id":825,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5066:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5066:58:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":832,"nodeType":"ExpressionStatement","src":"5066:58:4"},{"expression":{"arguments":[{"hexValue":"30","id":835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5152:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":836,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5155:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5155:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3230","id":838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5169:2:4","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"5155:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":833,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5141:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":2517,"src":"5141:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5141:31:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":818,"id":841,"nodeType":"Return","src":"5134:38:4"}]},"functionSelector":"9f38369a","id":843,"implemented":true,"kind":"function","modifiers":[],"name":"getTrustedRemoteAddress","nameLocation":"4907:23:4","nodeType":"FunctionDefinition","parameters":{"id":815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":814,"mutability":"mutable","name":"_remoteChainId","nameLocation":"4938:14:4","nodeType":"VariableDeclaration","scope":843,"src":"4931:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":813,"name":"uint16","nodeType":"ElementaryTypeName","src":"4931:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4930:23:4"},"returnParameters":{"id":818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":843,"src":"4977:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":816,"name":"bytes","nodeType":"ElementaryTypeName","src":"4977:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4976:14:4"},"scope":917,"src":"4898:326:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":858,"nodeType":"Block","src":"5289:74:4","statements":[{"expression":{"id":852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":850,"name":"precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":458,"src":"5299:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":851,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"5310:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5299:20:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":853,"nodeType":"ExpressionStatement","src":"5299:20:4"},{"eventCall":{"arguments":[{"id":855,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"5346:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":854,"name":"SetPrecrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":462,"src":"5334:11:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5334:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"EmitStatement","src":"5329:27:4"}]},"functionSelector":"baf3292d","id":859,"implemented":true,"kind":"function","modifiers":[{"id":848,"kind":"modifierInvocation","modifierName":{"id":847,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"5279:9:4"},"nodeType":"ModifierInvocation","src":"5279:9:4"}],"name":"setPrecrime","nameLocation":"5239:11:4","nodeType":"FunctionDefinition","parameters":{"id":846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":845,"mutability":"mutable","name":"_precrime","nameLocation":"5259:9:4","nodeType":"VariableDeclaration","scope":859,"src":"5251:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":844,"name":"address","nodeType":"ElementaryTypeName","src":"5251:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5250:19:4"},"returnParameters":{"id":849,"nodeType":"ParameterList","parameters":[],"src":"5289:0:4"},"scope":917,"src":"5230:133:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":891,"nodeType":"Block","src":"5464:185:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":871,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5482:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5492:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5482:11:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","id":874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5495:23:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e","typeString":"literal_string \"LzApp: invalid minGas\""},"value":"LzApp: invalid minGas"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e","typeString":"literal_string \"LzApp: invalid minGas\""}],"id":870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5474:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5474:45:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":876,"nodeType":"ExpressionStatement","src":"5474:45:4"},{"expression":{"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":877,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"5529:15:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":880,"indexExpression":{"id":878,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"5545:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5529:28:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":881,"indexExpression":{"id":879,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"5558:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5529:41:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":882,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5573:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5529:51:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":884,"nodeType":"ExpressionStatement","src":"5529:51:4"},{"eventCall":{"arguments":[{"id":886,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"5608:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":887,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"5621:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":888,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5634:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":885,"name":"SetMinDstGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":482,"src":"5595:12:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint16,uint256)"}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5595:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":890,"nodeType":"EmitStatement","src":"5590:52:4"}]},"functionSelector":"df2a5b3b","id":892,"implemented":true,"kind":"function","modifiers":[{"id":868,"kind":"modifierInvocation","modifierName":{"id":867,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"5454:9:4"},"nodeType":"ModifierInvocation","src":"5454:9:4"}],"name":"setMinDstGas","nameLocation":"5378:12:4","nodeType":"FunctionDefinition","parameters":{"id":866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":861,"mutability":"mutable","name":"_dstChainId","nameLocation":"5398:11:4","nodeType":"VariableDeclaration","scope":892,"src":"5391:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":860,"name":"uint16","nodeType":"ElementaryTypeName","src":"5391:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":863,"mutability":"mutable","name":"_packetType","nameLocation":"5418:11:4","nodeType":"VariableDeclaration","scope":892,"src":"5411:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":862,"name":"uint16","nodeType":"ElementaryTypeName","src":"5411:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":865,"mutability":"mutable","name":"_minGas","nameLocation":"5436:7:4","nodeType":"VariableDeclaration","scope":892,"src":"5431:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":864,"name":"uint","nodeType":"ElementaryTypeName","src":"5431:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5390:54:4"},"returnParameters":{"id":869,"nodeType":"ParameterList","parameters":[],"src":"5464:0:4"},"scope":917,"src":"5369:280:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":915,"nodeType":"Block","src":"5846:145:4","statements":[{"assignments":[902],"declarations":[{"constant":false,"id":902,"mutability":"mutable","name":"trustedSource","nameLocation":"5869:13:4","nodeType":"VariableDeclaration","scope":915,"src":"5856:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":901,"name":"bytes","nodeType":"ElementaryTypeName","src":"5856:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":906,"initialValue":{"baseExpression":{"id":903,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"5885:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":905,"indexExpression":{"id":904,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"5905:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5885:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5856:61:4"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":908,"name":"trustedSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":902,"src":"5944:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":907,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5934:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5934:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":911,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":896,"src":"5972:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":910,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5962:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5962:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5934:50:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":900,"id":914,"nodeType":"Return","src":"5927:57:4"}]},"functionSelector":"3d8b38f6","id":916,"implemented":true,"kind":"function","modifiers":[],"name":"isTrustedRemote","nameLocation":"5753:15:4","nodeType":"FunctionDefinition","parameters":{"id":897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":894,"mutability":"mutable","name":"_srcChainId","nameLocation":"5776:11:4","nodeType":"VariableDeclaration","scope":916,"src":"5769:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":893,"name":"uint16","nodeType":"ElementaryTypeName","src":"5769:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":896,"mutability":"mutable","name":"_srcAddress","nameLocation":"5804:11:4","nodeType":"VariableDeclaration","scope":916,"src":"5789:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":895,"name":"bytes","nodeType":"ElementaryTypeName","src":"5789:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5768:48:4"},"returnParameters":{"id":900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":916,"src":"5840:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":898,"name":"bool","nodeType":"ElementaryTypeName","src":"5840:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5839:6:4"},"scope":917,"src":"5744:247:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":918,"src":"343:5650:4","usedErrors":[]}],"src":"33:5961:4"},"id":4},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LzApp":[917],"NonblockingLzApp":[1136],"Ownable":[2996]},"id":1137,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":919,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:5"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","file":"./LzApp.sol","id":920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1137,"sourceUnit":918,"src":"58:21:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol","file":"../util/ExcessivelySafeCall.sol","id":921,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1137,"sourceUnit":2884,"src":"80:41:5","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":922,"name":"LzApp","nodeType":"IdentifierPath","referencedDeclaration":917,"src":"505:5:5"},"id":923,"nodeType":"InheritanceSpecifier","src":"505:5:5"}],"canonicalName":"NonblockingLzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":1136,"linearizedBaseContracts":[1136,917,189,158,2996,3708],"name":"NonblockingLzApp","nameLocation":"485:16:5","nodeType":"ContractDefinition","nodes":[{"id":926,"libraryName":{"id":924,"name":"ExcessivelySafeCall","nodeType":"IdentifierPath","referencedDeclaration":2883,"src":"523:19:5"},"nodeType":"UsingForDirective","src":"517:38:5","typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"547:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":934,"nodeType":"Block","src":"609:2:5","statements":[]},"id":935,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":931,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"598:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":932,"kind":"baseConstructorSpecifier","modifierName":{"id":930,"name":"LzApp","nodeType":"IdentifierPath","referencedDeclaration":917,"src":"592:5:5"},"nodeType":"ModifierInvocation","src":"592:16:5"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":928,"mutability":"mutable","name":"_endpoint","nameLocation":"581:9:5","nodeType":"VariableDeclaration","scope":935,"src":"573:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"573:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"572:19:5"},"returnParameters":{"id":933,"nodeType":"ParameterList","parameters":[],"src":"609:0:5"},"scope":1136,"src":"561:50:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"functionSelector":"5b8c41e6","id":943,"mutability":"mutable","name":"failedMessages","nameLocation":"688:14:5","nodeType":"VariableDeclaration","scope":1136,"src":"617:85:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"typeName":{"id":942,"keyType":{"id":936,"name":"uint16","nodeType":"ElementaryTypeName","src":"625:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"617:63:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"valueType":{"id":941,"keyType":{"id":937,"name":"bytes","nodeType":"ElementaryTypeName","src":"643:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"635:44:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes => mapping(uint64 => bytes32))"},"valueType":{"id":940,"keyType":{"id":938,"name":"uint64","nodeType":"ElementaryTypeName","src":"660:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"652:26:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"},"valueType":{"id":939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"670:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}}}},"visibility":"public"},{"anonymous":false,"id":955,"name":"MessageFailed","nameLocation":"715:13:5","nodeType":"EventDefinition","parameters":{"id":954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":945,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"736:11:5","nodeType":"VariableDeclaration","scope":955,"src":"729:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":944,"name":"uint16","nodeType":"ElementaryTypeName","src":"729:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":947,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"755:11:5","nodeType":"VariableDeclaration","scope":955,"src":"749:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":946,"name":"bytes","nodeType":"ElementaryTypeName","src":"749:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":949,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"775:6:5","nodeType":"VariableDeclaration","scope":955,"src":"768:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":948,"name":"uint64","nodeType":"ElementaryTypeName","src":"768:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":951,"indexed":false,"mutability":"mutable","name":"_payload","nameLocation":"789:8:5","nodeType":"VariableDeclaration","scope":955,"src":"783:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":950,"name":"bytes","nodeType":"ElementaryTypeName","src":"783:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":953,"indexed":false,"mutability":"mutable","name":"_reason","nameLocation":"805:7:5","nodeType":"VariableDeclaration","scope":955,"src":"799:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":952,"name":"bytes","nodeType":"ElementaryTypeName","src":"799:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"728:85:5"},"src":"709:105:5"},{"anonymous":false,"id":965,"name":"RetryMessageSuccess","nameLocation":"825:19:5","nodeType":"EventDefinition","parameters":{"id":964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":957,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"852:11:5","nodeType":"VariableDeclaration","scope":965,"src":"845:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":956,"name":"uint16","nodeType":"ElementaryTypeName","src":"845:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":959,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"871:11:5","nodeType":"VariableDeclaration","scope":965,"src":"865:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":958,"name":"bytes","nodeType":"ElementaryTypeName","src":"865:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":961,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"891:6:5","nodeType":"VariableDeclaration","scope":965,"src":"884:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":960,"name":"uint64","nodeType":"ElementaryTypeName","src":"884:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":963,"indexed":false,"mutability":"mutable","name":"_payloadHash","nameLocation":"907:12:5","nodeType":"VariableDeclaration","scope":965,"src":"899:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"899:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"844:76:5"},"src":"819:102:5"},{"baseFunctions":[564],"body":{"id":1025,"nodeType":"Block","src":"1118:453:5","statements":[{"assignments":[978,980],"declarations":[{"constant":false,"id":978,"mutability":"mutable","name":"success","nameLocation":"1134:7:5","nodeType":"VariableDeclaration","scope":1025,"src":"1129:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":977,"name":"bool","nodeType":"ElementaryTypeName","src":"1129:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":980,"mutability":"mutable","name":"reason","nameLocation":"1156:6:5","nodeType":"VariableDeclaration","scope":1025,"src":"1143:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":979,"name":"bytes","nodeType":"ElementaryTypeName","src":"1143:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1000,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":986,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"1200:7:5","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1200:9:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313530","id":988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1211:3:5","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},{"arguments":[{"expression":{"expression":{"id":991,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1239:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonblockingLzReceive","nodeType":"MemberAccess","referencedDeclaration":1056,"src":"1239:25:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1239:34:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":994,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1275:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":995,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1288:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":996,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1301:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":997,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1309:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1216:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1216:22:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:102:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":983,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1174:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}],"id":982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1166:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":981,"name":"address","nodeType":"ElementaryTypeName","src":"1166:7:5","typeDescriptions":{}}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1166:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"excessivelySafeCall","nodeType":"MemberAccess","referencedDeclaration":2826,"src":"1166:33:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$bound_to$_t_address_$","typeString":"function (address,uint256,uint16,bytes memory) returns (bool,bytes memory)"}},"id":999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1166:153:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1128:191:5"},{"condition":{"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1376:8:5","subExpression":{"id":1001,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":978,"src":"1377:7:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1024,"nodeType":"IfStatement","src":"1372:193:5","trueBody":{"id":1023,"nodeType":"Block","src":"1386:179:5","statements":[{"expression":{"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1003,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"1400:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1007,"indexExpression":{"id":1004,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1415:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1400:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1008,"indexExpression":{"id":1005,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1428:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1400:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1009,"indexExpression":{"id":1006,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1441:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1400:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1011,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1461:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1010,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1451:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1451:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1400:70:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1014,"nodeType":"ExpressionStatement","src":"1400:70:5"},{"eventCall":{"arguments":[{"id":1016,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1503:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1017,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1516:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1018,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1529:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1019,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1537:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1020,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"1547:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1015,"name":"MessageFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"1489:13:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory,bytes memory)"}},"id":1021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1489:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1022,"nodeType":"EmitStatement","src":"1484:70:5"}]}}]},"id":1026,"implemented":true,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"989:18:5","nodeType":"FunctionDefinition","overrides":{"id":975,"nodeType":"OverrideSpecifier","overrides":[],"src":"1109:8:5"},"parameters":{"id":974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":967,"mutability":"mutable","name":"_srcChainId","nameLocation":"1015:11:5","nodeType":"VariableDeclaration","scope":1026,"src":"1008:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":966,"name":"uint16","nodeType":"ElementaryTypeName","src":"1008:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":969,"mutability":"mutable","name":"_srcAddress","nameLocation":"1041:11:5","nodeType":"VariableDeclaration","scope":1026,"src":"1028:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":968,"name":"bytes","nodeType":"ElementaryTypeName","src":"1028:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":971,"mutability":"mutable","name":"_nonce","nameLocation":"1061:6:5","nodeType":"VariableDeclaration","scope":1026,"src":"1054:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":970,"name":"uint64","nodeType":"ElementaryTypeName","src":"1054:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":973,"mutability":"mutable","name":"_payload","nameLocation":"1082:8:5","nodeType":"VariableDeclaration","scope":1026,"src":"1069:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":972,"name":"bytes","nodeType":"ElementaryTypeName","src":"1069:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1007:84:5"},"returnParameters":{"id":976,"nodeType":"ParameterList","parameters":[],"src":"1118:0:5"},"scope":1136,"src":"980:591:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1055,"nodeType":"Block","src":"1710:209:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1038,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1765:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1765:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":1042,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1789:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}],"id":1041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1781:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1040,"name":"address","nodeType":"ElementaryTypeName","src":"1781:7:5","typeDescriptions":{}}},"id":1043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1781:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1765:29:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265204c7a417070","id":1045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1796:40:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""},"value":"NonblockingLzApp: caller must be LzApp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""}],"id":1037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1757:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1757:80:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1047,"nodeType":"ExpressionStatement","src":"1757:80:5"},{"expression":{"arguments":[{"id":1049,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"1869:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1050,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"1882:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1051,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"1895:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1052,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1903:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1048,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"1847:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1847:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1054,"nodeType":"ExpressionStatement","src":"1847:65:5"}]},"functionSelector":"66ad5c8a","id":1056,"implemented":true,"kind":"function","modifiers":[],"name":"nonblockingLzReceive","nameLocation":"1586:20:5","nodeType":"FunctionDefinition","parameters":{"id":1035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1028,"mutability":"mutable","name":"_srcChainId","nameLocation":"1614:11:5","nodeType":"VariableDeclaration","scope":1056,"src":"1607:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1027,"name":"uint16","nodeType":"ElementaryTypeName","src":"1607:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1030,"mutability":"mutable","name":"_srcAddress","nameLocation":"1642:11:5","nodeType":"VariableDeclaration","scope":1056,"src":"1627:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1029,"name":"bytes","nodeType":"ElementaryTypeName","src":"1627:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1032,"mutability":"mutable","name":"_nonce","nameLocation":"1662:6:5","nodeType":"VariableDeclaration","scope":1056,"src":"1655:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1031,"name":"uint64","nodeType":"ElementaryTypeName","src":"1655:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1034,"mutability":"mutable","name":"_payload","nameLocation":"1685:8:5","nodeType":"VariableDeclaration","scope":1056,"src":"1670:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1033,"name":"bytes","nodeType":"ElementaryTypeName","src":"1670:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1606:88:5"},"returnParameters":{"id":1036,"nodeType":"ParameterList","parameters":[],"src":"1710:0:5"},"scope":1136,"src":"1577:342:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":1067,"implemented":false,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1971:21:5","nodeType":"FunctionDefinition","parameters":{"id":1065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1058,"mutability":"mutable","name":"_srcChainId","nameLocation":"2000:11:5","nodeType":"VariableDeclaration","scope":1067,"src":"1993:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1057,"name":"uint16","nodeType":"ElementaryTypeName","src":"1993:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1060,"mutability":"mutable","name":"_srcAddress","nameLocation":"2026:11:5","nodeType":"VariableDeclaration","scope":1067,"src":"2013:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1059,"name":"bytes","nodeType":"ElementaryTypeName","src":"2013:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1062,"mutability":"mutable","name":"_nonce","nameLocation":"2046:6:5","nodeType":"VariableDeclaration","scope":1067,"src":"2039:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1061,"name":"uint64","nodeType":"ElementaryTypeName","src":"2039:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1064,"mutability":"mutable","name":"_payload","nameLocation":"2067:8:5","nodeType":"VariableDeclaration","scope":1067,"src":"2054:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1063,"name":"bytes","nodeType":"ElementaryTypeName","src":"2054:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1992:84:5"},"returnParameters":{"id":1066,"nodeType":"ParameterList","parameters":[],"src":"2093:0:5"},"scope":1136,"src":"1962:132:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1134,"nodeType":"Block","src":"2233:624:5","statements":[{"assignments":[1079],"declarations":[{"constant":false,"id":1079,"mutability":"mutable","name":"payloadHash","nameLocation":"2295:11:5","nodeType":"VariableDeclaration","scope":1134,"src":"2287:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2287:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1087,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1080,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"2309:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1082,"indexExpression":{"id":1081,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2324:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1084,"indexExpression":{"id":1083,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2337:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1086,"indexExpression":{"id":1085,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2350:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2287:70:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1089,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2375:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2398:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2390:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2390:7:5","typeDescriptions":{}}},"id":1093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2390:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2375:25:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373616765","id":1095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2402:37:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""},"value":"NonblockingLzApp: no stored message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""}],"id":1088,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2367:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2367:73:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1097,"nodeType":"ExpressionStatement","src":"2367:73:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1100,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"2468:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1099,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2458:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2458:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1102,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2481:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2458:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6164","id":1104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2494:35:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""},"value":"NonblockingLzApp: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""}],"id":1098,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2450:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2450:80:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1106,"nodeType":"ExpressionStatement","src":"2450:80:5"},{"expression":{"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1107,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"2576:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1111,"indexExpression":{"id":1108,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2591:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2576:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1112,"indexExpression":{"id":1109,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2604:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2576:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1113,"indexExpression":{"id":1110,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2617:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2576:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2635:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2627:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2627:7:5","typeDescriptions":{}}},"id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2627:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2576:61:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1119,"nodeType":"ExpressionStatement","src":"2576:61:5"},{"expression":{"arguments":[{"id":1121,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2726:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1122,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2739:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1123,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2752:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1124,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"2760:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1120,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"2704:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2704:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1126,"nodeType":"ExpressionStatement","src":"2704:65:5"},{"eventCall":{"arguments":[{"id":1128,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2804:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1129,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2817:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1130,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2830:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1131,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2838:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1127,"name":"RetryMessageSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"2784:19:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes32)"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2784:66:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1133,"nodeType":"EmitStatement","src":"2779:71:5"}]},"functionSelector":"d1deba1f","id":1135,"implemented":true,"kind":"function","modifiers":[],"name":"retryMessage","nameLocation":"2109:12:5","nodeType":"FunctionDefinition","parameters":{"id":1076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1069,"mutability":"mutable","name":"_srcChainId","nameLocation":"2129:11:5","nodeType":"VariableDeclaration","scope":1135,"src":"2122:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1068,"name":"uint16","nodeType":"ElementaryTypeName","src":"2122:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1071,"mutability":"mutable","name":"_srcAddress","nameLocation":"2157:11:5","nodeType":"VariableDeclaration","scope":1135,"src":"2142:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1070,"name":"bytes","nodeType":"ElementaryTypeName","src":"2142:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1073,"mutability":"mutable","name":"_nonce","nameLocation":"2177:6:5","nodeType":"VariableDeclaration","scope":1135,"src":"2170:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1072,"name":"uint64","nodeType":"ElementaryTypeName","src":"2170:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1075,"mutability":"mutable","name":"_payload","nameLocation":"2200:8:5","nodeType":"VariableDeclaration","scope":1135,"src":"2185:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1074,"name":"bytes","nodeType":"ElementaryTypeName","src":"2185:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2121:88:5"},"returnParameters":{"id":1077,"nodeType":"ParameterList","parameters":[],"src":"2233:0:5"},"scope":1136,"src":"2100:757:5","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":1137,"src":"467:2392:5","usedErrors":[]}],"src":"33:2827:5"},"id":5},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LZEndpointMock":[2453],"LzLib":[427]},"id":2454,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":1138,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:6"},{"id":1139,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:6"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","file":"../interfaces/ILayerZeroReceiver.sol","id":1140,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":159,"src":"83:46:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","file":"../interfaces/ILayerZeroEndpoint.sol","id":1141,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":145,"src":"130:46:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol","file":"../libraries/LzLib.sol","id":1142,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":428,"src":"177:32:6","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1143,"name":"ILayerZeroEndpoint","nodeType":"IdentifierPath","referencedDeclaration":144,"src":"844:18:6"},"id":1144,"nodeType":"InheritanceSpecifier","src":"844:18:6"}],"canonicalName":"LZEndpointMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":2453,"linearizedBaseContracts":[2453,144,189],"name":"LZEndpointMock","nameLocation":"826:14:6","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1147,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"893:12:6","nodeType":"VariableDeclaration","scope":2453,"src":"869:40:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1145,"name":"uint8","nodeType":"ElementaryTypeName","src":"869:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"908:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1150,"mutability":"constant","name":"_ENTERED","nameLocation":"939:8:6","nodeType":"VariableDeclaration","scope":2453,"src":"915:36:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1148,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":false,"functionSelector":"c81b383a","id":1154,"mutability":"mutable","name":"lzEndpointLookup","nameLocation":"993:16:6","nodeType":"VariableDeclaration","scope":2453,"src":"958:51:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":1153,"keyType":{"id":1151,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"958:27:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":1152,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"db14f305","id":1156,"mutability":"mutable","name":"mockChainId","nameLocation":"1030:11:6","nodeType":"VariableDeclaration","scope":2453,"src":"1016:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1155,"name":"uint16","nodeType":"ElementaryTypeName","src":"1016:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"public"},{"constant":false,"functionSelector":"3e0dd83e","id":1158,"mutability":"mutable","name":"nextMsgBlocked","nameLocation":"1059:14:6","nodeType":"VariableDeclaration","scope":2453,"src":"1047:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1157,"name":"bool","nodeType":"ElementaryTypeName","src":"1047:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"907c5e7e","id":1161,"mutability":"mutable","name":"relayerFeeConfig","nameLocation":"1122:16:6","nodeType":"VariableDeclaration","scope":2453,"src":"1098:40:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig"},"typeName":{"id":1160,"nodeType":"UserDefinedTypeName","pathNode":{"id":1159,"name":"RelayerFeeConfig","nodeType":"IdentifierPath","referencedDeclaration":1217,"src":"1098:16:6"},"referencedDeclaration":1217,"src":"1098:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"07d3277f","id":1164,"mutability":"mutable","name":"protocolFeeConfig","nameLocation":"1169:17:6","nodeType":"VariableDeclaration","scope":2453,"src":"1144:42:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig"},"typeName":{"id":1163,"nodeType":"UserDefinedTypeName","pathNode":{"id":1162,"name":"ProtocolFeeConfig","nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"1144:17:6"},"referencedDeclaration":1206,"src":"1144:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"f9cd3ceb","id":1166,"mutability":"mutable","name":"oracleFee","nameLocation":"1204:9:6","nodeType":"VariableDeclaration","scope":2453,"src":"1192:21:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1165,"name":"uint","nodeType":"ElementaryTypeName","src":"1192:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"272bd384","id":1168,"mutability":"mutable","name":"defaultAdapterParams","nameLocation":"1232:20:6","nodeType":"VariableDeclaration","scope":2453,"src":"1219:33:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":1167,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"constant":false,"functionSelector":"9924d33b","id":1174,"mutability":"mutable","name":"inboundNonce","nameLocation":"1396:12:6","nodeType":"VariableDeclaration","scope":2453,"src":"1345:63:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"typeName":{"id":1173,"keyType":{"id":1169,"name":"uint16","nodeType":"ElementaryTypeName","src":"1353:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1345:43:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"valueType":{"id":1172,"keyType":{"id":1170,"name":"bytes","nodeType":"ElementaryTypeName","src":"1371:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1363:24:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes => uint64)"},"valueType":{"id":1171,"name":"uint64","nodeType":"ElementaryTypeName","src":"1380:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"b2086499","id":1180,"mutability":"mutable","name":"outboundNonce","nameLocation":"1542:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1489:66:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"typeName":{"id":1179,"keyType":{"id":1175,"name":"uint16","nodeType":"ElementaryTypeName","src":"1497:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1489:45:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"valueType":{"id":1178,"keyType":{"id":1176,"name":"address","nodeType":"ElementaryTypeName","src":"1515:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1507:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueType":{"id":1177,"name":"uint64","nodeType":"ElementaryTypeName","src":"1526:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"76a386dc","id":1187,"mutability":"mutable","name":"storedPayload","nameLocation":"1786:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1728:71:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"typeName":{"id":1186,"keyType":{"id":1181,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1728:50:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"valueType":{"id":1185,"keyType":{"id":1182,"name":"bytes","nodeType":"ElementaryTypeName","src":"1754:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1746:31:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.StoredPayload)"},"valueType":{"id":1184,"nodeType":"UserDefinedTypeName","pathNode":{"id":1183,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"1763:13:6"},"referencedDeclaration":1224,"src":"1763:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}}}},"visibility":"public"},{"constant":false,"functionSelector":"12a9ee6b","id":1195,"mutability":"mutable","name":"msgsToDeliver","nameLocation":"1906:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1846:73:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"typeName":{"id":1194,"keyType":{"id":1188,"name":"uint16","nodeType":"ElementaryTypeName","src":"1854:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1846:52:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"valueType":{"id":1193,"keyType":{"id":1189,"name":"bytes","nodeType":"ElementaryTypeName","src":"1872:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1864:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])"},"valueType":{"baseType":{"id":1191,"nodeType":"UserDefinedTypeName","pathNode":{"id":1190,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"1881:13:6"},"referencedDeclaration":1231,"src":"1881:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":1192,"nodeType":"ArrayTypeName","src":"1881:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}}}},"visibility":"public"},{"constant":false,"id":1198,"mutability":"mutable","name":"_send_entered_state","nameLocation":"1965:19:6","nodeType":"VariableDeclaration","scope":2453,"src":"1950:38:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1196,"name":"uint8","nodeType":"ElementaryTypeName","src":"1950:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1987:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"_receive_entered_state","nameLocation":"2009:22:6","nodeType":"VariableDeclaration","scope":2453,"src":"1994:41:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1199,"name":"uint8","nodeType":"ElementaryTypeName","src":"1994:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2034:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"canonicalName":"LZEndpointMock.ProtocolFeeConfig","id":1206,"members":[{"constant":false,"id":1203,"mutability":"mutable","name":"zroFee","nameLocation":"2082:6:6","nodeType":"VariableDeclaration","scope":1206,"src":"2077:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1202,"name":"uint","nodeType":"ElementaryTypeName","src":"2077:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1205,"mutability":"mutable","name":"nativeBP","nameLocation":"2103:8:6","nodeType":"VariableDeclaration","scope":1206,"src":"2098:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1204,"name":"uint","nodeType":"ElementaryTypeName","src":"2098:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolFeeConfig","nameLocation":"2049:17:6","nodeType":"StructDefinition","scope":2453,"src":"2042:76:6","visibility":"public"},{"canonicalName":"LZEndpointMock.RelayerFeeConfig","id":1217,"members":[{"constant":false,"id":1208,"mutability":"mutable","name":"dstPriceRatio","nameLocation":"2166:13:6","nodeType":"VariableDeclaration","scope":1217,"src":"2158:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1207,"name":"uint128","nodeType":"ElementaryTypeName","src":"2158:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1210,"mutability":"mutable","name":"dstGasPriceInWei","nameLocation":"2206:16:6","nodeType":"VariableDeclaration","scope":1217,"src":"2198:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1209,"name":"uint128","nodeType":"ElementaryTypeName","src":"2198:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1212,"mutability":"mutable","name":"dstNativeAmtCap","nameLocation":"2240:15:6","nodeType":"VariableDeclaration","scope":1217,"src":"2232:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1211,"name":"uint128","nodeType":"ElementaryTypeName","src":"2232:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1214,"mutability":"mutable","name":"baseGas","nameLocation":"2272:7:6","nodeType":"VariableDeclaration","scope":1217,"src":"2265:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1213,"name":"uint64","nodeType":"ElementaryTypeName","src":"2265:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1216,"mutability":"mutable","name":"gasPerByte","nameLocation":"2296:10:6","nodeType":"VariableDeclaration","scope":1217,"src":"2289:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1215,"name":"uint64","nodeType":"ElementaryTypeName","src":"2289:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"RelayerFeeConfig","nameLocation":"2131:16:6","nodeType":"StructDefinition","scope":2453,"src":"2124:189:6","visibility":"public"},{"canonicalName":"LZEndpointMock.StoredPayload","id":1224,"members":[{"constant":false,"id":1219,"mutability":"mutable","name":"payloadLength","nameLocation":"2357:13:6","nodeType":"VariableDeclaration","scope":1224,"src":"2350:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1218,"name":"uint64","nodeType":"ElementaryTypeName","src":"2350:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1221,"mutability":"mutable","name":"dstAddress","nameLocation":"2388:10:6","nodeType":"VariableDeclaration","scope":1224,"src":"2380:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"2380:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"payloadHash","nameLocation":"2416:11:6","nodeType":"VariableDeclaration","scope":1224,"src":"2408:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2408:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"StoredPayload","nameLocation":"2326:13:6","nodeType":"StructDefinition","scope":2453,"src":"2319:115:6","visibility":"public"},{"canonicalName":"LZEndpointMock.QueuedPayload","id":1231,"members":[{"constant":false,"id":1226,"mutability":"mutable","name":"dstAddress","nameLocation":"2479:10:6","nodeType":"VariableDeclaration","scope":1231,"src":"2471:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1225,"name":"address","nodeType":"ElementaryTypeName","src":"2471:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1228,"mutability":"mutable","name":"nonce","nameLocation":"2506:5:6","nodeType":"VariableDeclaration","scope":1231,"src":"2499:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1227,"name":"uint64","nodeType":"ElementaryTypeName","src":"2499:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"payload","nameLocation":"2527:7:6","nodeType":"VariableDeclaration","scope":1231,"src":"2521:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1229,"name":"bytes","nodeType":"ElementaryTypeName","src":"2521:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"QueuedPayload","nameLocation":"2447:13:6","nodeType":"StructDefinition","scope":2453,"src":"2440:101:6","visibility":"public"},{"body":{"id":1249,"nodeType":"Block","src":"2575:193:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1234,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2593:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1235,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2616:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2593:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6379","id":1237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2630:35:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""},"value":"LayerZeroMock: no send reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""}],"id":1233,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2585:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:81:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1239,"nodeType":"ExpressionStatement","src":"2585:81:6"},{"expression":{"id":1242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1240,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2676:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1241,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"2698:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2676:30:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1243,"nodeType":"ExpressionStatement","src":"2676:30:6"},{"id":1244,"nodeType":"PlaceholderStatement","src":"2716:1:6"},{"expression":{"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1245,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2727:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1246,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2749:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2727:34:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1248,"nodeType":"ExpressionStatement","src":"2727:34:6"}]},"id":1250,"name":"sendNonReentrant","nameLocation":"2556:16:6","nodeType":"ModifierDefinition","parameters":{"id":1232,"nodeType":"ParameterList","parameters":[],"src":"2572:2:6"},"src":"2547:221:6","virtual":false,"visibility":"internal"},{"body":{"id":1268,"nodeType":"Block","src":"2805:205:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1253,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2823:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1254,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2849:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2823:38:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472616e6379","id":1256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2863:38:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""},"value":"LayerZeroMock: no receive reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""}],"id":1252,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2815:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2815:87:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1258,"nodeType":"ExpressionStatement","src":"2815:87:6"},{"expression":{"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1259,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2912:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1260,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"2937:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2912:33:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1262,"nodeType":"ExpressionStatement","src":"2912:33:6"},{"id":1263,"nodeType":"PlaceholderStatement","src":"2955:1:6"},{"expression":{"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1264,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2966:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1265,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2991:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2966:37:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1267,"nodeType":"ExpressionStatement","src":"2966:37:6"}]},"id":1269,"name":"receiveNonReentrant","nameLocation":"2783:19:6","nodeType":"ModifierDefinition","parameters":{"id":1251,"nodeType":"ParameterList","parameters":[],"src":"2802:2:6"},"src":"2774:236:6","virtual":false,"visibility":"internal"},{"anonymous":false,"id":1275,"name":"UaForceResumeReceive","nameLocation":"3022:20:6","nodeType":"EventDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"3050:7:6","nodeType":"VariableDeclaration","scope":1275,"src":"3043:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3043:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1273,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3065:10:6","nodeType":"VariableDeclaration","scope":1275,"src":"3059:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1272,"name":"bytes","nodeType":"ElementaryTypeName","src":"3059:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3042:34:6"},"src":"3016:61:6"},{"anonymous":false,"id":1285,"name":"PayloadCleared","nameLocation":"3088:14:6","nodeType":"EventDefinition","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1277,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3110:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3103:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1276,"name":"uint16","nodeType":"ElementaryTypeName","src":"3103:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1279,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3128:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3122:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1278,"name":"bytes","nodeType":"ElementaryTypeName","src":"3122:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1281,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3147:5:6","nodeType":"VariableDeclaration","scope":1285,"src":"3140:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1280,"name":"uint64","nodeType":"ElementaryTypeName","src":"3140:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1283,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3162:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3154:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1282,"name":"address","nodeType":"ElementaryTypeName","src":"3154:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3102:71:6"},"src":"3082:92:6"},{"anonymous":false,"id":1299,"name":"PayloadStored","nameLocation":"3185:13:6","nodeType":"EventDefinition","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1287,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3206:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3199:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1286,"name":"uint16","nodeType":"ElementaryTypeName","src":"3199:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1289,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3224:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3218:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1288,"name":"bytes","nodeType":"ElementaryTypeName","src":"3218:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1291,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3244:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3236:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1290,"name":"address","nodeType":"ElementaryTypeName","src":"3236:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1293,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3263:5:6","nodeType":"VariableDeclaration","scope":1299,"src":"3256:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1292,"name":"uint64","nodeType":"ElementaryTypeName","src":"3256:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1295,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"3276:7:6","nodeType":"VariableDeclaration","scope":1299,"src":"3270:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1294,"name":"bytes","nodeType":"ElementaryTypeName","src":"3270:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1297,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"3291:6:6","nodeType":"VariableDeclaration","scope":1299,"src":"3285:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1296,"name":"bytes","nodeType":"ElementaryTypeName","src":"3285:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3198:100:6"},"src":"3179:120:6"},{"anonymous":false,"id":1305,"name":"ValueTransferFailed","nameLocation":"3310:19:6","nodeType":"EventDefinition","parameters":{"id":1304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1301,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3346:2:6","nodeType":"VariableDeclaration","scope":1305,"src":"3330:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1300,"name":"address","nodeType":"ElementaryTypeName","src":"3330:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1303,"indexed":true,"mutability":"mutable","name":"quantity","nameLocation":"3363:8:6","nodeType":"VariableDeclaration","scope":1305,"src":"3350:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1302,"name":"uint","nodeType":"ElementaryTypeName","src":"3350:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3329:43:6"},"src":"3304:69:6"},{"body":{"id":1342,"nodeType":"Block","src":"3408:501:6","statements":[{"expression":{"id":1312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1310,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"3418:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1311,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1307,"src":"3432:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3418:22:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":1313,"nodeType":"ExpressionStatement","src":"3418:22:6"},{"expression":{"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1314,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"3474:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653130","id":1316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3539:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653130","id":1317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3612:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653139","id":1318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"1e19"},{"hexValue":"313030","id":1319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3674:3:6","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"31","id":1320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3703:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1315,"name":"RelayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1217,"src":"3493:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RelayerFeeConfig_$1217_storage_ptr_$","typeString":"type(struct LZEndpointMock.RelayerFeeConfig storage pointer)"}},"id":1321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["dstPriceRatio","dstGasPriceInWei","dstNativeAmtCap","baseGas","gasPerByte"],"nodeType":"FunctionCall","src":"3493:222:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_memory_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig memory"}},"src":"3474:241:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":1323,"nodeType":"ExpressionStatement","src":"3474:241:6"},{"expression":{"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1324,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"3725:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653138","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3772:4:6","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},{"hexValue":"31303030","id":1327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3788:4:6","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":1325,"name":"ProtocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1206,"src":"3745:17:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtocolFeeConfig_$1206_storage_ptr_$","typeString":"type(struct LZEndpointMock.ProtocolFeeConfig storage pointer)"}},"id":1328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["zroFee","nativeBP"],"nodeType":"FunctionCall","src":"3745:49:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_memory_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig memory"}},"src":"3725:69:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":1330,"nodeType":"ExpressionStatement","src":"3725:69:6"},{"expression":{"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1331,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"3814:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31653136","id":1332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3826:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"value":"1e16"},"src":"3814:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1334,"nodeType":"ExpressionStatement","src":"3814:16:6"},{"expression":{"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1335,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"3840:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030303030","id":1338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3895:6:6","typeDescriptions":{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"},"value":"200000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"}],"expression":{"id":1336,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"3863:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"buildDefaultAdapterParams","nodeType":"MemberAccess","referencedDeclaration":258,"src":"3863:31:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3863:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3840:62:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1341,"nodeType":"ExpressionStatement","src":"3840:62:6"}]},"id":1343,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"_chainId","nameLocation":"3398:8:6","nodeType":"VariableDeclaration","scope":1343,"src":"3391:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1306,"name":"uint16","nodeType":"ElementaryTypeName","src":"3391:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3390:17:6"},"returnParameters":{"id":1309,"nodeType":"ParameterList","parameters":[],"src":"3408:0:6"},"scope":2453,"src":"3379:530:6","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[19],"body":{"id":1518,"nodeType":"Block","src":"4221:1804:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1362,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1347,"src":"4239:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4239:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3430","id":1364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4255:2:6","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"4239:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520616464726573732073697a65","id":1366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4259:46:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""},"value":"LayerZeroMock: incorrect remote address size"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""}],"id":1361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4231:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4231:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1368,"nodeType":"ExpressionStatement","src":"4231:75:6"},{"assignments":[1370],"declarations":[{"constant":false,"id":1370,"mutability":"mutable","name":"dstAddr","nameLocation":"4352:7:6","nodeType":"VariableDeclaration","scope":1518,"src":"4344:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1369,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1371,"nodeType":"VariableDeclarationStatement","src":"4344:15:6"},{"AST":{"nodeType":"YulBlock","src":"4378:56:6","statements":[{"nodeType":"YulAssignment","src":"4392:32:6","value":{"arguments":[{"arguments":[{"name":"_path","nodeType":"YulIdentifier","src":"4413:5:6"},{"kind":"number","nodeType":"YulLiteral","src":"4420:2:6","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4409:3:6"},"nodeType":"YulFunctionCall","src":"4409:14:6"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4403:5:6"},"nodeType":"YulFunctionCall","src":"4403:21:6"},"variableNames":[{"name":"dstAddr","nodeType":"YulIdentifier","src":"4392:7:6"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1347,"isOffset":false,"isSlot":false,"src":"4413:5:6","valueSize":1},{"declaration":1370,"isOffset":false,"isSlot":false,"src":"4392:7:6","valueSize":1}],"id":1372,"nodeType":"InlineAssembly","src":"4369:65:6"},{"assignments":[1374],"declarations":[{"constant":false,"id":1374,"mutability":"mutable","name":"lzEndpoint","nameLocation":"4452:10:6","nodeType":"VariableDeclaration","scope":1518,"src":"4444:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1373,"name":"address","nodeType":"ElementaryTypeName","src":"4444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1378,"initialValue":{"baseExpression":{"id":1375,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"4465:16:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":1377,"indexExpression":{"id":1376,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"4482:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4465:25:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4444:46:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1380,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"4508:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4530:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4522:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1381,"name":"address","nodeType":"ElementaryTypeName","src":"4522:7:6","typeDescriptions":{}}},"id":1384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4522:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4508:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c617965725a65726f20456e64706f696e74206e6f7420666f756e64","id":1386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4534:57:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""},"value":"LayerZeroMock: destination LayerZero Endpoint not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""}],"id":1379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4500:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4500:92:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1388,"nodeType":"ExpressionStatement","src":"4500:92:6"},{"assignments":[1390],"declarations":[{"constant":false,"id":1390,"mutability":"mutable","name":"adapterParams","nameLocation":"4648:13:6","nodeType":"VariableDeclaration","scope":1518,"src":"4635:26:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1389,"name":"bytes","nodeType":"ElementaryTypeName","src":"4635:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1398,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1391,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"4664:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4664:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4688:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4664:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1396,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"4709:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4664:65:6","trueExpression":{"id":1395,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"4692:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4635:94:6"},{"assignments":[1400,null],"declarations":[{"constant":false,"id":1400,"mutability":"mutable","name":"nativeFee","nameLocation":"4745:9:6","nodeType":"VariableDeclaration","scope":1518,"src":"4740:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1399,"name":"uint","nodeType":"ElementaryTypeName","src":"4740:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":1414,"initialValue":{"arguments":[{"id":1402,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"4773:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":1403,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4783:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4783:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1405,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"4795:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1406,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"4805:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":1409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4835:3:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4827:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1407,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:6","typeDescriptions":{}}},"id":1410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4827:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4805:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1412,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"4841:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1401,"name":"estimateFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1824,"src":"4760:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view returns (uint256,uint256)"}},"id":1413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4760:95:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4739:116:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1416,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4873:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"4873:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1418,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"4886:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766520666f722066656573","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4897:43:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""},"value":"LayerZeroMock: not enough native for fees"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""}],"id":1415,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4865:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4865:76:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1422,"nodeType":"ExpressionStatement","src":"4865:76:6"},{"assignments":[1424],"declarations":[{"constant":false,"id":1424,"mutability":"mutable","name":"nonce","nameLocation":"4959:5:6","nodeType":"VariableDeclaration","scope":1518,"src":"4952:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1423,"name":"uint64","nodeType":"ElementaryTypeName","src":"4952:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1432,"initialValue":{"id":1431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4967:37:6","subExpression":{"baseExpression":{"baseExpression":{"id":1425,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"4969:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":1427,"indexExpression":{"id":1426,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"4983:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4969:23:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":1430,"indexExpression":{"expression":{"id":1428,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4993:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4993:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4969:35:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4952:52:6"},{"assignments":[1434],"declarations":[{"constant":false,"id":1434,"mutability":"mutable","name":"amount","nameLocation":"5060:6:6","nodeType":"VariableDeclaration","scope":1518,"src":"5055:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1433,"name":"uint","nodeType":"ElementaryTypeName","src":"5055:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1439,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1435,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5069:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"5069:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1437,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"5081:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5069:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5055:35:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1440,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5104:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5113:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5104:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1458,"nodeType":"IfStatement","src":"5100:163:6","trueBody":{"id":1457,"nodeType":"Block","src":"5116:147:6","statements":[{"assignments":[1444,null],"declarations":[{"constant":false,"id":1444,"mutability":"mutable","name":"success","nameLocation":"5136:7:6","nodeType":"VariableDeclaration","scope":1457,"src":"5131:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1443,"name":"bool","nodeType":"ElementaryTypeName","src":"5131:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1451,"initialValue":{"arguments":[{"hexValue":"","id":1449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5184:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1445,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"5149:14:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5149:19:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1447,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5176:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5149:34:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5149:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5130:57:6"},{"expression":{"arguments":[{"id":1453,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"5209:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","id":1454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5218:33:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""},"value":"LayerZeroMock: failed to refund"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""}],"id":1452,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5201:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5201:51:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1456,"nodeType":"ExpressionStatement","src":"5201:51:6"}]}},{"assignments":[null,1460,1462,1464],"declarations":[null,{"constant":false,"id":1460,"mutability":"mutable","name":"extraGas","nameLocation":"5425:8:6","nodeType":"VariableDeclaration","scope":1518,"src":"5420:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1459,"name":"uint","nodeType":"ElementaryTypeName","src":"5420:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1462,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"5440:12:6","nodeType":"VariableDeclaration","scope":1518,"src":"5435:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1461,"name":"uint","nodeType":"ElementaryTypeName","src":"5435:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1464,"mutability":"mutable","name":"dstNativeAddr","nameLocation":"5470:13:6","nodeType":"VariableDeclaration","scope":1518,"src":"5454:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1463,"name":"address","nodeType":"ElementaryTypeName","src":"5454:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":1469,"initialValue":{"arguments":[{"id":1467,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"5513:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1465,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"5487:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":1466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":375,"src":"5487:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5487:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"5417:110:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1470,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5541:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5556:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5541:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1492,"nodeType":"IfStatement","src":"5537:222:6","trueBody":{"id":1491,"nodeType":"Block","src":"5559:200:6","statements":[{"assignments":[1474,null],"declarations":[{"constant":false,"id":1474,"mutability":"mutable","name":"success","nameLocation":"5579:7:6","nodeType":"VariableDeclaration","scope":1491,"src":"5574:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1473,"name":"bool","nodeType":"ElementaryTypeName","src":"5574:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1481,"initialValue":{"arguments":[{"hexValue":"","id":1479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5632:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1475,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"5592:13:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5592:18:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1477,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5618:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5592:39:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5592:43:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5573:62:6"},{"condition":{"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5653:8:6","subExpression":{"id":1482,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"5654:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1490,"nodeType":"IfStatement","src":"5649:100:6","trueBody":{"id":1489,"nodeType":"Block","src":"5663:86:6","statements":[{"eventCall":{"arguments":[{"id":1485,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"5706:13:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1486,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5721:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1484,"name":"ValueTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"5686:19:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5686:48:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1488,"nodeType":"EmitStatement","src":"5681:53:6"}]}}]}},{"assignments":[1494],"declarations":[{"constant":false,"id":1494,"mutability":"mutable","name":"srcUaAddress","nameLocation":"5782:12:6","nodeType":"VariableDeclaration","scope":1518,"src":"5769:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1493,"name":"bytes","nodeType":"ElementaryTypeName","src":"5769:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1501,"initialValue":{"arguments":[{"expression":{"id":1497,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5814:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5814:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1499,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"5826:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1495,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5797:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5797:16:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5797:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5769:65:6"},{"assignments":[1503],"declarations":[{"constant":false,"id":1503,"mutability":"mutable","name":"payload","nameLocation":"5887:7:6","nodeType":"VariableDeclaration","scope":1518,"src":"5874:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1502,"name":"bytes","nodeType":"ElementaryTypeName","src":"5874:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1505,"initialValue":{"id":1504,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"5897:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"5874:31:6"},{"expression":{"arguments":[{"id":1510,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"5957:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1511,"name":"srcUaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"5970:12:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1512,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"5984:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1513,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1424,"src":"5993:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1514,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"6000:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1515,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"6010:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1507,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"5930:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1506,"name":"LZEndpointMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2453,"src":"5915:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LZEndpointMock_$2453_$","typeString":"type(contract LZEndpointMock)"}},"id":1508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5915:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"receivePayload","nodeType":"MemberAccess","referencedDeclaration":1726,"src":"5915:41:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,uint256,bytes memory) external"}},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5915:103:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1517,"nodeType":"ExpressionStatement","src":"5915:103:6"}]},"functionSelector":"c5803100","id":1519,"implemented":true,"kind":"function","modifiers":[{"id":1359,"kind":"modifierInvocation","modifierName":{"id":1358,"name":"sendNonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1250,"src":"4204:16:6"},"nodeType":"ModifierInvocation","src":"4204:16:6"}],"name":"send","nameLocation":"4022:4:6","nodeType":"FunctionDefinition","overrides":{"id":1357,"nodeType":"OverrideSpecifier","overrides":[],"src":"4195:8:6"},"parameters":{"id":1356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1345,"mutability":"mutable","name":"_chainId","nameLocation":"4034:8:6","nodeType":"VariableDeclaration","scope":1519,"src":"4027:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1344,"name":"uint16","nodeType":"ElementaryTypeName","src":"4027:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1347,"mutability":"mutable","name":"_path","nameLocation":"4057:5:6","nodeType":"VariableDeclaration","scope":1519,"src":"4044:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1346,"name":"bytes","nodeType":"ElementaryTypeName","src":"4044:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1349,"mutability":"mutable","name":"_payload","nameLocation":"4079:8:6","nodeType":"VariableDeclaration","scope":1519,"src":"4064:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1348,"name":"bytes","nodeType":"ElementaryTypeName","src":"4064:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1351,"mutability":"mutable","name":"_refundAddress","nameLocation":"4105:14:6","nodeType":"VariableDeclaration","scope":1519,"src":"4089:30:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1350,"name":"address","nodeType":"ElementaryTypeName","src":"4089:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1353,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"4129:18:6","nodeType":"VariableDeclaration","scope":1519,"src":"4121:26:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1352,"name":"address","nodeType":"ElementaryTypeName","src":"4121:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1355,"mutability":"mutable","name":"_adapterParams","nameLocation":"4162:14:6","nodeType":"VariableDeclaration","scope":1519,"src":"4149:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1354,"name":"bytes","nodeType":"ElementaryTypeName","src":"4149:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4026:151:6"},"returnParameters":{"id":1360,"nodeType":"ParameterList","parameters":[],"src":"4221:0:6"},"scope":2453,"src":"4013:2012:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[34],"body":{"id":1725,"nodeType":"Block","src":"6212:2094:6","statements":[{"assignments":[1539],"declarations":[{"constant":false,"id":1539,"mutability":"mutable","name":"sp","nameLocation":"6244:2:6","nodeType":"VariableDeclaration","scope":1725,"src":"6222:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1538,"nodeType":"UserDefinedTypeName","pathNode":{"id":1537,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"6222:13:6"},"referencedDeclaration":1224,"src":"6222:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1545,"initialValue":{"baseExpression":{"baseExpression":{"id":1540,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"6249:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1542,"indexExpression":{"id":1541,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6263:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6249:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1544,"indexExpression":{"id":1543,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6276:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6249:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6222:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1547,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"6365:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6375:34:6","subExpression":{"baseExpression":{"baseExpression":{"id":1548,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"6377:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1550,"indexExpression":{"id":1549,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6390:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6377:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1552,"indexExpression":{"id":1551,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6403:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6377:32:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6365:44:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","id":1555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6411:28:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""},"value":"LayerZeroMock: wrong nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""}],"id":1546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6357:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6357:83:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1557,"nodeType":"ExpressionStatement","src":"6357:83:6"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1558,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1539,"src":"6578:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"6578:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6604:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6596:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6596:7:6","typeDescriptions":{}}},"id":1563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6596:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6578:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":1636,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7432:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1722,"nodeType":"Block","src":"7791:509:6","statements":[{"clauses":[{"block":{"id":1683,"nodeType":"Block","src":"7905:2:6","statements":[]},"errorName":"","id":1684,"nodeType":"TryCatchClause","src":"7905:2:6"},{"block":{"id":1719,"nodeType":"Block","src":"7936:354:6","statements":[{"expression":{"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1688,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"7954:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1691,"indexExpression":{"id":1689,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7968:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7954:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1692,"indexExpression":{"id":1690,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7981:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7954:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":1696,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8011:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8011:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8004:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1694,"name":"uint64","nodeType":"ElementaryTypeName","src":"8004:6:6","typeDescriptions":{}}},"id":1698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8004:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1699,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"8029:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1701,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8052:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1700,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8042:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8042:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1693,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"7990:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$1224_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":1703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7990:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"7954:108:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":1705,"nodeType":"ExpressionStatement","src":"7954:108:6"},{"eventCall":{"arguments":[{"id":1707,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"8099:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1708,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"8112:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1709,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"8119:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1710,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"8132:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1711,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8140:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1712,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"8150:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1706,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"8085:13:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":1713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8085:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1714,"nodeType":"EmitStatement","src":"8080:77:6"},{"expression":{"id":1717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1715,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"8253:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8270:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8253:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1718,"nodeType":"ExpressionStatement","src":"8253:22:6"}]},"errorName":"","id":1720,"nodeType":"TryCatchClause","parameters":{"id":1687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1686,"mutability":"mutable","name":"reason","nameLocation":"7928:6:6","nodeType":"VariableDeclaration","scope":1720,"src":"7915:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1685,"name":"bytes","nodeType":"ElementaryTypeName","src":"7915:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7914:21:6"},"src":"7908:382:6"}],"externalCall":{"arguments":[{"id":1678,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7867:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1679,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7880:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1680,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"7887:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1681,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7895:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":1673,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7828:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1672,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"7809:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":1674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7809:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"7809:41:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"id":1676,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1529,"src":"7856:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"7809:57:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$gas","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7809:95:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1721,"nodeType":"TryStatement","src":"7805:485:6"}]},"id":1723,"nodeType":"IfStatement","src":"7428:872:6","trueBody":{"id":1671,"nodeType":"Block","src":"7448:337:6","statements":[{"expression":{"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1637,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"7462:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1640,"indexExpression":{"id":1638,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7476:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7462:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1641,"indexExpression":{"id":1639,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7489:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7462:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":1645,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7519:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7519:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7512:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1643,"name":"uint64","nodeType":"ElementaryTypeName","src":"7512:6:6","typeDescriptions":{}}},"id":1647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7512:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1648,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7537:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1650,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7560:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1649,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7550:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7550:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1642,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"7498:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$1224_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7498:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"7462:108:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":1654,"nodeType":"ExpressionStatement","src":"7462:108:6"},{"eventCall":{"arguments":[{"id":1656,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7603:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1657,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7616:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1658,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7623:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1659,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"7636:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1660,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7644:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"hexValue":"","id":1663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7660:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7654:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1661,"name":"bytes","nodeType":"ElementaryTypeName","src":"7654:5:6","typeDescriptions":{}}},"id":1664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7654:9:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1655,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"7589:13:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":1665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7589:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1666,"nodeType":"EmitStatement","src":"7584:80:6"},{"expression":{"id":1669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1667,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7752:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7769:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7752:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1670,"nodeType":"ExpressionStatement","src":"7752:22:6"}]}},"id":1724,"nodeType":"IfStatement","src":"6574:1726:6","trueBody":{"id":1635,"nodeType":"Block","src":"6608:814:6","statements":[{"assignments":[1569],"declarations":[{"constant":false,"id":1569,"mutability":"mutable","name":"msgs","nameLocation":"6646:4:6","nodeType":"VariableDeclaration","scope":1635,"src":"6622:28:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":1567,"nodeType":"UserDefinedTypeName","pathNode":{"id":1566,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"6622:13:6"},"referencedDeclaration":1231,"src":"6622:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":1568,"nodeType":"ArrayTypeName","src":"6622:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":1575,"initialValue":{"baseExpression":{"baseExpression":{"id":1570,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"6653:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":1572,"indexExpression":{"id":1571,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6667:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6653:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":1574,"indexExpression":{"id":1573,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6680:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6653:33:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6622:64:6"},{"assignments":[1578],"declarations":[{"constant":false,"id":1578,"mutability":"mutable","name":"newMsg","nameLocation":"6721:6:6","nodeType":"VariableDeclaration","scope":1635,"src":"6700:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":1577,"nodeType":"UserDefinedTypeName","pathNode":{"id":1576,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"6700:13:6"},"referencedDeclaration":1231,"src":"6700:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":1584,"initialValue":{"arguments":[{"id":1580,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"6744:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1581,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"6757:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1582,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"6765:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1579,"name":"QueuedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"6730:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QueuedPayload_$1231_storage_ptr_$","typeString":"type(struct LZEndpointMock.QueuedPayload storage pointer)"}},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6730:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6700:74:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1585,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"6980:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6980:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6994:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6980:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1633,"nodeType":"Block","src":"7362:50:6","statements":[{"expression":{"arguments":[{"id":1630,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7390:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":1627,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7380:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7380:9:6","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$1231_storage_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":1631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7380:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1632,"nodeType":"ExpressionStatement","src":"7380:17:6"}]},"id":1634,"nodeType":"IfStatement","src":"6976:436:6","trueBody":{"id":1626,"nodeType":"Block","src":"6997:359:6","statements":[{"expression":{"arguments":[{"id":1592,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7061:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":1589,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7051:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7051:9:6","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$1231_storage_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":1593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7051:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1594,"nodeType":"ExpressionStatement","src":"7051:17:6"},{"body":{"id":1618,"nodeType":"Block","src":"7184:62:6","statements":[{"expression":{"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1608,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7206:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1612,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1609,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7211:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7215:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7211:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7206:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1613,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7220:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1615,"indexExpression":{"id":1614,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7225:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7220:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"src":"7206:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":1617,"nodeType":"ExpressionStatement","src":"7206:21:6"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7158:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1600,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7162:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7162:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7176:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7162:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7158:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1619,"initializationExpression":{"assignments":[1596],"declarations":[{"constant":false,"id":1596,"mutability":"mutable","name":"i","nameLocation":"7151:1:6","nodeType":"VariableDeclaration","scope":1619,"src":"7146:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint","nodeType":"ElementaryTypeName","src":"7146:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1598,"initialValue":{"hexValue":"30","id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7155:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7146:10:6"},"loopExpression":{"expression":{"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7179:3:6","subExpression":{"id":1605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7179:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1607,"nodeType":"ExpressionStatement","src":"7179:3:6"},"nodeType":"ForStatement","src":"7141:105:6"},{"expression":{"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1620,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7325:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1622,"indexExpression":{"hexValue":"30","id":1621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7330:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7325:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1623,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7335:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"src":"7325:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":1625,"nodeType":"ExpressionStatement","src":"7325:16:6"}]}}]}}]},"functionSelector":"c2fa4813","id":1726,"implemented":true,"kind":"function","modifiers":[{"id":1535,"kind":"modifierInvocation","modifierName":{"id":1534,"name":"receiveNonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1269,"src":"6192:19:6"},"nodeType":"ModifierInvocation","src":"6192:19:6"}],"name":"receivePayload","nameLocation":"6040:14:6","nodeType":"FunctionDefinition","overrides":{"id":1533,"nodeType":"OverrideSpecifier","overrides":[],"src":"6183:8:6"},"parameters":{"id":1532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1521,"mutability":"mutable","name":"_srcChainId","nameLocation":"6062:11:6","nodeType":"VariableDeclaration","scope":1726,"src":"6055:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1520,"name":"uint16","nodeType":"ElementaryTypeName","src":"6055:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1523,"mutability":"mutable","name":"_path","nameLocation":"6090:5:6","nodeType":"VariableDeclaration","scope":1726,"src":"6075:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1522,"name":"bytes","nodeType":"ElementaryTypeName","src":"6075:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1525,"mutability":"mutable","name":"_dstAddress","nameLocation":"6105:11:6","nodeType":"VariableDeclaration","scope":1726,"src":"6097:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1524,"name":"address","nodeType":"ElementaryTypeName","src":"6097:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1527,"mutability":"mutable","name":"_nonce","nameLocation":"6125:6:6","nodeType":"VariableDeclaration","scope":1726,"src":"6118:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1526,"name":"uint64","nodeType":"ElementaryTypeName","src":"6118:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1529,"mutability":"mutable","name":"_gasLimit","nameLocation":"6138:9:6","nodeType":"VariableDeclaration","scope":1726,"src":"6133:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1528,"name":"uint","nodeType":"ElementaryTypeName","src":"6133:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1531,"mutability":"mutable","name":"_payload","nameLocation":"6164:8:6","nodeType":"VariableDeclaration","scope":1726,"src":"6149:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1530,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6054:119:6"},"returnParameters":{"id":1536,"nodeType":"ParameterList","parameters":[],"src":"6212:0:6"},"scope":2453,"src":"6031:2275:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[43],"body":{"id":1742,"nodeType":"Block","src":"8416:53:6","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1736,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"8433:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1738,"indexExpression":{"id":1737,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"8446:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8433:22:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1740,"indexExpression":{"id":1739,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"8456:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8433:29:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1735,"id":1741,"nodeType":"Return","src":"8426:36:6"}]},"functionSelector":"fdc07c70","id":1743,"implemented":true,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"8321:15:6","nodeType":"FunctionDefinition","overrides":{"id":1732,"nodeType":"OverrideSpecifier","overrides":[],"src":"8390:8:6"},"parameters":{"id":1731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1728,"mutability":"mutable","name":"_chainID","nameLocation":"8344:8:6","nodeType":"VariableDeclaration","scope":1743,"src":"8337:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1727,"name":"uint16","nodeType":"ElementaryTypeName","src":"8337:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1730,"mutability":"mutable","name":"_path","nameLocation":"8369:5:6","nodeType":"VariableDeclaration","scope":1743,"src":"8354:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1729,"name":"bytes","nodeType":"ElementaryTypeName","src":"8354:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8336:39:6"},"returnParameters":{"id":1735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1734,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1743,"src":"8408:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1733,"name":"uint64","nodeType":"ElementaryTypeName","src":"8408:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8407:8:6"},"scope":2453,"src":"8312:157:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[52],"body":{"id":1759,"nodeType":"Block","src":"8579:60:6","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1753,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"8596:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":1755,"indexExpression":{"id":1754,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"8610:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8596:23:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":1757,"indexExpression":{"id":1756,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"8620:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8596:36:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1752,"id":1758,"nodeType":"Return","src":"8589:43:6"}]},"functionSelector":"7a145748","id":1760,"implemented":true,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"8484:16:6","nodeType":"FunctionDefinition","overrides":{"id":1749,"nodeType":"OverrideSpecifier","overrides":[],"src":"8553:8:6"},"parameters":{"id":1748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1745,"mutability":"mutable","name":"_chainID","nameLocation":"8508:8:6","nodeType":"VariableDeclaration","scope":1760,"src":"8501:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1744,"name":"uint16","nodeType":"ElementaryTypeName","src":"8501:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1747,"mutability":"mutable","name":"_srcAddress","nameLocation":"8526:11:6","nodeType":"VariableDeclaration","scope":1760,"src":"8518:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1746,"name":"address","nodeType":"ElementaryTypeName","src":"8518:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8500:38:6"},"returnParameters":{"id":1752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"8571:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1750,"name":"uint64","nodeType":"ElementaryTypeName","src":"8571:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8570:8:6"},"scope":2453,"src":"8475:164:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[69],"body":{"id":1823,"nodeType":"Block","src":"8831:507:6","statements":[{"assignments":[1778],"declarations":[{"constant":false,"id":1778,"mutability":"mutable","name":"adapterParams","nameLocation":"8854:13:6","nodeType":"VariableDeclaration","scope":1823,"src":"8841:26:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1777,"name":"bytes","nodeType":"ElementaryTypeName","src":"8841:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1786,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1779,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"8870:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8870:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8894:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8870:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1784,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"8915:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8870:65:6","trueExpression":{"id":1783,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"8898:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8841:94:6"},{"assignments":[1788],"declarations":[{"constant":false,"id":1788,"mutability":"mutable","name":"relayerFee","nameLocation":"8974:10:6","nodeType":"VariableDeclaration","scope":1823,"src":"8969:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1787,"name":"uint","nodeType":"ElementaryTypeName","src":"8969:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1797,"initialValue":{"arguments":[{"id":1790,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"9002:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"31","id":1791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9015:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":1792,"name":"_userApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"9018:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1793,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1766,"src":"9036:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9036:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1795,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"9053:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1789,"name":"_getRelayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2452,"src":"8987:14:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint16,uint16,address,uint256,bytes memory) view returns (uint256)"}},"id":1796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8987:80:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8969:98:6"},{"assignments":[1799],"declarations":[{"constant":false,"id":1799,"mutability":"mutable","name":"protocolFee","nameLocation":"9108:11:6","nodeType":"VariableDeclaration","scope":1823,"src":"9103:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1798,"name":"uint","nodeType":"ElementaryTypeName","src":"9103:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1805,"initialValue":{"arguments":[{"id":1801,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"9139:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1802,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"9150:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1803,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"9162:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1800,"name":"_getProtocolFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2356,"src":"9122:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) view returns (uint256)"}},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9122:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9103:69:6"},{"expression":{"condition":{"id":1806,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"9182:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1810,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9217:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1811,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"9229:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9217:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9182:58:6","trueExpression":{"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1807,"name":"zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1775,"src":"9194:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1808,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"9203:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9194:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1814,"nodeType":"ExpressionStatement","src":"9182:58:6"},{"expression":{"id":1821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1815,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9285:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1816,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9297:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1817,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"9309:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9297:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1819,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"9322:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9297:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9285:46:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1822,"nodeType":"ExpressionStatement","src":"9285:46:6"}]},"functionSelector":"40a7bb10","id":1824,"implemented":true,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"8654:12:6","nodeType":"FunctionDefinition","parameters":{"id":1771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1762,"mutability":"mutable","name":"_dstChainId","nameLocation":"8674:11:6","nodeType":"VariableDeclaration","scope":1824,"src":"8667:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1761,"name":"uint16","nodeType":"ElementaryTypeName","src":"8667:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1764,"mutability":"mutable","name":"_userApplication","nameLocation":"8695:16:6","nodeType":"VariableDeclaration","scope":1824,"src":"8687:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1763,"name":"address","nodeType":"ElementaryTypeName","src":"8687:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1766,"mutability":"mutable","name":"_payload","nameLocation":"8726:8:6","nodeType":"VariableDeclaration","scope":1824,"src":"8713:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1765,"name":"bytes","nodeType":"ElementaryTypeName","src":"8713:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1768,"mutability":"mutable","name":"_payInZRO","nameLocation":"8741:9:6","nodeType":"VariableDeclaration","scope":1824,"src":"8736:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1767,"name":"bool","nodeType":"ElementaryTypeName","src":"8736:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1770,"mutability":"mutable","name":"_adapterParams","nameLocation":"8765:14:6","nodeType":"VariableDeclaration","scope":1824,"src":"8752:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1769,"name":"bytes","nodeType":"ElementaryTypeName","src":"8752:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8666:114:6"},"returnParameters":{"id":1776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1773,"mutability":"mutable","name":"nativeFee","nameLocation":"8807:9:6","nodeType":"VariableDeclaration","scope":1824,"src":"8802:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1772,"name":"uint","nodeType":"ElementaryTypeName","src":"8802:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1775,"mutability":"mutable","name":"zroFee","nameLocation":"8823:6:6","nodeType":"VariableDeclaration","scope":1824,"src":"8818:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1774,"name":"uint","nodeType":"ElementaryTypeName","src":"8818:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8801:29:6"},"scope":2453,"src":"8645:693:6","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[74],"body":{"id":1832,"nodeType":"Block","src":"9406:35:6","statements":[{"expression":{"id":1830,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"9423:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":1829,"id":1831,"nodeType":"Return","src":"9416:18:6"}]},"functionSelector":"3408e470","id":1833,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"9353:10:6","nodeType":"FunctionDefinition","overrides":{"id":1826,"nodeType":"OverrideSpecifier","overrides":[],"src":"9380:8:6"},"parameters":{"id":1825,"nodeType":"ParameterList","parameters":[],"src":"9363:2:6"},"returnParameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1833,"src":"9398:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1827,"name":"uint16","nodeType":"ElementaryTypeName","src":"9398:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"9397:8:6"},"scope":2453,"src":"9344:97:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[83],"body":{"id":1933,"nodeType":"Block","src":"9554:686:6","statements":[{"assignments":[1845],"declarations":[{"constant":false,"id":1845,"mutability":"mutable","name":"sp","nameLocation":"9586:2:6","nodeType":"VariableDeclaration","scope":1933,"src":"9564:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1844,"nodeType":"UserDefinedTypeName","pathNode":{"id":1843,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"9564:13:6"},"referencedDeclaration":1224,"src":"9564:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1851,"initialValue":{"baseExpression":{"baseExpression":{"id":1846,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"9591:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1848,"indexExpression":{"id":1847,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"9605:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9591:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1850,"indexExpression":{"id":1849,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"9618:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9591:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9564:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1853,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9642:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9642:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9668:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9660:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9660:7:6","typeDescriptions":{}}},"id":1858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9660:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9642:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":1860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9672:34:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":1852,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9634:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9634:73:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1862,"nodeType":"ExpressionStatement","src":"9634:73:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1864,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"9725:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9725:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1866,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9744:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"9744:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9725:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1870,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"9774:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1869,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9764:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1872,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9787:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9787:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9764:37:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9725:76:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","id":1876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9803:32:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""},"value":"LayerZeroMock: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""}],"id":1863,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9717:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9717:119:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1878,"nodeType":"ExpressionStatement","src":"9717:119:6"},{"assignments":[1880],"declarations":[{"constant":false,"id":1880,"mutability":"mutable","name":"dstAddress","nameLocation":"9855:10:6","nodeType":"VariableDeclaration","scope":1933,"src":"9847:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1879,"name":"address","nodeType":"ElementaryTypeName","src":"9847:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1883,"initialValue":{"expression":{"id":1881,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9868:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"9868:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9847:34:6"},{"expression":{"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1884,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9926:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"9926:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9945:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9926:20:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":1889,"nodeType":"ExpressionStatement","src":"9926:20:6"},{"expression":{"id":1897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1890,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9956:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"9956:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9980:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9972:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1893,"name":"address","nodeType":"ElementaryTypeName","src":"9972:7:6","typeDescriptions":{}}},"id":1896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9972:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9956:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1898,"nodeType":"ExpressionStatement","src":"9956:26:6"},{"expression":{"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1899,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9992:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9992:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10017:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10009:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10009:7:6","typeDescriptions":{}}},"id":1905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10009:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9992:27:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1907,"nodeType":"ExpressionStatement","src":"9992:27:6"},{"assignments":[1909],"declarations":[{"constant":false,"id":1909,"mutability":"mutable","name":"nonce","nameLocation":"10037:5:6","nodeType":"VariableDeclaration","scope":1933,"src":"10030:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1908,"name":"uint64","nodeType":"ElementaryTypeName","src":"10030:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1915,"initialValue":{"baseExpression":{"baseExpression":{"id":1910,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"10045:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1912,"indexExpression":{"id":1911,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10058:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10045:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1914,"indexExpression":{"id":1913,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10071:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10045:32:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10030:47:6"},{"expression":{"arguments":[{"id":1920,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10129:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1921,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10142:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1922,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"10149:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1923,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"10156:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":1917,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"10107:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1916,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"10088:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10088:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"10088:40:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10088:77:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1925,"nodeType":"ExpressionStatement","src":"10088:77:6"},{"eventCall":{"arguments":[{"id":1927,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10195:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1928,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10208:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1929,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"10215:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1930,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"10222:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1926,"name":"PayloadCleared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1285,"src":"10180:14:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_address_$returns$__$","typeString":"function (uint16,bytes memory,uint64,address)"}},"id":1931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10180:53:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1932,"nodeType":"EmitStatement","src":"10175:58:6"}]},"functionSelector":"aaff5f16","id":1934,"implemented":true,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"9456:12:6","nodeType":"FunctionDefinition","overrides":{"id":1841,"nodeType":"OverrideSpecifier","overrides":[],"src":"9545:8:6"},"parameters":{"id":1840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1835,"mutability":"mutable","name":"_srcChainId","nameLocation":"9476:11:6","nodeType":"VariableDeclaration","scope":1934,"src":"9469:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1834,"name":"uint16","nodeType":"ElementaryTypeName","src":"9469:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1837,"mutability":"mutable","name":"_path","nameLocation":"9504:5:6","nodeType":"VariableDeclaration","scope":1934,"src":"9489:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1836,"name":"bytes","nodeType":"ElementaryTypeName","src":"9489:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1839,"mutability":"mutable","name":"_payload","nameLocation":"9526:8:6","nodeType":"VariableDeclaration","scope":1934,"src":"9511:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1838,"name":"bytes","nodeType":"ElementaryTypeName","src":"9511:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9468:67:6"},"returnParameters":{"id":1842,"nodeType":"ParameterList","parameters":[],"src":"9554:0:6"},"scope":2453,"src":"9447:793:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[92],"body":{"id":1961,"nodeType":"Block","src":"10352:122:6","statements":[{"assignments":[1946],"declarations":[{"constant":false,"id":1946,"mutability":"mutable","name":"sp","nameLocation":"10384:2:6","nodeType":"VariableDeclaration","scope":1961,"src":"10362:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1945,"nodeType":"UserDefinedTypeName","pathNode":{"id":1944,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"10362:13:6"},"referencedDeclaration":1224,"src":"10362:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1952,"initialValue":{"baseExpression":{"baseExpression":{"id":1947,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"10389:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1949,"indexExpression":{"id":1948,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"10403:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10389:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1951,"indexExpression":{"id":1950,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1938,"src":"10416:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10389:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10362:60:6"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1953,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1946,"src":"10439:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"10439:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10457:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10457:7:6","typeDescriptions":{}}},"id":1958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10457:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10439:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1943,"id":1960,"nodeType":"Return","src":"10432:35:6"}]},"functionSelector":"0eaf6ea6","id":1962,"implemented":true,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"10255:16:6","nodeType":"FunctionDefinition","overrides":{"id":1940,"nodeType":"OverrideSpecifier","overrides":[],"src":"10328:8:6"},"parameters":{"id":1939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1936,"mutability":"mutable","name":"_srcChainId","nameLocation":"10279:11:6","nodeType":"VariableDeclaration","scope":1962,"src":"10272:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1935,"name":"uint16","nodeType":"ElementaryTypeName","src":"10272:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1938,"mutability":"mutable","name":"_path","nameLocation":"10307:5:6","nodeType":"VariableDeclaration","scope":1962,"src":"10292:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1937,"name":"bytes","nodeType":"ElementaryTypeName","src":"10292:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10271:42:6"},"returnParameters":{"id":1943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1962,"src":"10346:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1941,"name":"bool","nodeType":"ElementaryTypeName","src":"10346:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10345:6:6"},"scope":2453,"src":"10246:228:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[99],"body":{"id":1975,"nodeType":"Block","src":"10561:37:6","statements":[{"expression":{"arguments":[{"id":1972,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10586:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}],"id":1971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10578:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1970,"name":"address","nodeType":"ElementaryTypeName","src":"10578:7:6","typeDescriptions":{}}},"id":1973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10578:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1969,"id":1974,"nodeType":"Return","src":"10571:20:6"}]},"functionSelector":"9c729da1","id":1976,"implemented":true,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"10489:21:6","nodeType":"FunctionDefinition","overrides":{"id":1966,"nodeType":"OverrideSpecifier","overrides":[],"src":"10534:8:6"},"parameters":{"id":1965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1976,"src":"10511:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1963,"name":"address","nodeType":"ElementaryTypeName","src":"10511:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10510:9:6"},"returnParameters":{"id":1969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1976,"src":"10552:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1967,"name":"address","nodeType":"ElementaryTypeName","src":"10552:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10551:9:6"},"scope":2453,"src":"10480:118:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[106],"body":{"id":1989,"nodeType":"Block","src":"10688:37:6","statements":[{"expression":{"arguments":[{"id":1986,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10713:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}],"id":1985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10705:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1984,"name":"address","nodeType":"ElementaryTypeName","src":"10705:7:6","typeDescriptions":{}}},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10705:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1983,"id":1988,"nodeType":"Return","src":"10698:20:6"}]},"functionSelector":"71ba2fd6","id":1990,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"10613:24:6","nodeType":"FunctionDefinition","overrides":{"id":1980,"nodeType":"OverrideSpecifier","overrides":[],"src":"10661:8:6"},"parameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1990,"src":"10638:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1977,"name":"address","nodeType":"ElementaryTypeName","src":"10638:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10637:9:6"},"returnParameters":{"id":1983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1990,"src":"10679:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1981,"name":"address","nodeType":"ElementaryTypeName","src":"10679:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10678:9:6"},"scope":2453,"src":"10604:121:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[111],"body":{"id":2000,"nodeType":"Block","src":"10797:55:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1996,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"10814:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1997,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10837:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10814:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1995,"id":1999,"nodeType":"Return","src":"10807:38:6"}]},"functionSelector":"e97a448a","id":2001,"implemented":true,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"10740:16:6","nodeType":"FunctionDefinition","overrides":{"id":1992,"nodeType":"OverrideSpecifier","overrides":[],"src":"10773:8:6"},"parameters":{"id":1991,"nodeType":"ParameterList","parameters":[],"src":"10756:2:6"},"returnParameters":{"id":1995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2001,"src":"10791:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1993,"name":"bool","nodeType":"ElementaryTypeName","src":"10791:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10790:6:6"},"scope":2453,"src":"10731:121:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[116],"body":{"id":2011,"nodeType":"Block","src":"10926:58:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2007,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"10943:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2008,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10969:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10943:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2006,"id":2010,"nodeType":"Return","src":"10936:41:6"}]},"functionSelector":"ca066b35","id":2012,"implemented":true,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"10867:18:6","nodeType":"FunctionDefinition","overrides":{"id":2003,"nodeType":"OverrideSpecifier","overrides":[],"src":"10902:8:6"},"parameters":{"id":2002,"nodeType":"ParameterList","parameters":[],"src":"10885:2:6"},"returnParameters":{"id":2006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2012,"src":"10920:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2004,"name":"bool","nodeType":"ElementaryTypeName","src":"10920:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10919:6:6"},"scope":2453,"src":"10858:126:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[129],"body":{"id":2028,"nodeType":"Block","src":"11174:26:6","statements":[{"expression":{"hexValue":"","id":2026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11191:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":2025,"id":2027,"nodeType":"Return","src":"11184:9:6"}]},"functionSelector":"f5ecbdbc","id":2029,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"10999:9:6","nodeType":"FunctionDefinition","overrides":{"id":2022,"nodeType":"OverrideSpecifier","overrides":[],"src":"11142:8:6"},"parameters":{"id":2021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11018:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2013,"name":"uint16","nodeType":"ElementaryTypeName","src":"11018:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11047:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2015,"name":"uint16","nodeType":"ElementaryTypeName","src":"11047:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11076:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2017,"name":"address","nodeType":"ElementaryTypeName","src":"11076:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11101:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2019,"name":"uint","nodeType":"ElementaryTypeName","src":"11101:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11008:119:6"},"returnParameters":{"id":2025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11160:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2023,"name":"bytes","nodeType":"ElementaryTypeName","src":"11160:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11159:14:6"},"scope":2453,"src":"10990:210:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[136],"body":{"id":2039,"nodeType":"Block","src":"11314:25:6","statements":[{"expression":{"hexValue":"31","id":2037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11331:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":2036,"id":2038,"nodeType":"Return","src":"11324:8:6"}]},"functionSelector":"096568f6","id":2040,"implemented":true,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"11215:14:6","nodeType":"FunctionDefinition","overrides":{"id":2033,"nodeType":"OverrideSpecifier","overrides":[],"src":"11288:8:6"},"parameters":{"id":2032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2040,"src":"11239:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2030,"name":"address","nodeType":"ElementaryTypeName","src":"11239:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11229:44:6"},"returnParameters":{"id":2036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2040,"src":"11306:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2034,"name":"uint16","nodeType":"ElementaryTypeName","src":"11306:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11305:8:6"},"scope":2453,"src":"11206:133:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[143],"body":{"id":2050,"nodeType":"Block","src":"11456:25:6","statements":[{"expression":{"hexValue":"31","id":2048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11473:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":2047,"id":2049,"nodeType":"Return","src":"11466:8:6"}]},"functionSelector":"da1a7c9a","id":2051,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"11354:17:6","nodeType":"FunctionDefinition","overrides":{"id":2044,"nodeType":"OverrideSpecifier","overrides":[],"src":"11430:8:6"},"parameters":{"id":2043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2051,"src":"11381:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2041,"name":"address","nodeType":"ElementaryTypeName","src":"11381:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11371:44:6"},"returnParameters":{"id":2047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2051,"src":"11448:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2045,"name":"uint16","nodeType":"ElementaryTypeName","src":"11448:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11447:8:6"},"scope":2453,"src":"11345:136:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[171],"body":{"id":2063,"nodeType":"Block","src":"11652:2:6","statements":[]},"functionSelector":"cbed8b9c","id":2064,"implemented":true,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"11496:9:6","nodeType":"FunctionDefinition","overrides":{"id":2061,"nodeType":"OverrideSpecifier","overrides":[],"src":"11643:8:6"},"parameters":{"id":2060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11515:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2052,"name":"uint16","nodeType":"ElementaryTypeName","src":"11515:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11544:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2054,"name":"uint16","nodeType":"ElementaryTypeName","src":"11544:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11573:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2056,"name":"uint","nodeType":"ElementaryTypeName","src":"11573:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11603:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2058,"name":"bytes","nodeType":"ElementaryTypeName","src":"11603:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11505:128:6"},"returnParameters":{"id":2062,"nodeType":"ParameterList","parameters":[],"src":"11652:0:6"},"scope":2453,"src":"11487:167:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[176],"body":{"id":2070,"nodeType":"Block","src":"11736:2:6","statements":[]},"functionSelector":"07e0db17","id":2071,"implemented":true,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"11669:14:6","nodeType":"FunctionDefinition","overrides":{"id":2068,"nodeType":"OverrideSpecifier","overrides":[],"src":"11727:8:6"},"parameters":{"id":2067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2071,"src":"11693:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2065,"name":"uint16","nodeType":"ElementaryTypeName","src":"11693:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11683:34:6"},"returnParameters":{"id":2069,"nodeType":"ParameterList","parameters":[],"src":"11736:0:6"},"scope":2453,"src":"11660:78:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[181],"body":{"id":2077,"nodeType":"Block","src":"11823:2:6","statements":[]},"functionSelector":"10ddb137","id":2078,"implemented":true,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"11753:17:6","nodeType":"FunctionDefinition","overrides":{"id":2075,"nodeType":"OverrideSpecifier","overrides":[],"src":"11814:8:6"},"parameters":{"id":2074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2078,"src":"11780:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2072,"name":"uint16","nodeType":"ElementaryTypeName","src":"11780:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11770:34:6"},"returnParameters":{"id":2076,"nodeType":"ParameterList","parameters":[],"src":"11823:0:6"},"scope":2453,"src":"11744:81:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[188],"body":{"id":2149,"nodeType":"Block","src":"11919:632:6","statements":[{"assignments":[2088],"declarations":[{"constant":false,"id":2088,"mutability":"mutable","name":"sp","nameLocation":"11951:2:6","nodeType":"VariableDeclaration","scope":2149,"src":"11929:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":2087,"nodeType":"UserDefinedTypeName","pathNode":{"id":2086,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"11929:13:6"},"referencedDeclaration":1224,"src":"11929:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":2094,"initialValue":{"baseExpression":{"baseExpression":{"id":2089,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"11956:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2091,"indexExpression":{"id":2090,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"11970:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11956:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2093,"indexExpression":{"id":2092,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"11983:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11956:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11929:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2096,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12085:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"12085:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12111:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12103:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12103:7:6","typeDescriptions":{}}},"id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12103:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12085:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":2103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12115:34:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":2095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12077:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12077:73:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2105,"nodeType":"ExpressionStatement","src":"12077:73:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2107,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12168:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"12168:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2109,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12185:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12185:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12168:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","id":2112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12197:31:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""},"value":"LayerZeroMock: invalid caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""}],"id":2106,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12160:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12160:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2114,"nodeType":"ExpressionStatement","src":"12160:69:6"},{"expression":{"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2115,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12275:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"12275:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12294:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12275:20:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2120,"nodeType":"ExpressionStatement","src":"12275:20:6"},{"expression":{"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2121,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12305:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"12305:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12329:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12321:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2124,"name":"address","nodeType":"ElementaryTypeName","src":"12321:7:6","typeDescriptions":{}}},"id":2127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12321:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12305:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2129,"nodeType":"ExpressionStatement","src":"12305:26:6"},{"expression":{"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2130,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12341:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"12341:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12366:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12358:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12358:7:6","typeDescriptions":{}}},"id":2136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12358:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12341:27:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2138,"nodeType":"ExpressionStatement","src":"12341:27:6"},{"eventCall":{"arguments":[{"id":2140,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"12405:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2141,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"12418:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2139,"name":"UaForceResumeReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"12384:20:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12384:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2143,"nodeType":"EmitStatement","src":"12379:45:6"},{"expression":{"arguments":[{"id":2145,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"12525:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2146,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"12538:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2144,"name":"_clearMsgQue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2326,"src":"12512:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (uint16,bytes calldata)"}},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12512:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2148,"nodeType":"ExpressionStatement","src":"12512:32:6"}]},"functionSelector":"42d65a8d","id":2150,"implemented":true,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"11840:18:6","nodeType":"FunctionDefinition","overrides":{"id":2084,"nodeType":"OverrideSpecifier","overrides":[],"src":"11910:8:6"},"parameters":{"id":2083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2080,"mutability":"mutable","name":"_srcChainId","nameLocation":"11866:11:6","nodeType":"VariableDeclaration","scope":2150,"src":"11859:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2079,"name":"uint16","nodeType":"ElementaryTypeName","src":"11859:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2082,"mutability":"mutable","name":"_path","nameLocation":"11894:5:6","nodeType":"VariableDeclaration","scope":2150,"src":"11879:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2081,"name":"bytes","nodeType":"ElementaryTypeName","src":"11879:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11858:42:6"},"returnParameters":{"id":2085,"nodeType":"ParameterList","parameters":[],"src":"11919:0:6"},"scope":2453,"src":"11831:720:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2166,"nodeType":"Block","src":"12782:70:6","statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":2159,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"12799:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2161,"indexExpression":{"id":2160,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"12813:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12799:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2163,"indexExpression":{"id":2162,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2154,"src":"12826:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12799:39:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12799:46:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2158,"id":2165,"nodeType":"Return","src":"12792:53:6"}]},"functionSelector":"7f6df8e6","id":2167,"implemented":true,"kind":"function","modifiers":[],"name":"getLengthOfQueue","nameLocation":"12688:16:6","nodeType":"FunctionDefinition","parameters":{"id":2155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2152,"mutability":"mutable","name":"_srcChainId","nameLocation":"12712:11:6","nodeType":"VariableDeclaration","scope":2167,"src":"12705:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2151,"name":"uint16","nodeType":"ElementaryTypeName","src":"12705:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2154,"mutability":"mutable","name":"_srcAddress","nameLocation":"12740:11:6","nodeType":"VariableDeclaration","scope":2167,"src":"12725:26:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2153,"name":"bytes","nodeType":"ElementaryTypeName","src":"12725:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12704:48:6"},"returnParameters":{"id":2158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2167,"src":"12776:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2156,"name":"uint","nodeType":"ElementaryTypeName","src":"12776:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12775:6:6"},"scope":2453,"src":"12679:173:6","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2174,"nodeType":"Block","src":"12957:38:6","statements":[{"expression":{"id":2172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2170,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"12967:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12984:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12967:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2173,"nodeType":"ExpressionStatement","src":"12967:21:6"}]},"functionSelector":"d23104f1","id":2175,"implemented":true,"kind":"function","modifiers":[],"name":"blockNextMsg","nameLocation":"12933:12:6","nodeType":"FunctionDefinition","parameters":{"id":2168,"nodeType":"ParameterList","parameters":[],"src":"12945:2:6"},"returnParameters":{"id":2169,"nodeType":"ParameterList","parameters":[],"src":"12957:0:6"},"scope":2453,"src":"12924:71:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2188,"nodeType":"Block","src":"13079:60:6","statements":[{"expression":{"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2182,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13089:16:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":2184,"indexExpression":{"id":2183,"name":"destAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2177,"src":"13106:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13089:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2185,"name":"lzEndpointAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"13118:14:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13089:43:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2187,"nodeType":"ExpressionStatement","src":"13089:43:6"}]},"functionSelector":"c08f15a1","id":2189,"implemented":true,"kind":"function","modifiers":[],"name":"setDestLzEndpoint","nameLocation":"13010:17:6","nodeType":"FunctionDefinition","parameters":{"id":2180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2177,"mutability":"mutable","name":"destAddr","nameLocation":"13036:8:6","nodeType":"VariableDeclaration","scope":2189,"src":"13028:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2176,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2179,"mutability":"mutable","name":"lzEndpointAddr","nameLocation":"13054:14:6","nodeType":"VariableDeclaration","scope":2189,"src":"13046:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2178,"name":"address","nodeType":"ElementaryTypeName","src":"13046:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13027:42:6"},"returnParameters":{"id":2181,"nodeType":"ParameterList","parameters":[],"src":"13079:0:6"},"scope":2453,"src":"13001:138:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2232,"nodeType":"Block","src":"13293:284:6","statements":[{"expression":{"id":2206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2202,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13303:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"13303:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2205,"name":"_dstPriceRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2191,"src":"13336:14:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13303:47:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2207,"nodeType":"ExpressionStatement","src":"13303:47:6"},{"expression":{"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2208,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13360:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"13360:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2211,"name":"_dstGasPriceInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2193,"src":"13396:17:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13360:53:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2213,"nodeType":"ExpressionStatement","src":"13360:53:6"},{"expression":{"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2214,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13423:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":1212,"src":"13423:32:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2217,"name":"_dstNativeAmtCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"13458:16:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13423:51:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2219,"nodeType":"ExpressionStatement","src":"13423:51:6"},{"expression":{"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2220,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13484:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":1214,"src":"13484:24:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2223,"name":"_baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"13511:8:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13484:35:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2225,"nodeType":"ExpressionStatement","src":"13484:35:6"},{"expression":{"id":2230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2226,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13529:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":1216,"src":"13529:27:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2229,"name":"_gasPerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"13559:11:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13529:41:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2231,"nodeType":"ExpressionStatement","src":"13529:41:6"}]},"functionSelector":"2c365e25","id":2233,"implemented":true,"kind":"function","modifiers":[],"name":"setRelayerPrice","nameLocation":"13154:15:6","nodeType":"FunctionDefinition","parameters":{"id":2200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2191,"mutability":"mutable","name":"_dstPriceRatio","nameLocation":"13178:14:6","nodeType":"VariableDeclaration","scope":2233,"src":"13170:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2190,"name":"uint128","nodeType":"ElementaryTypeName","src":"13170:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2193,"mutability":"mutable","name":"_dstGasPriceInWei","nameLocation":"13202:17:6","nodeType":"VariableDeclaration","scope":2233,"src":"13194:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2192,"name":"uint128","nodeType":"ElementaryTypeName","src":"13194:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2195,"mutability":"mutable","name":"_dstNativeAmtCap","nameLocation":"13229:16:6","nodeType":"VariableDeclaration","scope":2233,"src":"13221:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2194,"name":"uint128","nodeType":"ElementaryTypeName","src":"13221:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"_baseGas","nameLocation":"13254:8:6","nodeType":"VariableDeclaration","scope":2233,"src":"13247:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2196,"name":"uint64","nodeType":"ElementaryTypeName","src":"13247:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2199,"mutability":"mutable","name":"_gasPerByte","nameLocation":"13271:11:6","nodeType":"VariableDeclaration","scope":2233,"src":"13264:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2198,"name":"uint64","nodeType":"ElementaryTypeName","src":"13264:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13169:114:6"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[],"src":"13293:0:6"},"scope":2453,"src":"13145:432:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2252,"nodeType":"Block","src":"13646:99:6","statements":[{"expression":{"id":2244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2240,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"13656:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"13656:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2243,"name":"_zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"13683:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13656:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2245,"nodeType":"ExpressionStatement","src":"13656:34:6"},{"expression":{"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2246,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"13700:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":1205,"src":"13700:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2249,"name":"_nativeBP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"13729:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13700:38:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2251,"nodeType":"ExpressionStatement","src":"13700:38:6"}]},"functionSelector":"240de277","id":2253,"implemented":true,"kind":"function","modifiers":[],"name":"setProtocolFee","nameLocation":"13592:14:6","nodeType":"FunctionDefinition","parameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2235,"mutability":"mutable","name":"_zroFee","nameLocation":"13612:7:6","nodeType":"VariableDeclaration","scope":2253,"src":"13607:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2234,"name":"uint","nodeType":"ElementaryTypeName","src":"13607:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2237,"mutability":"mutable","name":"_nativeBP","nameLocation":"13626:9:6","nodeType":"VariableDeclaration","scope":2253,"src":"13621:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2236,"name":"uint","nodeType":"ElementaryTypeName","src":"13621:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13606:30:6"},"returnParameters":{"id":2239,"nodeType":"ParameterList","parameters":[],"src":"13646:0:6"},"scope":2453,"src":"13583:162:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2262,"nodeType":"Block","src":"13799:39:6","statements":[{"expression":{"id":2260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2258,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"13809:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2259,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2255,"src":"13821:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13809:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2261,"nodeType":"ExpressionStatement","src":"13809:22:6"}]},"functionSelector":"b6d9ef60","id":2263,"implemented":true,"kind":"function","modifiers":[],"name":"setOracleFee","nameLocation":"13760:12:6","nodeType":"FunctionDefinition","parameters":{"id":2256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2255,"mutability":"mutable","name":"_oracleFee","nameLocation":"13778:10:6","nodeType":"VariableDeclaration","scope":2263,"src":"13773:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2254,"name":"uint","nodeType":"ElementaryTypeName","src":"13773:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13772:17:6"},"returnParameters":{"id":2257,"nodeType":"ParameterList","parameters":[],"src":"13799:0:6"},"scope":2453,"src":"13751:87:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2272,"nodeType":"Block","src":"13915:54:6","statements":[{"expression":{"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2268,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"13925:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2269,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"13948:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"13925:37:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":2271,"nodeType":"ExpressionStatement","src":"13925:37:6"}]},"functionSelector":"fbba623b","id":2273,"implemented":true,"kind":"function","modifiers":[],"name":"setDefaultAdapterParams","nameLocation":"13853:23:6","nodeType":"FunctionDefinition","parameters":{"id":2266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2265,"mutability":"mutable","name":"_adapterParams","nameLocation":"13890:14:6","nodeType":"VariableDeclaration","scope":2273,"src":"13877:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2264,"name":"bytes","nodeType":"ElementaryTypeName","src":"13877:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13876:29:6"},"returnParameters":{"id":2267,"nodeType":"ParameterList","parameters":[],"src":"13915:0:6"},"scope":2453,"src":"13844:125:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2325,"nodeType":"Block","src":"14227:425:6","statements":[{"assignments":[2284],"declarations":[{"constant":false,"id":2284,"mutability":"mutable","name":"msgs","nameLocation":"14261:4:6","nodeType":"VariableDeclaration","scope":2325,"src":"14237:28:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":2282,"nodeType":"UserDefinedTypeName","pathNode":{"id":2281,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"14237:13:6"},"referencedDeclaration":1231,"src":"14237:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":2283,"nodeType":"ArrayTypeName","src":"14237:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":2290,"initialValue":{"baseExpression":{"baseExpression":{"id":2285,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"14268:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2287,"indexExpression":{"id":2286,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"14282:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14268:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2289,"indexExpression":{"id":2288,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"14295:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14268:33:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14237:64:6"},{"body":{"id":2323,"nodeType":"Block","src":"14431:215:6","statements":[{"assignments":[2297],"declarations":[{"constant":false,"id":2297,"mutability":"mutable","name":"payload","nameLocation":"14466:7:6","nodeType":"VariableDeclaration","scope":2323,"src":"14445:28:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":2296,"nodeType":"UserDefinedTypeName","pathNode":{"id":2295,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"14445:13:6"},"referencedDeclaration":1231,"src":"14445:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":2304,"initialValue":{"baseExpression":{"id":2298,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14476:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2303,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2299,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14481:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14481:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14495:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14481:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14476:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14445:52:6"},{"expression":{"arguments":[{"id":2310,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"14560:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2311,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"14573:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":2312,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14580:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":1228,"src":"14580:13:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":2314,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14595:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":1230,"src":"14595:15:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":2306,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14530:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1226,"src":"14530:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2305,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"14511:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14511:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":2309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"14511:48:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":2316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14511:100:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2317,"nodeType":"ExpressionStatement","src":"14511:100:6"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2318,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14625:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"14625:8:6","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14625:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2322,"nodeType":"ExpressionStatement","src":"14625:10:6"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2291,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14414:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14414:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14428:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14414:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2324,"nodeType":"WhileStatement","src":"14407:239:6"}]},"id":2326,"implemented":true,"kind":"function","modifiers":[],"name":"_clearMsgQue","nameLocation":"14163:12:6","nodeType":"FunctionDefinition","parameters":{"id":2278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2275,"mutability":"mutable","name":"_srcChainId","nameLocation":"14183:11:6","nodeType":"VariableDeclaration","scope":2326,"src":"14176:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2274,"name":"uint16","nodeType":"ElementaryTypeName","src":"14176:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2277,"mutability":"mutable","name":"_path","nameLocation":"14211:5:6","nodeType":"VariableDeclaration","scope":2326,"src":"14196:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2276,"name":"bytes","nodeType":"ElementaryTypeName","src":"14196:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14175:42:6"},"returnParameters":{"id":2279,"nodeType":"ParameterList","parameters":[],"src":"14227:0:6"},"scope":2453,"src":"14154:498:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2355,"nodeType":"Block","src":"14764:190:6","statements":[{"condition":{"id":2337,"name":"_payInZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2328,"src":"14778:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2353,"nodeType":"Block","src":"14851:97:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2342,"name":"_relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2330,"src":"14874:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2343,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"14888:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14874:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14873:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2346,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"14902:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":1205,"src":"14902:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14873:55:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14872:57:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14932:5:6","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"14872:65:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2336,"id":2352,"nodeType":"Return","src":"14865:72:6"}]},"id":2354,"nodeType":"IfStatement","src":"14774:174:6","trueBody":{"id":2341,"nodeType":"Block","src":"14789:56:6","statements":[{"expression":{"expression":{"id":2338,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"14810:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"14810:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2336,"id":2340,"nodeType":"Return","src":"14803:31:6"}]}}]},"id":2356,"implemented":true,"kind":"function","modifiers":[],"name":"_getProtocolFees","nameLocation":"14667:16:6","nodeType":"FunctionDefinition","parameters":{"id":2333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2328,"mutability":"mutable","name":"_payInZro","nameLocation":"14689:9:6","nodeType":"VariableDeclaration","scope":2356,"src":"14684:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2327,"name":"bool","nodeType":"ElementaryTypeName","src":"14684:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2330,"mutability":"mutable","name":"_relayerFee","nameLocation":"14705:11:6","nodeType":"VariableDeclaration","scope":2356,"src":"14700:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2329,"name":"uint","nodeType":"ElementaryTypeName","src":"14700:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2332,"mutability":"mutable","name":"_oracleFee","nameLocation":"14723:10:6","nodeType":"VariableDeclaration","scope":2356,"src":"14718:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2331,"name":"uint","nodeType":"ElementaryTypeName","src":"14718:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14683:51:6"},"returnParameters":{"id":2336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2356,"src":"14758:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2334,"name":"uint","nodeType":"ElementaryTypeName","src":"14758:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14757:6:6"},"scope":2453,"src":"14658:296:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2451,"nodeType":"Block","src":"15198:1084:6","statements":[{"assignments":[2372,2374,2376,null],"declarations":[{"constant":false,"id":2372,"mutability":"mutable","name":"txType","nameLocation":"15216:6:6","nodeType":"VariableDeclaration","scope":2451,"src":"15209:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2371,"name":"uint16","nodeType":"ElementaryTypeName","src":"15209:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2374,"mutability":"mutable","name":"extraGas","nameLocation":"15229:8:6","nodeType":"VariableDeclaration","scope":2451,"src":"15224:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint","nodeType":"ElementaryTypeName","src":"15224:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2376,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"15244:12:6","nodeType":"VariableDeclaration","scope":2451,"src":"15239:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2375,"name":"uint","nodeType":"ElementaryTypeName","src":"15239:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":2381,"initialValue":{"arguments":[{"id":2379,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"15288:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2377,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"15262:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":2378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":375,"src":"15262:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15262:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"15208:95:6"},{"assignments":[2383],"declarations":[{"constant":false,"id":2383,"mutability":"mutable","name":"totalRemoteToken","nameLocation":"15318:16:6","nodeType":"VariableDeclaration","scope":2451,"src":"15313:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2382,"name":"uint","nodeType":"ElementaryTypeName","src":"15313:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2384,"nodeType":"VariableDeclarationStatement","src":"15313:21:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2385,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"15395:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":2386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15405:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15395:11:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2401,"nodeType":"IfStatement","src":"15391:187:6","trueBody":{"id":2400,"nodeType":"Block","src":"15408:170:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2389,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15430:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":1212,"src":"15430:32:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2391,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"15466:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15430:48:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f206c6172676520","id":2393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15480:40:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""},"value":"LayerZeroMock: dstNativeAmt too large "}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""}],"id":2388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15422:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15422:99:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2395,"nodeType":"ExpressionStatement","src":"15422:99:6"},{"expression":{"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2396,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15535:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2397,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"15555:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15535:32:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2399,"nodeType":"ExpressionStatement","src":"15535:32:6"}]}},{"assignments":[2403],"declarations":[{"constant":false,"id":2403,"mutability":"mutable","name":"remoteGasTotal","nameLocation":"15660:14:6","nodeType":"VariableDeclaration","scope":2451,"src":"15655:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2402,"name":"uint","nodeType":"ElementaryTypeName","src":"15655:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2412,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2404,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15677:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"15677:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2406,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15714:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":1214,"src":"15714:24:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2408,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"15741:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15714:35:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2410,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15713:37:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15677:73:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15655:95:6"},{"expression":{"id":2415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2413,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15760:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2414,"name":"remoteGasTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"15780:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15760:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2416,"nodeType":"ExpressionStatement","src":"15760:34:6"},{"assignments":[2418],"declarations":[{"constant":false,"id":2418,"mutability":"mutable","name":"basePrice","nameLocation":"15927:9:6","nodeType":"VariableDeclaration","scope":2451,"src":"15922:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2417,"name":"uint","nodeType":"ElementaryTypeName","src":"15922:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2428,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2419,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15940:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2420,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15959:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"15959:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"15940:49:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15939:51:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":2426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15993:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":2425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15997:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"15993:6:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"15939:60:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15922:77:6"},{"assignments":[2430],"declarations":[{"constant":false,"id":2430,"mutability":"mutable","name":"pricePerByte","nameLocation":"16096:12:6","nodeType":"VariableDeclaration","scope":2451,"src":"16091:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2429,"name":"uint","nodeType":"ElementaryTypeName","src":"16091:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2444,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2431,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16112:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"16112:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2433,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16148:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":1216,"src":"16148:27:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16112:63:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2436,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16178:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"16178:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"16112:96:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":2439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16111:98:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":2442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16212:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":2441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16216:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"16212:6:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"16111:107:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"16091:127:6"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2445,"name":"basePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"16236:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2446,"name":"_payloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2364,"src":"16248:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2447,"name":"pricePerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2430,"src":"16263:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16248:27:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:39:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2370,"id":2450,"nodeType":"Return","src":"16229:46:6"}]},"id":2452,"implemented":true,"kind":"function","modifiers":[],"name":"_getRelayerFee","nameLocation":"14969:14:6","nodeType":"FunctionDefinition","parameters":{"id":2367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"14993:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2357,"name":"uint16","nodeType":"ElementaryTypeName","src":"14993:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15027:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2359,"name":"uint16","nodeType":"ElementaryTypeName","src":"15027:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15068:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2361,"name":"address","nodeType":"ElementaryTypeName","src":"15068:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2364,"mutability":"mutable","name":"_payloadSize","nameLocation":"15113:12:6","nodeType":"VariableDeclaration","scope":2452,"src":"15108:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2363,"name":"uint","nodeType":"ElementaryTypeName","src":"15108:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2366,"mutability":"mutable","name":"_adapterParams","nameLocation":"15148:14:6","nodeType":"VariableDeclaration","scope":2452,"src":"15135:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2365,"name":"bytes","nodeType":"ElementaryTypeName","src":"15135:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14983:185:6"},"returnParameters":{"id":2370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15192:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2368,"name":"uint","nodeType":"ElementaryTypeName","src":"15192:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15191:6:6"},"scope":2453,"src":"14960:1322:6","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2454,"src":"817:15467:6","usedErrors":[]}],"src":"38:16247:6"},"id":6},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol","exportedSymbols":{"BytesLib":[2786]},"id":2787,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":2455,"literals":["solidity",">=","0.8",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"336:31:7"},{"abstract":false,"baseContracts":[],"canonicalName":"BytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2786,"linearizedBaseContracts":[2786],"name":"BytesLib","nameLocation":"378:8:7","nodeType":"ContractDefinition","nodes":[{"body":{"id":2470,"nodeType":"Block","src":"533:2695:7","statements":[{"assignments":[2465],"declarations":[{"constant":false,"id":2465,"mutability":"mutable","name":"tempBytes","nameLocation":"556:9:7","nodeType":"VariableDeclaration","scope":2470,"src":"543:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2464,"name":"bytes","nodeType":"ElementaryTypeName","src":"543:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2466,"nodeType":"VariableDeclarationStatement","src":"543:22:7"},{"AST":{"nodeType":"YulBlock","src":"585:2610:7","statements":[{"nodeType":"YulAssignment","src":"721:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"740:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"734:5:7"},"nodeType":"YulFunctionCall","src":"734:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"721:9:7"}]},{"nodeType":"YulVariableDeclaration","src":"869:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"889:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"883:5:7"},"nodeType":"YulFunctionCall","src":"883:16:7"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"873:6:7","type":""}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"919:9:7"},{"name":"length","nodeType":"YulIdentifier","src":"930:6:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"912:6:7"},"nodeType":"YulFunctionCall","src":"912:25:7"},"nodeType":"YulExpressionStatement","src":"912:25:7"},{"nodeType":"YulVariableDeclaration","src":"1135:30:7","value":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"1149:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"1160:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1145:3:7"},"nodeType":"YulFunctionCall","src":"1145:20:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"1139:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1282:26:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1297:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"1301:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1293:3:7"},"nodeType":"YulFunctionCall","src":"1293:15:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"1286:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"1673:154:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1799:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"1809:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1803:5:7"},"nodeType":"YulFunctionCall","src":"1803:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1792:6:7"},"nodeType":"YulFunctionCall","src":"1792:21:7"},"nodeType":"YulExpressionStatement","src":"1792:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1510:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"1514:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1507:2:7"},"nodeType":"YulFunctionCall","src":"1507:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1519:153:7","statements":[{"nodeType":"YulAssignment","src":"1603:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1613:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"1617:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1609:3:7"},"nodeType":"YulFunctionCall","src":"1609:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"1603:2:7"}]},{"nodeType":"YulAssignment","src":"1639:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"1649:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"1653:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1645:3:7"},"nodeType":"YulFunctionCall","src":"1645:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"1639:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"1326:180:7","statements":[{"nodeType":"YulVariableDeclaration","src":"1462:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"1476:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"1487:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1472:3:7"},"nodeType":"YulFunctionCall","src":"1472:20:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"1466:2:7","type":""}]}]},"src":"1322:505:7"},{"nodeType":"YulAssignment","src":"2016:27:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"2032:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2026:5:7"},"nodeType":"YulFunctionCall","src":"2026:17:7"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2016:6:7"}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"2063:9:7"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2078:6:7"},{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"2092:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2086:5:7"},"nodeType":"YulFunctionCall","src":"2086:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2074:3:7"},"nodeType":"YulFunctionCall","src":"2074:29:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2056:6:7"},"nodeType":"YulFunctionCall","src":"2056:48:7"},"nodeType":"YulExpressionStatement","src":"2056:48:7"},{"nodeType":"YulAssignment","src":"2234:9:7","value":{"name":"end","nodeType":"YulIdentifier","src":"2240:3:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"2234:2:7"}]},{"nodeType":"YulAssignment","src":"2362:22:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2373:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"2377:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2369:3:7"},"nodeType":"YulFunctionCall","src":"2369:15:7"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2362:3:7"}]},{"body":{"nodeType":"YulBlock","src":"2566:53:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2591:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"2601:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2595:5:7"},"nodeType":"YulFunctionCall","src":"2595:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2584:6:7"},"nodeType":"YulFunctionCall","src":"2584:21:7"},"nodeType":"YulExpressionStatement","src":"2584:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2469:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"2473:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2466:2:7"},"nodeType":"YulFunctionCall","src":"2466:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2478:87:7","statements":[{"nodeType":"YulAssignment","src":"2496:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2506:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"2510:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2502:3:7"},"nodeType":"YulFunctionCall","src":"2502:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"2496:2:7"}]},{"nodeType":"YulAssignment","src":"2532:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"2542:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"2546:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2538:3:7"},"nodeType":"YulFunctionCall","src":"2538:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"2532:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"2402:63:7","statements":[{"nodeType":"YulVariableDeclaration","src":"2420:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"2434:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"2446:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2430:3:7"},"nodeType":"YulFunctionCall","src":"2430:21:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"2424:2:7","type":""}]}]},"src":"2398:221:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3031:4:7","type":"","value":"0x40"},{"arguments":[{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"3062:3:7"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3078:6:7"},{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"3092:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3086:5:7"},"nodeType":"YulFunctionCall","src":"3086:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3074:3:7"},"nodeType":"YulFunctionCall","src":"3074:29:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3067:6:7"},"nodeType":"YulFunctionCall","src":"3067:37:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3058:3:7"},"nodeType":"YulFunctionCall","src":"3058:47:7"},{"kind":"number","nodeType":"YulLiteral","src":"3107:2:7","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3054:3:7"},"nodeType":"YulFunctionCall","src":"3054:56:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3128:2:7","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3124:3:7"},"nodeType":"YulFunctionCall","src":"3124:7:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3037:3:7"},"nodeType":"YulFunctionCall","src":"3037:147:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3024:6:7"},"nodeType":"YulFunctionCall","src":"3024:161:7"},"nodeType":"YulExpressionStatement","src":"3024:161:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2459,"isOffset":false,"isSlot":false,"src":"2032:10:7","valueSize":1},{"declaration":2459,"isOffset":false,"isSlot":false,"src":"2434:10:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"1476:9:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"3092:9:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"889:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"1149:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"2063:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"2092:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"721:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"919:9:7","valueSize":1}],"id":2467,"nodeType":"InlineAssembly","src":"576:2619:7"},{"expression":{"id":2468,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"3212:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2463,"id":2469,"nodeType":"Return","src":"3205:16:7"}]},"id":2471,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"402:6:7","nodeType":"FunctionDefinition","parameters":{"id":2460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2457,"mutability":"mutable","name":"_preBytes","nameLocation":"431:9:7","nodeType":"VariableDeclaration","scope":2471,"src":"418:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2456,"name":"bytes","nodeType":"ElementaryTypeName","src":"418:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2459,"mutability":"mutable","name":"_postBytes","nameLocation":"463:10:7","nodeType":"VariableDeclaration","scope":2471,"src":"450:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2458,"name":"bytes","nodeType":"ElementaryTypeName","src":"450:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"408:71:7"},"returnParameters":{"id":2463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2471,"src":"515:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2461,"name":"bytes","nodeType":"ElementaryTypeName","src":"515:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"514:14:7"},"scope":2786,"src":"393:2835:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2479,"nodeType":"Block","src":"3316:5543:7","statements":[{"AST":{"nodeType":"YulBlock","src":"3335:5518:7","statements":[{"nodeType":"YulVariableDeclaration","src":"3546:34:7","value":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"3565:14:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3559:5:7"},"nodeType":"YulFunctionCall","src":"3559:21:7"},"variables":[{"name":"fslot","nodeType":"YulTypedName","src":"3550:5:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4045:76:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"4068:5:7"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4083:5:7","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"4101:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"4108:1:7","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4097:3:7"},"nodeType":"YulFunctionCall","src":"4097:13:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4090:6:7"},"nodeType":"YulFunctionCall","src":"4090:21:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4079:3:7"},"nodeType":"YulFunctionCall","src":"4079:33:7"},{"kind":"number","nodeType":"YulLiteral","src":"4114:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4075:3:7"},"nodeType":"YulFunctionCall","src":"4075:41:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4064:3:7"},"nodeType":"YulFunctionCall","src":"4064:53:7"},{"kind":"number","nodeType":"YulLiteral","src":"4119:1:7","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4060:3:7"},"nodeType":"YulFunctionCall","src":"4060:61:7"},"variables":[{"name":"slength","nodeType":"YulTypedName","src":"4049:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4134:32:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"4155:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4149:5:7"},"nodeType":"YulFunctionCall","src":"4149:17:7"},"variables":[{"name":"mlength","nodeType":"YulTypedName","src":"4138:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4179:38:7","value":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"4200:7:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"4209:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4196:3:7"},"nodeType":"YulFunctionCall","src":"4196:21:7"},"variables":[{"name":"newlength","nodeType":"YulTypedName","src":"4183:9:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"4538:1193:7","statements":[{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"4803:14:7"},{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"5079:5:7"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"5221:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"5233:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5217:3:7"},"nodeType":"YulFunctionCall","src":"5217:21:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5211:5:7"},"nodeType":"YulFunctionCall","src":"5211:28:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5308:5:7","type":"","value":"0x100"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5319:2:7","type":"","value":"32"},{"name":"mlength","nodeType":"YulIdentifier","src":"5323:7:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5315:3:7"},"nodeType":"YulFunctionCall","src":"5315:16:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"5304:3:7"},"nodeType":"YulFunctionCall","src":"5304:28:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5144:3:7"},"nodeType":"YulFunctionCall","src":"5144:206:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5491:5:7","type":"","value":"0x100"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5502:2:7","type":"","value":"32"},{"name":"newlength","nodeType":"YulIdentifier","src":"5506:9:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5498:3:7"},"nodeType":"YulFunctionCall","src":"5498:18:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"5487:3:7"},"nodeType":"YulFunctionCall","src":"5487:30:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5123:3:7"},"nodeType":"YulFunctionCall","src":"5123:412:7"},{"arguments":[{"name":"mlength","nodeType":"YulIdentifier","src":"5652:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"5661:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5648:3:7"},"nodeType":"YulFunctionCall","src":"5648:15:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5102:3:7"},"nodeType":"YulFunctionCall","src":"5102:579:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4934:3:7"},"nodeType":"YulFunctionCall","src":"4934:765:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4779:6:7"},"nodeType":"YulFunctionCall","src":"4779:938:7"},"nodeType":"YulExpressionStatement","src":"4779:938:7"}]},"nodeType":"YulCase","src":"4531:1200:7","value":{"kind":"number","nodeType":"YulLiteral","src":"4536:1:7","type":"","value":"2"}},{"body":{"nodeType":"YulBlock","src":"5751:1827:7","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5948:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"5953:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5941:6:7"},"nodeType":"YulFunctionCall","src":"5941:27:7"},"nodeType":"YulExpressionStatement","src":"5941:27:7"},{"nodeType":"YulVariableDeclaration","src":"5985:53:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6009:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"6014:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"5999:9:7"},"nodeType":"YulFunctionCall","src":"5999:20:7"},{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"6025:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"6034:2:7","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6021:3:7"},"nodeType":"YulFunctionCall","src":"6021:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5995:3:7"},"nodeType":"YulFunctionCall","src":"5995:43:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"5989:2:7","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"6094:14:7"},{"arguments":[{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"6118:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"6129:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6114:3:7"},"nodeType":"YulFunctionCall","src":"6114:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"6133:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6110:3:7"},"nodeType":"YulFunctionCall","src":"6110:25:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6087:6:7"},"nodeType":"YulFunctionCall","src":"6087:49:7"},"nodeType":"YulExpressionStatement","src":"6087:49:7"},{"nodeType":"YulVariableDeclaration","src":"6692:30:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6710:2:7","type":"","value":"32"},{"name":"slength","nodeType":"YulIdentifier","src":"6714:7:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6706:3:7"},"nodeType":"YulFunctionCall","src":"6706:16:7"},"variables":[{"name":"submod","nodeType":"YulTypedName","src":"6696:6:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6739:33:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"6753:10:7"},{"name":"submod","nodeType":"YulIdentifier","src":"6765:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6749:3:7"},"nodeType":"YulFunctionCall","src":"6749:23:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"6743:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6789:35:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"6804:10:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"6816:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6800:3:7"},"nodeType":"YulFunctionCall","src":"6800:24:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"6793:3:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6841:38:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6861:5:7","type":"","value":"0x100"},{"name":"submod","nodeType":"YulIdentifier","src":"6868:6:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"6857:3:7"},"nodeType":"YulFunctionCall","src":"6857:18:7"},{"kind":"number","nodeType":"YulLiteral","src":"6877:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6853:3:7"},"nodeType":"YulFunctionCall","src":"6853:26:7"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"6845:4:7","type":""}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"6921:2:7"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"6983:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"7006:66:7","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6962:3:7"},"nodeType":"YulFunctionCall","src":"6962:128:7"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7118:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7112:5:7"},"nodeType":"YulFunctionCall","src":"7112:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7123:4:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7108:3:7"},"nodeType":"YulFunctionCall","src":"7108:20:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6941:3:7"},"nodeType":"YulFunctionCall","src":"6941:205:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6897:6:7"},"nodeType":"YulFunctionCall","src":"6897:267:7"},"nodeType":"YulExpressionStatement","src":"6897:267:7"},{"body":{"nodeType":"YulBlock","src":"7392:61:7","statements":[{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7421:2:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7431:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7425:5:7"},"nodeType":"YulFunctionCall","src":"7425:9:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7414:6:7"},"nodeType":"YulFunctionCall","src":"7414:21:7"},"nodeType":"YulExpressionStatement","src":"7414:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7286:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"7290:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7283:2:7"},"nodeType":"YulFunctionCall","src":"7283:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7295:96:7","statements":[{"nodeType":"YulAssignment","src":"7317:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7327:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7331:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7323:3:7"},"nodeType":"YulFunctionCall","src":"7323:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"7317:2:7"}]},{"nodeType":"YulAssignment","src":"7354:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7364:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7368:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7360:3:7"},"nodeType":"YulFunctionCall","src":"7360:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"7354:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"7186:96:7","statements":[{"nodeType":"YulAssignment","src":"7208:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7218:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7222:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:7"},"nodeType":"YulFunctionCall","src":"7214:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"7208:2:7"}]},{"nodeType":"YulAssignment","src":"7248:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7258:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7262:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7254:3:7"},"nodeType":"YulFunctionCall","src":"7254:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"7248:2:7"}]}]},"src":"7182:271:7"},{"nodeType":"YulAssignment","src":"7471:32:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7483:5:7","type":"","value":"0x100"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7494:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"7498:3:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7490:3:7"},"nodeType":"YulFunctionCall","src":"7490:12:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"7479:3:7"},"nodeType":"YulFunctionCall","src":"7479:24:7"},"variableNames":[{"name":"mask","nodeType":"YulIdentifier","src":"7471:4:7"}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7528:2:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7546:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7540:5:7"},"nodeType":"YulFunctionCall","src":"7540:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7551:4:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7536:3:7"},"nodeType":"YulFunctionCall","src":"7536:20:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7558:4:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7532:3:7"},"nodeType":"YulFunctionCall","src":"7532:31:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7521:6:7"},"nodeType":"YulFunctionCall","src":"7521:43:7"},"nodeType":"YulExpressionStatement","src":"7521:43:7"}]},"nodeType":"YulCase","src":"5744:1834:7","value":{"kind":"number","nodeType":"YulLiteral","src":"5749:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"7599:1244:7","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7692:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"7697:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7685:6:7"},"nodeType":"YulFunctionCall","src":"7685:27:7"},"nodeType":"YulExpressionStatement","src":"7685:27:7"},{"nodeType":"YulVariableDeclaration","src":"7801:53:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7825:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"7830:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"7815:9:7"},"nodeType":"YulFunctionCall","src":"7815:20:7"},{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"7841:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"7850:2:7","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7837:3:7"},"nodeType":"YulFunctionCall","src":"7837:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7811:3:7"},"nodeType":"YulFunctionCall","src":"7811:43:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"7805:2:7","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"7910:14:7"},{"arguments":[{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"7934:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"7945:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7930:3:7"},"nodeType":"YulFunctionCall","src":"7930:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"7949:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7926:3:7"},"nodeType":"YulFunctionCall","src":"7926:25:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7903:6:7"},"nodeType":"YulFunctionCall","src":"7903:49:7"},"nodeType":"YulExpressionStatement","src":"7903:49:7"},{"nodeType":"YulVariableDeclaration","src":"8071:34:7","value":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"8093:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"8102:2:7","type":"","value":"32"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"8089:3:7"},"nodeType":"YulFunctionCall","src":"8089:16:7"},"variables":[{"name":"slengthmod","nodeType":"YulTypedName","src":"8075:10:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8122:34:7","value":{"arguments":[{"name":"mlength","nodeType":"YulIdentifier","src":"8144:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"8153:2:7","type":"","value":"32"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"8140:3:7"},"nodeType":"YulFunctionCall","src":"8140:16:7"},"variables":[{"name":"mlengthmod","nodeType":"YulTypedName","src":"8126:10:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8173:33:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8191:2:7","type":"","value":"32"},{"name":"slengthmod","nodeType":"YulIdentifier","src":"8195:10:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8187:3:7"},"nodeType":"YulFunctionCall","src":"8187:19:7"},"variables":[{"name":"submod","nodeType":"YulTypedName","src":"8177:6:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8223:33:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"8237:10:7"},{"name":"submod","nodeType":"YulIdentifier","src":"8249:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8233:3:7"},"nodeType":"YulFunctionCall","src":"8233:23:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"8227:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8273:35:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"8288:10:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"8300:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8284:3:7"},"nodeType":"YulFunctionCall","src":"8284:24:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"8277:3:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8325:38:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8345:5:7","type":"","value":"0x100"},{"name":"submod","nodeType":"YulIdentifier","src":"8352:6:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"8341:3:7"},"nodeType":"YulFunctionCall","src":"8341:18:7"},{"kind":"number","nodeType":"YulLiteral","src":"8361:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8337:3:7"},"nodeType":"YulFunctionCall","src":"8337:26:7"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"8329:4:7","type":""}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8388:2:7"},{"arguments":[{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8402:2:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"8396:5:7"},"nodeType":"YulFunctionCall","src":"8396:9:7"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8417:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8411:5:7"},"nodeType":"YulFunctionCall","src":"8411:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8422:4:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8407:3:7"},"nodeType":"YulFunctionCall","src":"8407:20:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8392:3:7"},"nodeType":"YulFunctionCall","src":"8392:36:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8381:6:7"},"nodeType":"YulFunctionCall","src":"8381:48:7"},"nodeType":"YulExpressionStatement","src":"8381:48:7"},{"body":{"nodeType":"YulBlock","src":"8657:61:7","statements":[{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8686:2:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8696:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8690:5:7"},"nodeType":"YulFunctionCall","src":"8690:9:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8679:6:7"},"nodeType":"YulFunctionCall","src":"8679:21:7"},"nodeType":"YulExpressionStatement","src":"8679:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8551:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"8555:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8548:2:7"},"nodeType":"YulFunctionCall","src":"8548:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8560:96:7","statements":[{"nodeType":"YulAssignment","src":"8582:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8592:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8596:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8588:3:7"},"nodeType":"YulFunctionCall","src":"8588:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"8582:2:7"}]},{"nodeType":"YulAssignment","src":"8619:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8629:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8633:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8625:3:7"},"nodeType":"YulFunctionCall","src":"8625:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"8619:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"8451:96:7","statements":[{"nodeType":"YulAssignment","src":"8473:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8483:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8487:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8479:3:7"},"nodeType":"YulFunctionCall","src":"8479:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"8473:2:7"}]},{"nodeType":"YulAssignment","src":"8510:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8520:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8524:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8516:3:7"},"nodeType":"YulFunctionCall","src":"8516:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"8510:2:7"}]}]},"src":"8447:271:7"},{"nodeType":"YulAssignment","src":"8736:32:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8748:5:7","type":"","value":"0x100"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8759:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"8763:3:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8755:3:7"},"nodeType":"YulFunctionCall","src":"8755:12:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"8744:3:7"},"nodeType":"YulFunctionCall","src":"8744:24:7"},"variableNames":[{"name":"mask","nodeType":"YulIdentifier","src":"8736:4:7"}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8793:2:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8811:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8805:5:7"},"nodeType":"YulFunctionCall","src":"8805:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8816:4:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8801:3:7"},"nodeType":"YulFunctionCall","src":"8801:20:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8823:4:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8797:3:7"},"nodeType":"YulFunctionCall","src":"8797:31:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8786:6:7"},"nodeType":"YulFunctionCall","src":"8786:43:7"},"nodeType":"YulExpressionStatement","src":"8786:43:7"}]},"nodeType":"YulCase","src":"7591:1252:7","value":"default"}],"expression":{"arguments":[{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"4486:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"4495:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4483:2:7"},"nodeType":"YulFunctionCall","src":"4483:15:7"},{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"4503:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"4514:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4500:2:7"},"nodeType":"YulFunctionCall","src":"4500:17:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4479:3:7"},"nodeType":"YulFunctionCall","src":"4479:39:7"},"nodeType":"YulSwitch","src":"4472:4371:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2475,"isOffset":false,"isSlot":false,"src":"4155:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"5221:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"6753:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"6804:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"8237:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"8288:10:7","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"3565:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"4803:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"5953:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"6094:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"7697:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"7910:14:7","suffix":"slot","valueSize":1}],"id":2478,"nodeType":"InlineAssembly","src":"3326:5527:7"}]},"id":2480,"implemented":true,"kind":"function","modifiers":[],"name":"concatStorage","nameLocation":"3243:13:7","nodeType":"FunctionDefinition","parameters":{"id":2476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2473,"mutability":"mutable","name":"_preBytes","nameLocation":"3271:9:7","nodeType":"VariableDeclaration","scope":2480,"src":"3257:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2472,"name":"bytes","nodeType":"ElementaryTypeName","src":"3257:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2475,"mutability":"mutable","name":"_postBytes","nameLocation":"3295:10:7","nodeType":"VariableDeclaration","scope":2480,"src":"3282:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2474,"name":"bytes","nodeType":"ElementaryTypeName","src":"3282:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3256:50:7"},"returnParameters":{"id":2477,"nodeType":"ParameterList","parameters":[],"src":"3316:0:7"},"scope":2786,"src":"3234:5625:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2516,"nodeType":"Block","src":"9017:2560:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2492,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9035:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":2493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9045:2:7","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"9035:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2495,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9051:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9035:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":2497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9060:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":2491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9027:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9027:50:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2499,"nodeType":"ExpressionStatement","src":"9027:50:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2501,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"9095:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9095:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2503,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2484,"src":"9112:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2504,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9121:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9112:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9095:33:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f75744f66426f756e6473","id":2507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9130:19:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""},"value":"slice_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""}],"id":2500,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9087:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9087:63:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2509,"nodeType":"ExpressionStatement","src":"9087:63:7"},{"assignments":[2511],"declarations":[{"constant":false,"id":2511,"mutability":"mutable","name":"tempBytes","nameLocation":"9174:9:7","nodeType":"VariableDeclaration","scope":2516,"src":"9161:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2510,"name":"bytes","nodeType":"ElementaryTypeName","src":"9161:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2512,"nodeType":"VariableDeclarationStatement","src":"9161:22:7"},{"AST":{"nodeType":"YulBlock","src":"9203:2341:7","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"9259:1888:7","statements":[{"nodeType":"YulAssignment","src":"9407:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9426:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9420:5:7"},"nodeType":"YulFunctionCall","src":"9420:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"9407:9:7"}]},{"nodeType":"YulVariableDeclaration","src":"10023:33:7","value":{"arguments":[{"name":"_length","nodeType":"YulIdentifier","src":"10044:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"10053:2:7","type":"","value":"31"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10040:3:7"},"nodeType":"YulFunctionCall","src":"10040:16:7"},"variables":[{"name":"lengthmod","nodeType":"YulTypedName","src":"10027:9:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10361:70:7","value":{"arguments":[{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"10379:9:7"},{"name":"lengthmod","nodeType":"YulIdentifier","src":"10390:9:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10375:3:7"},"nodeType":"YulFunctionCall","src":"10375:25:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10406:4:7","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nodeType":"YulIdentifier","src":"10419:9:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10412:6:7"},"nodeType":"YulFunctionCall","src":"10412:17:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10402:3:7"},"nodeType":"YulFunctionCall","src":"10402:28:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10371:3:7"},"nodeType":"YulFunctionCall","src":"10371:60:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"10365:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10448:27:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10463:2:7"},{"name":"_length","nodeType":"YulIdentifier","src":"10467:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10459:3:7"},"nodeType":"YulFunctionCall","src":"10459:16:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"10452:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"10849:61:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10878:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"10888:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10882:5:7"},"nodeType":"YulFunctionCall","src":"10882:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10871:6:7"},"nodeType":"YulFunctionCall","src":"10871:21:7"},"nodeType":"YulExpressionStatement","src":"10871:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10740:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"10744:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10737:2:7"},"nodeType":"YulFunctionCall","src":"10737:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10749:99:7","statements":[{"nodeType":"YulAssignment","src":"10771:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10781:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"10785:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10777:3:7"},"nodeType":"YulFunctionCall","src":"10777:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"10771:2:7"}]},{"nodeType":"YulAssignment","src":"10811:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"10821:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"10825:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10817:3:7"},"nodeType":"YulFunctionCall","src":"10817:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"10811:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"10497:239:7","statements":[{"nodeType":"YulVariableDeclaration","src":"10638:80:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"10660:6:7"},{"name":"lengthmod","nodeType":"YulIdentifier","src":"10668:9:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10656:3:7"},"nodeType":"YulFunctionCall","src":"10656:22:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10684:4:7","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nodeType":"YulIdentifier","src":"10697:9:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10690:6:7"},"nodeType":"YulFunctionCall","src":"10690:17:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10680:3:7"},"nodeType":"YulFunctionCall","src":"10680:28:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10652:3:7"},"nodeType":"YulFunctionCall","src":"10652:57:7"},{"name":"_start","nodeType":"YulIdentifier","src":"10711:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10648:3:7"},"nodeType":"YulFunctionCall","src":"10648:70:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"10642:2:7","type":""}]}]},"src":"10493:417:7"},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"10935:9:7"},{"name":"_length","nodeType":"YulIdentifier","src":"10946:7:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10928:6:7"},"nodeType":"YulFunctionCall","src":"10928:26:7"},"nodeType":"YulExpressionStatement","src":"10928:26:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11101:4:7","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"11115:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"11119:2:7","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11111:3:7"},"nodeType":"YulFunctionCall","src":"11111:11:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11128:2:7","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11124:3:7"},"nodeType":"YulFunctionCall","src":"11124:7:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11107:3:7"},"nodeType":"YulFunctionCall","src":"11107:25:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11094:6:7"},"nodeType":"YulFunctionCall","src":"11094:39:7"},"nodeType":"YulExpressionStatement","src":"11094:39:7"}]},"nodeType":"YulCase","src":"9252:1895:7","value":{"kind":"number","nodeType":"YulLiteral","src":"9257:1:7","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"11251:283:7","statements":[{"nodeType":"YulAssignment","src":"11269:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11288:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11282:5:7"},"nodeType":"YulFunctionCall","src":"11282:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11269:9:7"}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11455:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"11466:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11448:6:7"},"nodeType":"YulFunctionCall","src":"11448:20:7"},"nodeType":"YulExpressionStatement","src":"11448:20:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11493:4:7","type":"","value":"0x40"},{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11503:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"11514:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11499:3:7"},"nodeType":"YulFunctionCall","src":"11499:20:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11486:6:7"},"nodeType":"YulFunctionCall","src":"11486:34:7"},"nodeType":"YulExpressionStatement","src":"11486:34:7"}]},"nodeType":"YulCase","src":"11243:291:7","value":"default"}],"expression":{"arguments":[{"name":"_length","nodeType":"YulIdentifier","src":"9231:7:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9224:6:7"},"nodeType":"YulFunctionCall","src":"9224:15:7"},"nodeType":"YulSwitch","src":"9217:2317:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2482,"isOffset":false,"isSlot":false,"src":"10660:6:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10044:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10467:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10946:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"9231:7:7","valueSize":1},{"declaration":2484,"isOffset":false,"isSlot":false,"src":"10711:6:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"10379:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"10935:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11269:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11455:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11503:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"9407:9:7","valueSize":1}],"id":2513,"nodeType":"InlineAssembly","src":"9194:2350:7"},{"expression":{"id":2514,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"11561:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2490,"id":2515,"nodeType":"Return","src":"11554:16:7"}]},"id":2517,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"8874:5:7","nodeType":"FunctionDefinition","parameters":{"id":2487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2482,"mutability":"mutable","name":"_bytes","nameLocation":"8902:6:7","nodeType":"VariableDeclaration","scope":2517,"src":"8889:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2481,"name":"bytes","nodeType":"ElementaryTypeName","src":"8889:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2484,"mutability":"mutable","name":"_start","nameLocation":"8926:6:7","nodeType":"VariableDeclaration","scope":2517,"src":"8918:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2483,"name":"uint256","nodeType":"ElementaryTypeName","src":"8918:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2486,"mutability":"mutable","name":"_length","nameLocation":"8950:7:7","nodeType":"VariableDeclaration","scope":2517,"src":"8942:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2485,"name":"uint256","nodeType":"ElementaryTypeName","src":"8942:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8879:84:7"},"returnParameters":{"id":2490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2517,"src":"8999:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2488,"name":"bytes","nodeType":"ElementaryTypeName","src":"8999:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8998:14:7"},"scope":2786,"src":"8865:2712:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2542,"nodeType":"Block","src":"11671:266:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2527,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"11689:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11689:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2529,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2521,"src":"11706:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":2530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11715:2:7","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"11706:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11689:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","id":2533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11719:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""},"value":"toAddress_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""}],"id":2526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11681:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11681:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2535,"nodeType":"ExpressionStatement","src":"11681:62:7"},{"assignments":[2537],"declarations":[{"constant":false,"id":2537,"mutability":"mutable","name":"tempAddress","nameLocation":"11761:11:7","nodeType":"VariableDeclaration","scope":2542,"src":"11753:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2536,"name":"address","nodeType":"ElementaryTypeName","src":"11753:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2538,"nodeType":"VariableDeclarationStatement","src":"11753:19:7"},{"AST":{"nodeType":"YulBlock","src":"11792:110:7","statements":[{"nodeType":"YulAssignment","src":"11806:86:7","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"11839:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"11847:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11835:3:7"},"nodeType":"YulFunctionCall","src":"11835:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"11854:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11831:3:7"},"nodeType":"YulFunctionCall","src":"11831:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11825:5:7"},"nodeType":"YulFunctionCall","src":"11825:37:7"},{"kind":"number","nodeType":"YulLiteral","src":"11864:27:7","type":"","value":"0x1000000000000000000000000"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11821:3:7"},"nodeType":"YulFunctionCall","src":"11821:71:7"},"variableNames":[{"name":"tempAddress","nodeType":"YulIdentifier","src":"11806:11:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2519,"isOffset":false,"isSlot":false,"src":"11839:6:7","valueSize":1},{"declaration":2521,"isOffset":false,"isSlot":false,"src":"11854:6:7","valueSize":1},{"declaration":2537,"isOffset":false,"isSlot":false,"src":"11806:11:7","valueSize":1}],"id":2539,"nodeType":"InlineAssembly","src":"11783:119:7"},{"expression":{"id":2540,"name":"tempAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2537,"src":"11919:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2525,"id":2541,"nodeType":"Return","src":"11912:18:7"}]},"id":2543,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"11592:9:7","nodeType":"FunctionDefinition","parameters":{"id":2522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2519,"mutability":"mutable","name":"_bytes","nameLocation":"11615:6:7","nodeType":"VariableDeclaration","scope":2543,"src":"11602:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2518,"name":"bytes","nodeType":"ElementaryTypeName","src":"11602:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2521,"mutability":"mutable","name":"_start","nameLocation":"11631:6:7","nodeType":"VariableDeclaration","scope":2543,"src":"11623:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2520,"name":"uint256","nodeType":"ElementaryTypeName","src":"11623:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11601:37:7"},"returnParameters":{"id":2525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2543,"src":"11662:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2523,"name":"address","nodeType":"ElementaryTypeName","src":"11662:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11661:9:7"},"scope":2786,"src":"11583:354:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2568,"nodeType":"Block","src":"12027:218:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2553,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"12045:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12045:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2555,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2547,"src":"12062:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12071:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12062:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12045:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","id":2559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12075:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""},"value":"toUint8_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""}],"id":2552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12037:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12037:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2561,"nodeType":"ExpressionStatement","src":"12037:60:7"},{"assignments":[2563],"declarations":[{"constant":false,"id":2563,"mutability":"mutable","name":"tempUint","nameLocation":"12113:8:7","nodeType":"VariableDeclaration","scope":2568,"src":"12107:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2562,"name":"uint8","nodeType":"ElementaryTypeName","src":"12107:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2564,"nodeType":"VariableDeclarationStatement","src":"12107:14:7"},{"AST":{"nodeType":"YulBlock","src":"12141:72:7","statements":[{"nodeType":"YulAssignment","src":"12155:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12181:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12189:3:7","type":"","value":"0x1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12177:3:7"},"nodeType":"YulFunctionCall","src":"12177:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12195:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12173:3:7"},"nodeType":"YulFunctionCall","src":"12173:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12167:5:7"},"nodeType":"YulFunctionCall","src":"12167:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12155:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2545,"isOffset":false,"isSlot":false,"src":"12181:6:7","valueSize":1},{"declaration":2547,"isOffset":false,"isSlot":false,"src":"12195:6:7","valueSize":1},{"declaration":2563,"isOffset":false,"isSlot":false,"src":"12155:8:7","valueSize":1}],"id":2565,"nodeType":"InlineAssembly","src":"12132:81:7"},{"expression":{"id":2566,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2563,"src":"12230:8:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":2551,"id":2567,"nodeType":"Return","src":"12223:15:7"}]},"id":2569,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"11952:7:7","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2545,"mutability":"mutable","name":"_bytes","nameLocation":"11973:6:7","nodeType":"VariableDeclaration","scope":2569,"src":"11960:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2544,"name":"bytes","nodeType":"ElementaryTypeName","src":"11960:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"_start","nameLocation":"11989:6:7","nodeType":"VariableDeclaration","scope":2569,"src":"11981:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2546,"name":"uint256","nodeType":"ElementaryTypeName","src":"11981:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11959:37:7"},"returnParameters":{"id":2551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2569,"src":"12020:5:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2549,"name":"uint8","nodeType":"ElementaryTypeName","src":"12020:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12019:7:7"},"scope":2786,"src":"11943:302:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2594,"nodeType":"Block","src":"12337:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2579,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2571,"src":"12355:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12355:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2581,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"12372:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12381:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12372:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12355:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7431365f6f75744f66426f756e6473","id":2585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12384:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""},"value":"toUint16_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""}],"id":2578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12347:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12347:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2587,"nodeType":"ExpressionStatement","src":"12347:60:7"},{"assignments":[2589],"declarations":[{"constant":false,"id":2589,"mutability":"mutable","name":"tempUint","nameLocation":"12424:8:7","nodeType":"VariableDeclaration","scope":2594,"src":"12417:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2588,"name":"uint16","nodeType":"ElementaryTypeName","src":"12417:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":2590,"nodeType":"VariableDeclarationStatement","src":"12417:15:7"},{"AST":{"nodeType":"YulBlock","src":"12452:72:7","statements":[{"nodeType":"YulAssignment","src":"12466:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12492:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12500:3:7","type":"","value":"0x2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12488:3:7"},"nodeType":"YulFunctionCall","src":"12488:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12506:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12484:3:7"},"nodeType":"YulFunctionCall","src":"12484:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12478:5:7"},"nodeType":"YulFunctionCall","src":"12478:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12466:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2571,"isOffset":false,"isSlot":false,"src":"12492:6:7","valueSize":1},{"declaration":2573,"isOffset":false,"isSlot":false,"src":"12506:6:7","valueSize":1},{"declaration":2589,"isOffset":false,"isSlot":false,"src":"12466:8:7","valueSize":1}],"id":2591,"nodeType":"InlineAssembly","src":"12443:81:7"},{"expression":{"id":2592,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2589,"src":"12541:8:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":2577,"id":2593,"nodeType":"Return","src":"12534:15:7"}]},"id":2595,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"12260:8:7","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2571,"mutability":"mutable","name":"_bytes","nameLocation":"12282:6:7","nodeType":"VariableDeclaration","scope":2595,"src":"12269:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2570,"name":"bytes","nodeType":"ElementaryTypeName","src":"12269:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2573,"mutability":"mutable","name":"_start","nameLocation":"12298:6:7","nodeType":"VariableDeclaration","scope":2595,"src":"12290:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2572,"name":"uint256","nodeType":"ElementaryTypeName","src":"12290:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12268:37:7"},"returnParameters":{"id":2577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2595,"src":"12329:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2575,"name":"uint16","nodeType":"ElementaryTypeName","src":"12329:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"12328:8:7"},"scope":2786,"src":"12251:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2620,"nodeType":"Block","src":"12648:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2605,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2597,"src":"12666:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12666:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2607,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2599,"src":"12683:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":2608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12692:1:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12683:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12666:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7433325f6f75744f66426f756e6473","id":2611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12695:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""},"value":"toUint32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""}],"id":2604,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12658:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12658:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2613,"nodeType":"ExpressionStatement","src":"12658:60:7"},{"assignments":[2615],"declarations":[{"constant":false,"id":2615,"mutability":"mutable","name":"tempUint","nameLocation":"12735:8:7","nodeType":"VariableDeclaration","scope":2620,"src":"12728:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2614,"name":"uint32","nodeType":"ElementaryTypeName","src":"12728:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":2616,"nodeType":"VariableDeclarationStatement","src":"12728:15:7"},{"AST":{"nodeType":"YulBlock","src":"12763:72:7","statements":[{"nodeType":"YulAssignment","src":"12777:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12803:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12811:3:7","type":"","value":"0x4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12799:3:7"},"nodeType":"YulFunctionCall","src":"12799:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12817:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12795:3:7"},"nodeType":"YulFunctionCall","src":"12795:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12789:5:7"},"nodeType":"YulFunctionCall","src":"12789:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12777:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2597,"isOffset":false,"isSlot":false,"src":"12803:6:7","valueSize":1},{"declaration":2599,"isOffset":false,"isSlot":false,"src":"12817:6:7","valueSize":1},{"declaration":2615,"isOffset":false,"isSlot":false,"src":"12777:8:7","valueSize":1}],"id":2617,"nodeType":"InlineAssembly","src":"12754:81:7"},{"expression":{"id":2618,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2615,"src":"12852:8:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":2603,"id":2619,"nodeType":"Return","src":"12845:15:7"}]},"id":2621,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"12571:8:7","nodeType":"FunctionDefinition","parameters":{"id":2600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2597,"mutability":"mutable","name":"_bytes","nameLocation":"12593:6:7","nodeType":"VariableDeclaration","scope":2621,"src":"12580:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2596,"name":"bytes","nodeType":"ElementaryTypeName","src":"12580:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2599,"mutability":"mutable","name":"_start","nameLocation":"12609:6:7","nodeType":"VariableDeclaration","scope":2621,"src":"12601:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2598,"name":"uint256","nodeType":"ElementaryTypeName","src":"12601:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12579:37:7"},"returnParameters":{"id":2603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2621,"src":"12640:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2601,"name":"uint32","nodeType":"ElementaryTypeName","src":"12640:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"12639:8:7"},"scope":2786,"src":"12562:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2646,"nodeType":"Block","src":"12959:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2631,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2623,"src":"12977:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12977:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2633,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"12994:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":2634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13003:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12994:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12977:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","id":2637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13006:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""},"value":"toUint64_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""}],"id":2630,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12969:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12969:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2639,"nodeType":"ExpressionStatement","src":"12969:60:7"},{"assignments":[2641],"declarations":[{"constant":false,"id":2641,"mutability":"mutable","name":"tempUint","nameLocation":"13046:8:7","nodeType":"VariableDeclaration","scope":2646,"src":"13039:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2640,"name":"uint64","nodeType":"ElementaryTypeName","src":"13039:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":2642,"nodeType":"VariableDeclarationStatement","src":"13039:15:7"},{"AST":{"nodeType":"YulBlock","src":"13074:72:7","statements":[{"nodeType":"YulAssignment","src":"13088:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13114:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13122:3:7","type":"","value":"0x8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13110:3:7"},"nodeType":"YulFunctionCall","src":"13110:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13128:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13106:3:7"},"nodeType":"YulFunctionCall","src":"13106:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13100:5:7"},"nodeType":"YulFunctionCall","src":"13100:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13088:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2623,"isOffset":false,"isSlot":false,"src":"13114:6:7","valueSize":1},{"declaration":2625,"isOffset":false,"isSlot":false,"src":"13128:6:7","valueSize":1},{"declaration":2641,"isOffset":false,"isSlot":false,"src":"13088:8:7","valueSize":1}],"id":2643,"nodeType":"InlineAssembly","src":"13065:81:7"},{"expression":{"id":2644,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2641,"src":"13163:8:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":2629,"id":2645,"nodeType":"Return","src":"13156:15:7"}]},"id":2647,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"12882:8:7","nodeType":"FunctionDefinition","parameters":{"id":2626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2623,"mutability":"mutable","name":"_bytes","nameLocation":"12904:6:7","nodeType":"VariableDeclaration","scope":2647,"src":"12891:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2622,"name":"bytes","nodeType":"ElementaryTypeName","src":"12891:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2625,"mutability":"mutable","name":"_start","nameLocation":"12920:6:7","nodeType":"VariableDeclaration","scope":2647,"src":"12912:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2624,"name":"uint256","nodeType":"ElementaryTypeName","src":"12912:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12890:37:7"},"returnParameters":{"id":2629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2647,"src":"12951:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2627,"name":"uint64","nodeType":"ElementaryTypeName","src":"12951:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"12950:8:7"},"scope":2786,"src":"12873:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2672,"nodeType":"Block","src":"13270:220:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2657,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2649,"src":"13288:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13288:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2659,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2651,"src":"13305:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3132","id":2660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13314:2:7","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13305:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13288:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7439365f6f75744f66426f756e6473","id":2663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13318:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""},"value":"toUint96_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""}],"id":2656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13280:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13280:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2665,"nodeType":"ExpressionStatement","src":"13280:61:7"},{"assignments":[2667],"declarations":[{"constant":false,"id":2667,"mutability":"mutable","name":"tempUint","nameLocation":"13358:8:7","nodeType":"VariableDeclaration","scope":2672,"src":"13351:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2666,"name":"uint96","nodeType":"ElementaryTypeName","src":"13351:6:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":2668,"nodeType":"VariableDeclarationStatement","src":"13351:15:7"},{"AST":{"nodeType":"YulBlock","src":"13386:72:7","statements":[{"nodeType":"YulAssignment","src":"13400:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13426:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13434:3:7","type":"","value":"0xc"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13422:3:7"},"nodeType":"YulFunctionCall","src":"13422:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13440:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13418:3:7"},"nodeType":"YulFunctionCall","src":"13418:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13412:5:7"},"nodeType":"YulFunctionCall","src":"13412:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13400:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2649,"isOffset":false,"isSlot":false,"src":"13426:6:7","valueSize":1},{"declaration":2651,"isOffset":false,"isSlot":false,"src":"13440:6:7","valueSize":1},{"declaration":2667,"isOffset":false,"isSlot":false,"src":"13400:8:7","valueSize":1}],"id":2669,"nodeType":"InlineAssembly","src":"13377:81:7"},{"expression":{"id":2670,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2667,"src":"13475:8:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":2655,"id":2671,"nodeType":"Return","src":"13468:15:7"}]},"id":2673,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"13193:8:7","nodeType":"FunctionDefinition","parameters":{"id":2652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2649,"mutability":"mutable","name":"_bytes","nameLocation":"13215:6:7","nodeType":"VariableDeclaration","scope":2673,"src":"13202:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2648,"name":"bytes","nodeType":"ElementaryTypeName","src":"13202:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2651,"mutability":"mutable","name":"_start","nameLocation":"13231:6:7","nodeType":"VariableDeclaration","scope":2673,"src":"13223:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2650,"name":"uint256","nodeType":"ElementaryTypeName","src":"13223:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13201:37:7"},"returnParameters":{"id":2655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2673,"src":"13262:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2653,"name":"uint96","nodeType":"ElementaryTypeName","src":"13262:6:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"13261:8:7"},"scope":2786,"src":"13184:306:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2698,"nodeType":"Block","src":"13584:223:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2683,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2675,"src":"13602:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13602:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2685,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2677,"src":"13619:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":2686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13628:2:7","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13619:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13602:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743132385f6f75744f66426f756e6473","id":2689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13632:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""},"value":"toUint128_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""}],"id":2682,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13594:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13594:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2691,"nodeType":"ExpressionStatement","src":"13594:62:7"},{"assignments":[2693],"declarations":[{"constant":false,"id":2693,"mutability":"mutable","name":"tempUint","nameLocation":"13674:8:7","nodeType":"VariableDeclaration","scope":2698,"src":"13666:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2692,"name":"uint128","nodeType":"ElementaryTypeName","src":"13666:7:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":2694,"nodeType":"VariableDeclarationStatement","src":"13666:16:7"},{"AST":{"nodeType":"YulBlock","src":"13702:73:7","statements":[{"nodeType":"YulAssignment","src":"13716:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13742:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13750:4:7","type":"","value":"0x10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13738:3:7"},"nodeType":"YulFunctionCall","src":"13738:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13757:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13734:3:7"},"nodeType":"YulFunctionCall","src":"13734:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13728:5:7"},"nodeType":"YulFunctionCall","src":"13728:37:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13716:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2675,"isOffset":false,"isSlot":false,"src":"13742:6:7","valueSize":1},{"declaration":2677,"isOffset":false,"isSlot":false,"src":"13757:6:7","valueSize":1},{"declaration":2693,"isOffset":false,"isSlot":false,"src":"13716:8:7","valueSize":1}],"id":2695,"nodeType":"InlineAssembly","src":"13693:82:7"},{"expression":{"id":2696,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2693,"src":"13792:8:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":2681,"id":2697,"nodeType":"Return","src":"13785:15:7"}]},"id":2699,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"13505:9:7","nodeType":"FunctionDefinition","parameters":{"id":2678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2675,"mutability":"mutable","name":"_bytes","nameLocation":"13528:6:7","nodeType":"VariableDeclaration","scope":2699,"src":"13515:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2674,"name":"bytes","nodeType":"ElementaryTypeName","src":"13515:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2677,"mutability":"mutable","name":"_start","nameLocation":"13544:6:7","nodeType":"VariableDeclaration","scope":2699,"src":"13536:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2676,"name":"uint256","nodeType":"ElementaryTypeName","src":"13536:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13514:37:7"},"returnParameters":{"id":2681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2699,"src":"13575:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2679,"name":"uint128","nodeType":"ElementaryTypeName","src":"13575:7:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13574:9:7"},"scope":2786,"src":"13496:311:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2724,"nodeType":"Block","src":"13901:223:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2709,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"13919:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13919:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2711,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"13936:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":2712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13945:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"13936:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13919:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743235365f6f75744f66426f756e6473","id":2715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13949:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""},"value":"toUint256_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""}],"id":2708,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13911:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13911:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2717,"nodeType":"ExpressionStatement","src":"13911:62:7"},{"assignments":[2719],"declarations":[{"constant":false,"id":2719,"mutability":"mutable","name":"tempUint","nameLocation":"13991:8:7","nodeType":"VariableDeclaration","scope":2724,"src":"13983:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2718,"name":"uint256","nodeType":"ElementaryTypeName","src":"13983:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2720,"nodeType":"VariableDeclarationStatement","src":"13983:16:7"},{"AST":{"nodeType":"YulBlock","src":"14019:73:7","statements":[{"nodeType":"YulAssignment","src":"14033:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"14059:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"14067:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14055:3:7"},"nodeType":"YulFunctionCall","src":"14055:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"14074:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14051:3:7"},"nodeType":"YulFunctionCall","src":"14051:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14045:5:7"},"nodeType":"YulFunctionCall","src":"14045:37:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"14033:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2701,"isOffset":false,"isSlot":false,"src":"14059:6:7","valueSize":1},{"declaration":2703,"isOffset":false,"isSlot":false,"src":"14074:6:7","valueSize":1},{"declaration":2719,"isOffset":false,"isSlot":false,"src":"14033:8:7","valueSize":1}],"id":2721,"nodeType":"InlineAssembly","src":"14010:82:7"},{"expression":{"id":2722,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"14109:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2707,"id":2723,"nodeType":"Return","src":"14102:15:7"}]},"id":2725,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"13822:9:7","nodeType":"FunctionDefinition","parameters":{"id":2704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2701,"mutability":"mutable","name":"_bytes","nameLocation":"13845:6:7","nodeType":"VariableDeclaration","scope":2725,"src":"13832:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2700,"name":"bytes","nodeType":"ElementaryTypeName","src":"13832:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2703,"mutability":"mutable","name":"_start","nameLocation":"13861:6:7","nodeType":"VariableDeclaration","scope":2725,"src":"13853:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2702,"name":"uint256","nodeType":"ElementaryTypeName","src":"13853:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13831:37:7"},"returnParameters":{"id":2707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2725,"src":"13892:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2705,"name":"uint256","nodeType":"ElementaryTypeName","src":"13892:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13891:9:7"},"scope":2786,"src":"13813:311:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2750,"nodeType":"Block","src":"14218:232:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2735,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2727,"src":"14236:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14236:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2737,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2729,"src":"14253:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":2738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14253:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14236:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","id":2741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14266:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""},"value":"toBytes32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""}],"id":2734,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14228:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14228:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2743,"nodeType":"ExpressionStatement","src":"14228:62:7"},{"assignments":[2745],"declarations":[{"constant":false,"id":2745,"mutability":"mutable","name":"tempBytes32","nameLocation":"14308:11:7","nodeType":"VariableDeclaration","scope":2750,"src":"14300:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14300:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2746,"nodeType":"VariableDeclarationStatement","src":"14300:19:7"},{"AST":{"nodeType":"YulBlock","src":"14339:76:7","statements":[{"nodeType":"YulAssignment","src":"14353:52:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"14382:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"14390:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14378:3:7"},"nodeType":"YulFunctionCall","src":"14378:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"14397:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14374:3:7"},"nodeType":"YulFunctionCall","src":"14374:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14368:5:7"},"nodeType":"YulFunctionCall","src":"14368:37:7"},"variableNames":[{"name":"tempBytes32","nodeType":"YulIdentifier","src":"14353:11:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2727,"isOffset":false,"isSlot":false,"src":"14382:6:7","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"14397:6:7","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"14353:11:7","valueSize":1}],"id":2747,"nodeType":"InlineAssembly","src":"14330:85:7"},{"expression":{"id":2748,"name":"tempBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"14432:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2733,"id":2749,"nodeType":"Return","src":"14425:18:7"}]},"id":2751,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"14139:9:7","nodeType":"FunctionDefinition","parameters":{"id":2730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"mutability":"mutable","name":"_bytes","nameLocation":"14162:6:7","nodeType":"VariableDeclaration","scope":2751,"src":"14149:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2726,"name":"bytes","nodeType":"ElementaryTypeName","src":"14149:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2729,"mutability":"mutable","name":"_start","nameLocation":"14178:6:7","nodeType":"VariableDeclaration","scope":2751,"src":"14170:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"14170:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14148:37:7"},"returnParameters":{"id":2733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2751,"src":"14209:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14209:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14208:9:7"},"scope":2786,"src":"14130:320:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2767,"nodeType":"Block","src":"14549:1291:7","statements":[{"assignments":[2761],"declarations":[{"constant":false,"id":2761,"mutability":"mutable","name":"success","nameLocation":"14564:7:7","nodeType":"VariableDeclaration","scope":2767,"src":"14559:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2760,"name":"bool","nodeType":"ElementaryTypeName","src":"14559:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2763,"initialValue":{"hexValue":"74727565","id":2762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14574:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"14559:19:7"},{"AST":{"nodeType":"YulBlock","src":"14598:1211:7","statements":[{"nodeType":"YulVariableDeclaration","src":"14612:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"14632:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14626:5:7"},"nodeType":"YulFunctionCall","src":"14626:16:7"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14616:6:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"14771:937:7","statements":[{"nodeType":"YulVariableDeclaration","src":"14984:11:7","value":{"kind":"number","nodeType":"YulLiteral","src":"14994:1:7","type":"","value":"1"},"variables":[{"name":"cb","nodeType":"YulTypedName","src":"14988:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15013:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"15027:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"15038:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15023:3:7"},"nodeType":"YulFunctionCall","src":"15023:20:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"15017:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15060:26:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15075:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"15079:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15071:3:7"},"nodeType":"YulFunctionCall","src":"15071:15:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"15064:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"15418:276:7","statements":[{"body":{"nodeType":"YulBlock","src":"15550:126:7","statements":[{"nodeType":"YulAssignment","src":"15610:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15621:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"15610:7:7"}]},{"nodeType":"YulAssignment","src":"15647:7:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15653:1:7","type":"","value":"0"},"variableNames":[{"name":"cb","nodeType":"YulIdentifier","src":"15647:2:7"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15533:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15527:5:7"},"nodeType":"YulFunctionCall","src":"15527:9:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"15544:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15538:5:7"},"nodeType":"YulFunctionCall","src":"15538:9:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15524:2:7"},"nodeType":"YulFunctionCall","src":"15524:24:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15517:6:7"},"nodeType":"YulFunctionCall","src":"15517:32:7"},"nodeType":"YulIf","src":"15514:162:7"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15300:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"15304:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15297:2:7"},"nodeType":"YulFunctionCall","src":"15297:11:7"},{"name":"cb","nodeType":"YulIdentifier","src":"15310:2:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15293:3:7"},"nodeType":"YulFunctionCall","src":"15293:20:7"},{"kind":"number","nodeType":"YulLiteral","src":"15315:1:7","type":"","value":"2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15290:2:7"},"nodeType":"YulFunctionCall","src":"15290:27:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15318:99:7","statements":[{"nodeType":"YulAssignment","src":"15340:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15350:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"15354:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15346:3:7"},"nodeType":"YulFunctionCall","src":"15346:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"15340:2:7"}]},{"nodeType":"YulAssignment","src":"15380:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"15390:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"15394:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15386:3:7"},"nodeType":"YulFunctionCall","src":"15386:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"15380:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"15108:181:7","statements":[{"nodeType":"YulVariableDeclaration","src":"15130:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"15144:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"15156:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15140:3:7"},"nodeType":"YulFunctionCall","src":"15140:21:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"15134:2:7","type":""}]}]},"src":"15104:590:7"}]},"nodeType":"YulCase","src":"14764:944:7","value":{"kind":"number","nodeType":"YulLiteral","src":"14769:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"15729:70:7","statements":[{"nodeType":"YulAssignment","src":"15773:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15784:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"15773:7:7"}]}]},"nodeType":"YulCase","src":"15721:78:7","value":"default"}],"expression":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14725:6:7"},{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"14739:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14733:5:7"},"nodeType":"YulFunctionCall","src":"14733:17:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14722:2:7"},"nodeType":"YulFunctionCall","src":"14722:29:7"},"nodeType":"YulSwitch","src":"14715:1084:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2755,"isOffset":false,"isSlot":false,"src":"14739:10:7","valueSize":1},{"declaration":2755,"isOffset":false,"isSlot":false,"src":"15144:10:7","valueSize":1},{"declaration":2753,"isOffset":false,"isSlot":false,"src":"14632:9:7","valueSize":1},{"declaration":2753,"isOffset":false,"isSlot":false,"src":"15027:9:7","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"15610:7:7","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"15773:7:7","valueSize":1}],"id":2764,"nodeType":"InlineAssembly","src":"14589:1220:7"},{"expression":{"id":2765,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2761,"src":"15826:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2759,"id":2766,"nodeType":"Return","src":"15819:14:7"}]},"id":2768,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"14465:5:7","nodeType":"FunctionDefinition","parameters":{"id":2756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2753,"mutability":"mutable","name":"_preBytes","nameLocation":"14484:9:7","nodeType":"VariableDeclaration","scope":2768,"src":"14471:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2752,"name":"bytes","nodeType":"ElementaryTypeName","src":"14471:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2755,"mutability":"mutable","name":"_postBytes","nameLocation":"14508:10:7","nodeType":"VariableDeclaration","scope":2768,"src":"14495:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2754,"name":"bytes","nodeType":"ElementaryTypeName","src":"14495:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14470:49:7"},"returnParameters":{"id":2759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2768,"src":"14543:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2757,"name":"bool","nodeType":"ElementaryTypeName","src":"14543:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14542:6:7"},"scope":2786,"src":"14456:1384:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2784,"nodeType":"Block","src":"15985:2491:7","statements":[{"assignments":[2778],"declarations":[{"constant":false,"id":2778,"mutability":"mutable","name":"success","nameLocation":"16000:7:7","nodeType":"VariableDeclaration","scope":2784,"src":"15995:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2777,"name":"bool","nodeType":"ElementaryTypeName","src":"15995:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2780,"initialValue":{"hexValue":"74727565","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16010:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"15995:19:7"},{"AST":{"nodeType":"YulBlock","src":"16034:2411:7","statements":[{"nodeType":"YulVariableDeclaration","src":"16089:34:7","value":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"16108:14:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"16102:5:7"},"nodeType":"YulFunctionCall","src":"16102:21:7"},"variables":[{"name":"fslot","nodeType":"YulTypedName","src":"16093:5:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16210:76:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16233:5:7"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16248:5:7","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16266:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"16273:1:7","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16262:3:7"},"nodeType":"YulFunctionCall","src":"16262:13:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16255:6:7"},"nodeType":"YulFunctionCall","src":"16255:21:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"16244:3:7"},"nodeType":"YulFunctionCall","src":"16244:33:7"},{"kind":"number","nodeType":"YulLiteral","src":"16279:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16240:3:7"},"nodeType":"YulFunctionCall","src":"16240:41:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16229:3:7"},"nodeType":"YulFunctionCall","src":"16229:53:7"},{"kind":"number","nodeType":"YulLiteral","src":"16284:1:7","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"16225:3:7"},"nodeType":"YulFunctionCall","src":"16225:61:7"},"variables":[{"name":"slength","nodeType":"YulTypedName","src":"16214:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16299:32:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"16320:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16314:5:7"},"nodeType":"YulFunctionCall","src":"16314:17:7"},"variables":[{"name":"mlength","nodeType":"YulTypedName","src":"16303:7:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"16451:1893:7","statements":[{"body":{"nodeType":"YulBlock","src":"16750:1580:7","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"16822:332:7","statements":[{"nodeType":"YulAssignment","src":"16911:38:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16928:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"16935:5:7","type":"","value":"0x100"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"16924:3:7"},"nodeType":"YulFunctionCall","src":"16924:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"16943:5:7","type":"","value":"0x100"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"16920:3:7"},"nodeType":"YulFunctionCall","src":"16920:29:7"},"variableNames":[{"name":"fslot","nodeType":"YulIdentifier","src":"16911:5:7"}]},{"body":{"nodeType":"YulBlock","src":"17026:106:7","statements":[{"nodeType":"YulAssignment","src":"17094:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"17105:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"17094:7:7"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16988:5:7"},{"arguments":[{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"17005:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"17017:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17001:3:7"},"nodeType":"YulFunctionCall","src":"17001:21:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16995:5:7"},"nodeType":"YulFunctionCall","src":"16995:28:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16985:2:7"},"nodeType":"YulFunctionCall","src":"16985:39:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16978:6:7"},"nodeType":"YulFunctionCall","src":"16978:47:7"},"nodeType":"YulIf","src":"16975:157:7"}]},"nodeType":"YulCase","src":"16815:339:7","value":{"kind":"number","nodeType":"YulLiteral","src":"16820:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"17183:1129:7","statements":[{"nodeType":"YulVariableDeclaration","src":"17436:11:7","value":{"kind":"number","nodeType":"YulLiteral","src":"17446:1:7","type":"","value":"1"},"variables":[{"name":"cb","nodeType":"YulTypedName","src":"17440:2:7","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17556:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"17561:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17549:6:7"},"nodeType":"YulFunctionCall","src":"17549:27:7"},"nodeType":"YulExpressionStatement","src":"17549:27:7"},{"nodeType":"YulVariableDeclaration","src":"17601:30:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17621:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"17626:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"17611:9:7"},"nodeType":"YulFunctionCall","src":"17611:20:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"17605:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17657:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"17671:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"17683:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17667:3:7"},"nodeType":"YulFunctionCall","src":"17667:21:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"17661:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17713:27:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"17728:2:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"17732:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17724:3:7"},"nodeType":"YulFunctionCall","src":"17724:16:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"17717:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"18040:250:7","statements":[{"body":{"nodeType":"YulBlock","src":"18106:158:7","statements":[{"nodeType":"YulAssignment","src":"18182:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18193:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"18182:7:7"}]},{"nodeType":"YulAssignment","src":"18227:7:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18233:1:7","type":"","value":"0"},"variableNames":[{"name":"cb","nodeType":"YulIdentifier","src":"18227:2:7"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"18089:2:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"18083:5:7"},"nodeType":"YulFunctionCall","src":"18083:9:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"18100:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18094:5:7"},"nodeType":"YulFunctionCall","src":"18094:9:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18080:2:7"},"nodeType":"YulFunctionCall","src":"18080:24:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18073:6:7"},"nodeType":"YulFunctionCall","src":"18073:32:7"},"nodeType":"YulIf","src":"18070:194:7"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"17901:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"17905:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17898:2:7"},"nodeType":"YulFunctionCall","src":"17898:11:7"},{"name":"cb","nodeType":"YulIdentifier","src":"17911:2:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17894:3:7"},"nodeType":"YulFunctionCall","src":"17894:20:7"},{"kind":"number","nodeType":"YulLiteral","src":"17916:1:7","type":"","value":"2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"17891:2:7"},"nodeType":"YulFunctionCall","src":"17891:27:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"17919:120:7","statements":[{"nodeType":"YulAssignment","src":"17949:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"17959:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"17963:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17955:3:7"},"nodeType":"YulFunctionCall","src":"17955:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"17949:2:7"}]},{"nodeType":"YulAssignment","src":"17994:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"18004:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"18008:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18000:3:7"},"nodeType":"YulFunctionCall","src":"18000:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"17994:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"17888:2:7","statements":[]},"src":"17884:406:7"}]},"nodeType":"YulCase","src":"17175:1137:7","value":"default"}],"expression":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16782:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"16791:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16779:2:7"},"nodeType":"YulFunctionCall","src":"16779:15:7"},"nodeType":"YulSwitch","src":"16772:1540:7"}]},"condition":{"arguments":[{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16740:7:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16733:6:7"},"nodeType":"YulFunctionCall","src":"16733:15:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16726:6:7"},"nodeType":"YulFunctionCall","src":"16726:23:7"},"nodeType":"YulIf","src":"16723:1607:7"}]},"nodeType":"YulCase","src":"16444:1900:7","value":{"kind":"number","nodeType":"YulLiteral","src":"16449:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"18365:70:7","statements":[{"nodeType":"YulAssignment","src":"18409:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18420:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"18409:7:7"}]}]},"nodeType":"YulCase","src":"18357:78:7","value":"default"}],"expression":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16414:7:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"16423:7:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16411:2:7"},"nodeType":"YulFunctionCall","src":"16411:20:7"},"nodeType":"YulSwitch","src":"16404:2031:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2772,"isOffset":false,"isSlot":false,"src":"16320:10:7","valueSize":1},{"declaration":2772,"isOffset":false,"isSlot":false,"src":"17005:10:7","valueSize":1},{"declaration":2772,"isOffset":false,"isSlot":false,"src":"17671:10:7","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":true,"src":"16108:14:7","suffix":"slot","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":true,"src":"17561:14:7","suffix":"slot","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"17094:7:7","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"18182:7:7","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"18409:7:7","valueSize":1}],"id":2781,"nodeType":"InlineAssembly","src":"16025:2420:7"},{"expression":{"id":2782,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2778,"src":"18462:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2776,"id":2783,"nodeType":"Return","src":"18455:14:7"}]},"id":2785,"implemented":true,"kind":"function","modifiers":[],"name":"equalStorage","nameLocation":"15855:12:7","nodeType":"FunctionDefinition","parameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2770,"mutability":"mutable","name":"_preBytes","nameLocation":"15891:9:7","nodeType":"VariableDeclaration","scope":2785,"src":"15877:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2769,"name":"bytes","nodeType":"ElementaryTypeName","src":"15877:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2772,"mutability":"mutable","name":"_postBytes","nameLocation":"15923:10:7","nodeType":"VariableDeclaration","scope":2785,"src":"15910:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2771,"name":"bytes","nodeType":"ElementaryTypeName","src":"15910:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15867:72:7"},"returnParameters":{"id":2776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2785,"src":"15975:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2774,"name":"bool","nodeType":"ElementaryTypeName","src":"15975:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15974:6:7"},"scope":2786,"src":"15846:2630:7","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2787,"src":"370:18108:7","usedErrors":[]}],"src":"336:18143:7"},"id":7},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol","exportedSymbols":{"ExcessivelySafeCall":[2883]},"id":2884,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2788,"literals":["solidity",">=","0.7",".6"],"nodeType":"PragmaDirective","src":"46:24:8"},{"abstract":false,"baseContracts":[],"canonicalName":"ExcessivelySafeCall","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2883,"linearizedBaseContracts":[2883],"name":"ExcessivelySafeCall","nameLocation":"80:19:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2791,"mutability":"constant","name":"LOW_28_MASK","nameLocation":"123:11:8","nodeType":"VariableDeclaration","scope":2883,"src":"106:101:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2789,"name":"uint256","nodeType":"ElementaryTypeName","src":"106:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830303030303030306666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":2790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"141:66:8","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1","typeString":"int_const 2695...(60 digits omitted)...9215"},"value":"0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"body":{"id":2825,"nodeType":"Block","src":"1295:1063:8","statements":[{"assignments":[2808],"declarations":[{"constant":false,"id":2808,"mutability":"mutable","name":"_toCopy","nameLocation":"1349:7:8","nodeType":"VariableDeclaration","scope":2825,"src":"1341:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2809,"nodeType":"VariableDeclarationStatement","src":"1341:15:8"},{"assignments":[2811],"declarations":[{"constant":false,"id":2811,"mutability":"mutable","name":"_success","nameLocation":"1371:8:8","nodeType":"VariableDeclaration","scope":2825,"src":"1366:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2810,"name":"bool","nodeType":"ElementaryTypeName","src":"1366:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2812,"nodeType":"VariableDeclarationStatement","src":"1366:13:8"},{"assignments":[2814],"declarations":[{"constant":false,"id":2814,"mutability":"mutable","name":"_returnData","nameLocation":"1402:11:8","nodeType":"VariableDeclaration","scope":2825,"src":"1389:24:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2813,"name":"bytes","nodeType":"ElementaryTypeName","src":"1389:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2819,"initialValue":{"arguments":[{"id":2817,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"1426:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":2816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1416:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2815,"name":"bytes","nodeType":"ElementaryTypeName","src":"1420:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1416:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1389:46:8"},{"AST":{"nodeType":"YulBlock","src":"1664:648:8","statements":[{"nodeType":"YulAssignment","src":"1678:251:8","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"1708:4:8"},{"name":"_target","nodeType":"YulIdentifier","src":"1733:7:8"},{"kind":"number","nodeType":"YulLiteral","src":"1767:1:8","type":"","value":"0"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1801:9:8"},{"kind":"number","nodeType":"YulLiteral","src":"1812:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1797:3:8"},"nodeType":"YulFunctionCall","src":"1797:20:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1846:9:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1840:5:8"},"nodeType":"YulFunctionCall","src":"1840:16:8"},{"kind":"number","nodeType":"YulLiteral","src":"1879:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1904:1:8","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1690:4:8"},"nodeType":"YulFunctionCall","src":"1690:239:8"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"1678:8:8"}]},{"nodeType":"YulAssignment","src":"1981:27:8","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1992:14:8"},"nodeType":"YulFunctionCall","src":"1992:16:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"1981:7:8"}]},{"body":{"nodeType":"YulBlock","src":"2046:51:8","statements":[{"nodeType":"YulAssignment","src":"2064:19:8","value":{"name":"_maxCopy","nodeType":"YulIdentifier","src":"2075:8:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"2064:7:8"}]}]},"condition":{"arguments":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"2027:7:8"},{"name":"_maxCopy","nodeType":"YulIdentifier","src":"2036:8:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2024:2:8"},"nodeType":"YulFunctionCall","src":"2024:21:8"},"nodeType":"YulIf","src":"2021:76:8"},{"expression":{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"2165:11:8"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"2178:7:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2158:6:8"},"nodeType":"YulFunctionCall","src":"2158:28:8"},"nodeType":"YulExpressionStatement","src":"2158:28:8"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"2271:11:8"},{"kind":"number","nodeType":"YulLiteral","src":"2284:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2267:3:8"},"nodeType":"YulFunctionCall","src":"2267:22:8"},{"kind":"number","nodeType":"YulLiteral","src":"2291:1:8","type":"","value":"0"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"2294:7:8"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2252:14:8"},"nodeType":"YulFunctionCall","src":"2252:50:8"},"nodeType":"YulExpressionStatement","src":"2252:50:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2800,"isOffset":false,"isSlot":false,"src":"1801:9:8","valueSize":1},{"declaration":2800,"isOffset":false,"isSlot":false,"src":"1846:9:8","valueSize":1},{"declaration":2796,"isOffset":false,"isSlot":false,"src":"1708:4:8","valueSize":1},{"declaration":2798,"isOffset":false,"isSlot":false,"src":"2036:8:8","valueSize":1},{"declaration":2798,"isOffset":false,"isSlot":false,"src":"2075:8:8","valueSize":1},{"declaration":2814,"isOffset":false,"isSlot":false,"src":"2165:11:8","valueSize":1},{"declaration":2814,"isOffset":false,"isSlot":false,"src":"2271:11:8","valueSize":1},{"declaration":2811,"isOffset":false,"isSlot":false,"src":"1678:8:8","valueSize":1},{"declaration":2794,"isOffset":false,"isSlot":false,"src":"1733:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"1981:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2027:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2064:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2178:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2294:7:8","valueSize":1}],"id":2820,"nodeType":"InlineAssembly","src":"1655:657:8"},{"expression":{"components":[{"id":2821,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"2329:8:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2822,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"2339:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2823,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2328:23:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":2806,"id":2824,"nodeType":"Return","src":"2321:30:8"}]},"documentation":{"id":2792,"nodeType":"StructuredDocumentation","src":"214:899:8","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":2826,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeCall","nameLocation":"1127:19:8","nodeType":"FunctionDefinition","parameters":{"id":2801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2794,"mutability":"mutable","name":"_target","nameLocation":"1164:7:8","nodeType":"VariableDeclaration","scope":2826,"src":"1156:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2793,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2796,"mutability":"mutable","name":"_gas","nameLocation":"1189:4:8","nodeType":"VariableDeclaration","scope":2826,"src":"1181:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2795,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2798,"mutability":"mutable","name":"_maxCopy","nameLocation":"1210:8:8","nodeType":"VariableDeclaration","scope":2826,"src":"1203:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2797,"name":"uint16","nodeType":"ElementaryTypeName","src":"1203:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2800,"mutability":"mutable","name":"_calldata","nameLocation":"1241:9:8","nodeType":"VariableDeclaration","scope":2826,"src":"1228:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2799,"name":"bytes","nodeType":"ElementaryTypeName","src":"1228:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1146:110:8"},"returnParameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2826,"src":"1275:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2802,"name":"bool","nodeType":"ElementaryTypeName","src":"1275:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2826,"src":"1281:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2804,"name":"bytes","nodeType":"ElementaryTypeName","src":"1281:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1274:20:8"},"scope":2883,"src":"1118:1240:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2860,"nodeType":"Block","src":"3456:1039:8","statements":[{"assignments":[2843],"declarations":[{"constant":false,"id":2843,"mutability":"mutable","name":"_toCopy","nameLocation":"3510:7:8","nodeType":"VariableDeclaration","scope":2860,"src":"3502:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2842,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2844,"nodeType":"VariableDeclarationStatement","src":"3502:15:8"},{"assignments":[2846],"declarations":[{"constant":false,"id":2846,"mutability":"mutable","name":"_success","nameLocation":"3532:8:8","nodeType":"VariableDeclaration","scope":2860,"src":"3527:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2845,"name":"bool","nodeType":"ElementaryTypeName","src":"3527:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2847,"nodeType":"VariableDeclarationStatement","src":"3527:13:8"},{"assignments":[2849],"declarations":[{"constant":false,"id":2849,"mutability":"mutable","name":"_returnData","nameLocation":"3563:11:8","nodeType":"VariableDeclaration","scope":2860,"src":"3550:24:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2848,"name":"bytes","nodeType":"ElementaryTypeName","src":"3550:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2854,"initialValue":{"arguments":[{"id":2852,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"3587:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":2851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3577:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2850,"name":"bytes","nodeType":"ElementaryTypeName","src":"3581:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3577:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3550:46:8"},{"AST":{"nodeType":"YulBlock","src":"3825:624:8","statements":[{"nodeType":"YulAssignment","src":"3839:227:8","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"3875:4:8"},{"name":"_target","nodeType":"YulIdentifier","src":"3900:7:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"3938:9:8"},{"kind":"number","nodeType":"YulLiteral","src":"3949:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3934:3:8"},"nodeType":"YulFunctionCall","src":"3934:20:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"3983:9:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3977:5:8"},"nodeType":"YulFunctionCall","src":"3977:16:8"},{"kind":"number","nodeType":"YulLiteral","src":"4016:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4041:1:8","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"3851:10:8"},"nodeType":"YulFunctionCall","src":"3851:215:8"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"3839:8:8"}]},{"nodeType":"YulAssignment","src":"4118:27:8","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4129:14:8"},"nodeType":"YulFunctionCall","src":"4129:16:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4118:7:8"}]},{"body":{"nodeType":"YulBlock","src":"4183:51:8","statements":[{"nodeType":"YulAssignment","src":"4201:19:8","value":{"name":"_maxCopy","nodeType":"YulIdentifier","src":"4212:8:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4201:7:8"}]}]},"condition":{"arguments":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4164:7:8"},{"name":"_maxCopy","nodeType":"YulIdentifier","src":"4173:8:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4161:2:8"},"nodeType":"YulFunctionCall","src":"4161:21:8"},"nodeType":"YulIf","src":"4158:76:8"},{"expression":{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"4302:11:8"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"4315:7:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4295:6:8"},"nodeType":"YulFunctionCall","src":"4295:28:8"},"nodeType":"YulExpressionStatement","src":"4295:28:8"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"4408:11:8"},{"kind":"number","nodeType":"YulLiteral","src":"4421:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4404:3:8"},"nodeType":"YulFunctionCall","src":"4404:22:8"},{"kind":"number","nodeType":"YulLiteral","src":"4428:1:8","type":"","value":"0"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"4431:7:8"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"4389:14:8"},"nodeType":"YulFunctionCall","src":"4389:50:8"},"nodeType":"YulExpressionStatement","src":"4389:50:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2835,"isOffset":false,"isSlot":false,"src":"3938:9:8","valueSize":1},{"declaration":2835,"isOffset":false,"isSlot":false,"src":"3983:9:8","valueSize":1},{"declaration":2831,"isOffset":false,"isSlot":false,"src":"3875:4:8","valueSize":1},{"declaration":2833,"isOffset":false,"isSlot":false,"src":"4173:8:8","valueSize":1},{"declaration":2833,"isOffset":false,"isSlot":false,"src":"4212:8:8","valueSize":1},{"declaration":2849,"isOffset":false,"isSlot":false,"src":"4302:11:8","valueSize":1},{"declaration":2849,"isOffset":false,"isSlot":false,"src":"4408:11:8","valueSize":1},{"declaration":2846,"isOffset":false,"isSlot":false,"src":"3839:8:8","valueSize":1},{"declaration":2829,"isOffset":false,"isSlot":false,"src":"3900:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4118:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4164:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4201:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4315:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4431:7:8","valueSize":1}],"id":2855,"nodeType":"InlineAssembly","src":"3816:633:8"},{"expression":{"components":[{"id":2856,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"4466:8:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2857,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2849,"src":"4476:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2858,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4465:23:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":2841,"id":2859,"nodeType":"Return","src":"4458:30:8"}]},"documentation":{"id":2827,"nodeType":"StructuredDocumentation","src":"2364:899:8","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":2861,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeStaticCall","nameLocation":"3277:25:8","nodeType":"FunctionDefinition","parameters":{"id":2836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2829,"mutability":"mutable","name":"_target","nameLocation":"3320:7:8","nodeType":"VariableDeclaration","scope":2861,"src":"3312:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2828,"name":"address","nodeType":"ElementaryTypeName","src":"3312:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2831,"mutability":"mutable","name":"_gas","nameLocation":"3345:4:8","nodeType":"VariableDeclaration","scope":2861,"src":"3337:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2830,"name":"uint256","nodeType":"ElementaryTypeName","src":"3337:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2833,"mutability":"mutable","name":"_maxCopy","nameLocation":"3366:8:8","nodeType":"VariableDeclaration","scope":2861,"src":"3359:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2832,"name":"uint16","nodeType":"ElementaryTypeName","src":"3359:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2835,"mutability":"mutable","name":"_calldata","nameLocation":"3397:9:8","nodeType":"VariableDeclaration","scope":2861,"src":"3384:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2834,"name":"bytes","nodeType":"ElementaryTypeName","src":"3384:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3302:110:8"},"returnParameters":{"id":2841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2861,"src":"3436:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2837,"name":"bool","nodeType":"ElementaryTypeName","src":"3436:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2861,"src":"3442:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2839,"name":"bytes","nodeType":"ElementaryTypeName","src":"3442:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3435:20:8"},"scope":2883,"src":"3268:1227:8","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2881,"nodeType":"Block","src":"5036:367:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2870,"name":"_buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2866,"src":"5054:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5054:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":2872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5069:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"5054:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2869,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5046:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5046:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2875,"nodeType":"ExpressionStatement","src":"5046:25:8"},{"assignments":[2877],"declarations":[{"constant":false,"id":2877,"mutability":"mutable","name":"_mask","nameLocation":"5089:5:8","nodeType":"VariableDeclaration","scope":2881,"src":"5081:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2876,"name":"uint256","nodeType":"ElementaryTypeName","src":"5081:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2879,"initialValue":{"id":2878,"name":"LOW_28_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2791,"src":"5097:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5081:27:8"},{"AST":{"nodeType":"YulBlock","src":"5127:270:8","statements":[{"nodeType":"YulVariableDeclaration","src":"5175:35:8","value":{"arguments":[{"arguments":[{"name":"_buf","nodeType":"YulIdentifier","src":"5198:4:8"},{"kind":"number","nodeType":"YulLiteral","src":"5204:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5194:3:8"},"nodeType":"YulFunctionCall","src":"5194:15:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5188:5:8"},"nodeType":"YulFunctionCall","src":"5188:22:8"},"variables":[{"name":"_word","nodeType":"YulTypedName","src":"5179:5:8","type":""}]},{"nodeType":"YulAssignment","src":"5273:26:8","value":{"arguments":[{"name":"_word","nodeType":"YulIdentifier","src":"5286:5:8"},{"name":"_mask","nodeType":"YulIdentifier","src":"5293:5:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5282:3:8"},"nodeType":"YulFunctionCall","src":"5282:17:8"},"variableNames":[{"name":"_word","nodeType":"YulIdentifier","src":"5273:5:8"}]},{"nodeType":"YulAssignment","src":"5312:32:8","value":{"arguments":[{"name":"_newSelector","nodeType":"YulIdentifier","src":"5324:12:8"},{"name":"_word","nodeType":"YulIdentifier","src":"5338:5:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5321:2:8"},"nodeType":"YulFunctionCall","src":"5321:23:8"},"variableNames":[{"name":"_word","nodeType":"YulIdentifier","src":"5312:5:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"_buf","nodeType":"YulIdentifier","src":"5368:4:8"},{"kind":"number","nodeType":"YulLiteral","src":"5374:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5364:3:8"},"nodeType":"YulFunctionCall","src":"5364:15:8"},{"name":"_word","nodeType":"YulIdentifier","src":"5381:5:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5357:6:8"},"nodeType":"YulFunctionCall","src":"5357:30:8"},"nodeType":"YulExpressionStatement","src":"5357:30:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2866,"isOffset":false,"isSlot":false,"src":"5198:4:8","valueSize":1},{"declaration":2866,"isOffset":false,"isSlot":false,"src":"5368:4:8","valueSize":1},{"declaration":2877,"isOffset":false,"isSlot":false,"src":"5293:5:8","valueSize":1},{"declaration":2864,"isOffset":false,"isSlot":false,"src":"5324:12:8","valueSize":1}],"id":2880,"nodeType":"InlineAssembly","src":"5118:279:8"}]},"documentation":{"id":2862,"nodeType":"StructuredDocumentation","src":"4501:442:8","text":" @notice Swaps function selectors in encoded contract calls\n @dev Allows reuse of encoded calldata for functions with identical\n argument types but different names. It simply swaps out the first 4 bytes\n for the new selector. This function modifies memory in place, and should\n only be used with caution.\n @param _newSelector The new 4-byte selector\n @param _buf The encoded contract args"},"id":2882,"implemented":true,"kind":"function","modifiers":[],"name":"swapSelector","nameLocation":"4957:12:8","nodeType":"FunctionDefinition","parameters":{"id":2867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2864,"mutability":"mutable","name":"_newSelector","nameLocation":"4977:12:8","nodeType":"VariableDeclaration","scope":2882,"src":"4970:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2863,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4970:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":2866,"mutability":"mutable","name":"_buf","nameLocation":"5004:4:8","nodeType":"VariableDeclaration","scope":2882,"src":"4991:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2865,"name":"bytes","nodeType":"ElementaryTypeName","src":"4991:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4969:40:8"},"returnParameters":{"id":2868,"nodeType":"ParameterList","parameters":[],"src":"5036:0:8"},"scope":2883,"src":"4948:455:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2884,"src":"72:5333:8","usedErrors":[]}],"src":"46:5360:8"},"id":8},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[3708],"Ownable":[2996]},"id":2997,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2885,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:9"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":2886,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2997,"sourceUnit":3709,"src":"127:30:9","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2888,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":3708,"src":"683:7:9"},"id":2889,"nodeType":"InheritanceSpecifier","src":"683:7:9"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2887,"nodeType":"StructuredDocumentation","src":"159:494:9","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":2996,"linearizedBaseContracts":[2996,3708],"name":"Ownable","nameLocation":"672:7:9","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":2891,"mutability":"mutable","name":"_owner","nameLocation":"713:6:9","nodeType":"VariableDeclaration","scope":2996,"src":"697:22:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2890,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"id":2897,"name":"OwnershipTransferred","nameLocation":"732:20:9","nodeType":"EventDefinition","parameters":{"id":2896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2893,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:9","nodeType":"VariableDeclaration","scope":2897,"src":"753:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2892,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2895,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:9","nodeType":"VariableDeclaration","scope":2897,"src":"784:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2894,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:9"},"src":"726:84:9"},{"body":{"id":2906,"nodeType":"Block","src":"926:49:9","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2902,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"955:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2901,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"936:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2905,"nodeType":"ExpressionStatement","src":"936:32:9"}]},"documentation":{"id":2898,"nodeType":"StructuredDocumentation","src":"816:91:9","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":2907,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2899,"nodeType":"ParameterList","parameters":[],"src":"923:2:9"},"returnParameters":{"id":2900,"nodeType":"ParameterList","parameters":[],"src":"926:0:9"},"scope":2996,"src":"912:63:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2914,"nodeType":"Block","src":"1084:41:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2910,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2938,"src":"1094:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":2911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2912,"nodeType":"ExpressionStatement","src":"1094:13:9"},{"id":2913,"nodeType":"PlaceholderStatement","src":"1117:1:9"}]},"documentation":{"id":2908,"nodeType":"StructuredDocumentation","src":"981:77:9","text":" @dev Throws if called by any account other than the owner."},"id":2915,"name":"onlyOwner","nameLocation":"1072:9:9","nodeType":"ModifierDefinition","parameters":{"id":2909,"nodeType":"ParameterList","parameters":[],"src":"1081:2:9"},"src":"1063:62:9","virtual":false,"visibility":"internal"},{"body":{"id":2923,"nodeType":"Block","src":"1256:30:9","statements":[{"expression":{"id":2921,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"1273:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2920,"id":2922,"nodeType":"Return","src":"1266:13:9"}]},"documentation":{"id":2916,"nodeType":"StructuredDocumentation","src":"1131:65:9","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":2924,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:9","nodeType":"FunctionDefinition","parameters":{"id":2917,"nodeType":"ParameterList","parameters":[],"src":"1215:2:9"},"returnParameters":{"id":2920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2924,"src":"1247:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2918,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:9"},"scope":2996,"src":"1201:85:9","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2937,"nodeType":"Block","src":"1404:85:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2929,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"1422:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2931,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1433:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":2934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":2928,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2936,"nodeType":"ExpressionStatement","src":"1414:68:9"}]},"documentation":{"id":2925,"nodeType":"StructuredDocumentation","src":"1292:62:9","text":" @dev Throws if the sender is not the owner."},"id":2938,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:9","nodeType":"FunctionDefinition","parameters":{"id":2926,"nodeType":"ParameterList","parameters":[],"src":"1379:2:9"},"returnParameters":{"id":2927,"nodeType":"ParameterList","parameters":[],"src":"1404:0:9"},"scope":2996,"src":"1359:130:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2951,"nodeType":"Block","src":"1885:47:9","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":2947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2945,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:9","typeDescriptions":{}}},"id":2948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2944,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"1895:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2950,"nodeType":"ExpressionStatement","src":"1895:30:9"}]},"documentation":{"id":2939,"nodeType":"StructuredDocumentation","src":"1495:331:9","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":2952,"implemented":true,"kind":"function","modifiers":[{"id":2942,"kind":"modifierInvocation","modifierName":{"id":2941,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"1875:9:9"},"nodeType":"ModifierInvocation","src":"1875:9:9"}],"name":"renounceOwnership","nameLocation":"1840:17:9","nodeType":"FunctionDefinition","parameters":{"id":2940,"nodeType":"ParameterList","parameters":[],"src":"1857:2:9"},"returnParameters":{"id":2943,"nodeType":"ParameterList","parameters":[],"src":"1885:0:9"},"scope":2996,"src":"1831:101:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2974,"nodeType":"Block","src":"2151:128:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2961,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2169:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2962,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:9","typeDescriptions":{}}},"id":2965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":2967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":2960,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2969,"nodeType":"ExpressionStatement","src":"2161:73:9"},{"expression":{"arguments":[{"id":2971,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2263:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2970,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"2244:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2973,"nodeType":"ExpressionStatement","src":"2244:28:9"}]},"documentation":{"id":2953,"nodeType":"StructuredDocumentation","src":"1938:138:9","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":2975,"implemented":true,"kind":"function","modifiers":[{"id":2958,"kind":"modifierInvocation","modifierName":{"id":2957,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"2141:9:9"},"nodeType":"ModifierInvocation","src":"2141:9:9"}],"name":"transferOwnership","nameLocation":"2090:17:9","nodeType":"FunctionDefinition","parameters":{"id":2956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2955,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:9","nodeType":"VariableDeclaration","scope":2975,"src":"2108:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2954,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:9"},"returnParameters":{"id":2959,"nodeType":"ParameterList","parameters":[],"src":"2151:0:9"},"scope":2996,"src":"2081:198:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2994,"nodeType":"Block","src":"2496:124:9","statements":[{"assignments":[2982],"declarations":[{"constant":false,"id":2982,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:9","nodeType":"VariableDeclaration","scope":2994,"src":"2506:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2981,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2984,"initialValue":{"id":2983,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"2525:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:9"},{"expression":{"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2985,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"2541:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2986,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"2550:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2988,"nodeType":"ExpressionStatement","src":"2541:17:9"},{"eventCall":{"arguments":[{"id":2990,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2982,"src":"2594:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2991,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"2604:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2989,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2897,"src":"2573:20:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2993,"nodeType":"EmitStatement","src":"2568:45:9"}]},"documentation":{"id":2976,"nodeType":"StructuredDocumentation","src":"2285:143:9","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":2995,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:9","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2978,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:9","nodeType":"VariableDeclaration","scope":2995,"src":"2461:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2977,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:9"},"returnParameters":{"id":2980,"nodeType":"ParameterList","parameters":[],"src":"2496:0:9"},"scope":2996,"src":"2433:187:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2997,"src":"654:1968:9","usedErrors":[]}],"src":"102:2521:9"},"id":9},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"IERC20":[3661],"IERC20Metadata":[3686]},"id":3584,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2998,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:10"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":2999,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3662,"src":"130:22:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":3000,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3687,"src":"153:41:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":3001,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3709,"src":"195:33:10","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3003,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":3708,"src":"1419:7:10"},"id":3004,"nodeType":"InheritanceSpecifier","src":"1419:7:10"},{"baseName":{"id":3005,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":3661,"src":"1428:6:10"},"id":3006,"nodeType":"InheritanceSpecifier","src":"1428:6:10"},{"baseName":{"id":3007,"name":"IERC20Metadata","nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"1436:14:10"},"id":3008,"nodeType":"InheritanceSpecifier","src":"1436:14:10"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":3002,"nodeType":"StructuredDocumentation","src":"230:1170:10","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":3583,"linearizedBaseContracts":[3583,3686,3661,3708],"name":"ERC20","nameLocation":"1410:5:10","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3012,"mutability":"mutable","name":"_balances","nameLocation":"1493:9:10","nodeType":"VariableDeclaration","scope":3583,"src":"1457:45:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3011,"keyType":{"id":3009,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1457:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3010,"name":"uint256","nodeType":"ElementaryTypeName","src":"1476:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":3018,"mutability":"mutable","name":"_allowances","nameLocation":"1565:11:10","nodeType":"VariableDeclaration","scope":3583,"src":"1509:67:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":3017,"keyType":{"id":3013,"name":"address","nodeType":"ElementaryTypeName","src":"1517:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1509:47:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":3016,"keyType":{"id":3014,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1528:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":3020,"mutability":"mutable","name":"_totalSupply","nameLocation":"1599:12:10","nodeType":"VariableDeclaration","scope":3583,"src":"1583:28:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1583:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3022,"mutability":"mutable","name":"_name","nameLocation":"1633:5:10","nodeType":"VariableDeclaration","scope":3583,"src":"1618:20:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3021,"name":"string","nodeType":"ElementaryTypeName","src":"1618:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":3024,"mutability":"mutable","name":"_symbol","nameLocation":"1659:7:10","nodeType":"VariableDeclaration","scope":3583,"src":"1644:22:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3023,"name":"string","nodeType":"ElementaryTypeName","src":"1644:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":3040,"nodeType":"Block","src":"2032:57:10","statements":[{"expression":{"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3032,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"2042:5:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3033,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3027,"src":"2050:5:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2042:13:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3035,"nodeType":"ExpressionStatement","src":"2042:13:10"},{"expression":{"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3036,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3024,"src":"2065:7:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3037,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2075:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2065:17:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3039,"nodeType":"ExpressionStatement","src":"2065:17:10"}]},"documentation":{"id":3025,"nodeType":"StructuredDocumentation","src":"1673:298:10","text":" @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."},"id":3041,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3027,"mutability":"mutable","name":"name_","nameLocation":"2002:5:10","nodeType":"VariableDeclaration","scope":3041,"src":"1988:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3026,"name":"string","nodeType":"ElementaryTypeName","src":"1988:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3029,"mutability":"mutable","name":"symbol_","nameLocation":"2023:7:10","nodeType":"VariableDeclaration","scope":3041,"src":"2009:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3028,"name":"string","nodeType":"ElementaryTypeName","src":"2009:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1987:44:10"},"returnParameters":{"id":3031,"nodeType":"ParameterList","parameters":[],"src":"2032:0:10"},"scope":3583,"src":"1976:113:10","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3673],"body":{"id":3050,"nodeType":"Block","src":"2223:29:10","statements":[{"expression":{"id":3048,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"2240:5:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":3047,"id":3049,"nodeType":"Return","src":"2233:12:10"}]},"documentation":{"id":3042,"nodeType":"StructuredDocumentation","src":"2095:54:10","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":3051,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2163:4:10","nodeType":"FunctionDefinition","overrides":{"id":3044,"nodeType":"OverrideSpecifier","overrides":[],"src":"2190:8:10"},"parameters":{"id":3043,"nodeType":"ParameterList","parameters":[],"src":"2167:2:10"},"returnParameters":{"id":3047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3051,"src":"2208:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3045,"name":"string","nodeType":"ElementaryTypeName","src":"2208:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2207:15:10"},"scope":3583,"src":"2154:98:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3679],"body":{"id":3060,"nodeType":"Block","src":"2436:31:10","statements":[{"expression":{"id":3058,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3024,"src":"2453:7:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":3057,"id":3059,"nodeType":"Return","src":"2446:14:10"}]},"documentation":{"id":3052,"nodeType":"StructuredDocumentation","src":"2258:102:10","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":3061,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2374:6:10","nodeType":"FunctionDefinition","overrides":{"id":3054,"nodeType":"OverrideSpecifier","overrides":[],"src":"2403:8:10"},"parameters":{"id":3053,"nodeType":"ParameterList","parameters":[],"src":"2380:2:10"},"returnParameters":{"id":3057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3061,"src":"2421:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3055,"name":"string","nodeType":"ElementaryTypeName","src":"2421:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2420:15:10"},"scope":3583,"src":"2365:102:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3685],"body":{"id":3070,"nodeType":"Block","src":"3156:26:10","statements":[{"expression":{"hexValue":"3138","id":3068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3173:2:10","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":3067,"id":3069,"nodeType":"Return","src":"3166:9:10"}]},"documentation":{"id":3062,"nodeType":"StructuredDocumentation","src":"2473:613:10","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":3071,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3100:8:10","nodeType":"FunctionDefinition","overrides":{"id":3064,"nodeType":"OverrideSpecifier","overrides":[],"src":"3131:8:10"},"parameters":{"id":3063,"nodeType":"ParameterList","parameters":[],"src":"3108:2:10"},"returnParameters":{"id":3067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3071,"src":"3149:5:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3065,"name":"uint8","nodeType":"ElementaryTypeName","src":"3149:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3148:7:10"},"scope":3583,"src":"3091:91:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3610],"body":{"id":3080,"nodeType":"Block","src":"3312:36:10","statements":[{"expression":{"id":3078,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"3329:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3077,"id":3079,"nodeType":"Return","src":"3322:19:10"}]},"documentation":{"id":3072,"nodeType":"StructuredDocumentation","src":"3188:49:10","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":3081,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3251:11:10","nodeType":"FunctionDefinition","overrides":{"id":3074,"nodeType":"OverrideSpecifier","overrides":[],"src":"3285:8:10"},"parameters":{"id":3073,"nodeType":"ParameterList","parameters":[],"src":"3262:2:10"},"returnParameters":{"id":3077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3081,"src":"3303:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3303:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3302:9:10"},"scope":3583,"src":"3242:106:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3618],"body":{"id":3094,"nodeType":"Block","src":"3489:42:10","statements":[{"expression":{"baseExpression":{"id":3090,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"3506:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3092,"indexExpression":{"id":3091,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3084,"src":"3516:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3506:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3089,"id":3093,"nodeType":"Return","src":"3499:25:10"}]},"documentation":{"id":3082,"nodeType":"StructuredDocumentation","src":"3354:47:10","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":3095,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3415:9:10","nodeType":"FunctionDefinition","overrides":{"id":3086,"nodeType":"OverrideSpecifier","overrides":[],"src":"3462:8:10"},"parameters":{"id":3085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3084,"mutability":"mutable","name":"account","nameLocation":"3433:7:10","nodeType":"VariableDeclaration","scope":3095,"src":"3425:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3083,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3424:17:10"},"returnParameters":{"id":3089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3095,"src":"3480:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3087,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3479:9:10"},"scope":3583,"src":"3406:125:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3628],"body":{"id":3119,"nodeType":"Block","src":"3812:104:10","statements":[{"assignments":[3107],"declarations":[{"constant":false,"id":3107,"mutability":"mutable","name":"owner","nameLocation":"3830:5:10","nodeType":"VariableDeclaration","scope":3119,"src":"3822:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3106,"name":"address","nodeType":"ElementaryTypeName","src":"3822:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3110,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3108,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"3838:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3838:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3822:28:10"},{"expression":{"arguments":[{"id":3112,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"3870:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3113,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"3877:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3114,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3100,"src":"3881:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3111,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"3860:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3116,"nodeType":"ExpressionStatement","src":"3860:28:10"},{"expression":{"hexValue":"74727565","id":3117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3905:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3105,"id":3118,"nodeType":"Return","src":"3898:11:10"}]},"documentation":{"id":3096,"nodeType":"StructuredDocumentation","src":"3537:185:10","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":3120,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3736:8:10","nodeType":"FunctionDefinition","overrides":{"id":3102,"nodeType":"OverrideSpecifier","overrides":[],"src":"3788:8:10"},"parameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3098,"mutability":"mutable","name":"to","nameLocation":"3753:2:10","nodeType":"VariableDeclaration","scope":3120,"src":"3745:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3097,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3100,"mutability":"mutable","name":"amount","nameLocation":"3765:6:10","nodeType":"VariableDeclaration","scope":3120,"src":"3757:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3099,"name":"uint256","nodeType":"ElementaryTypeName","src":"3757:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3744:28:10"},"returnParameters":{"id":3105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3120,"src":"3806:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3103,"name":"bool","nodeType":"ElementaryTypeName","src":"3806:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3805:6:10"},"scope":3583,"src":"3727:189:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3638],"body":{"id":3137,"nodeType":"Block","src":"4072:51:10","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":3131,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"4089:11:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3133,"indexExpression":{"id":3132,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3123,"src":"4101:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:18:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3135,"indexExpression":{"id":3134,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3125,"src":"4108:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3130,"id":3136,"nodeType":"Return","src":"4082:34:10"}]},"documentation":{"id":3121,"nodeType":"StructuredDocumentation","src":"3922:47:10","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":3138,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3983:9:10","nodeType":"FunctionDefinition","overrides":{"id":3127,"nodeType":"OverrideSpecifier","overrides":[],"src":"4045:8:10"},"parameters":{"id":3126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3123,"mutability":"mutable","name":"owner","nameLocation":"4001:5:10","nodeType":"VariableDeclaration","scope":3138,"src":"3993:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3122,"name":"address","nodeType":"ElementaryTypeName","src":"3993:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3125,"mutability":"mutable","name":"spender","nameLocation":"4016:7:10","nodeType":"VariableDeclaration","scope":3138,"src":"4008:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3124,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3992:32:10"},"returnParameters":{"id":3130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3138,"src":"4063:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3128,"name":"uint256","nodeType":"ElementaryTypeName","src":"4063:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4062:9:10"},"scope":3583,"src":"3974:149:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3648],"body":{"id":3162,"nodeType":"Block","src":"4520:108:10","statements":[{"assignments":[3150],"declarations":[{"constant":false,"id":3150,"mutability":"mutable","name":"owner","nameLocation":"4538:5:10","nodeType":"VariableDeclaration","scope":3162,"src":"4530:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3149,"name":"address","nodeType":"ElementaryTypeName","src":"4530:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3153,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3151,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"4546:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4546:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4530:28:10"},{"expression":{"arguments":[{"id":3155,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"4577:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3156,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3141,"src":"4584:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3157,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"4593:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3154,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"4568:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4568:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3159,"nodeType":"ExpressionStatement","src":"4568:32:10"},{"expression":{"hexValue":"74727565","id":3160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4617:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3148,"id":3161,"nodeType":"Return","src":"4610:11:10"}]},"documentation":{"id":3139,"nodeType":"StructuredDocumentation","src":"4129:297:10","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":3163,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4440:7:10","nodeType":"FunctionDefinition","overrides":{"id":3145,"nodeType":"OverrideSpecifier","overrides":[],"src":"4496:8:10"},"parameters":{"id":3144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3141,"mutability":"mutable","name":"spender","nameLocation":"4456:7:10","nodeType":"VariableDeclaration","scope":3163,"src":"4448:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3140,"name":"address","nodeType":"ElementaryTypeName","src":"4448:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3143,"mutability":"mutable","name":"amount","nameLocation":"4473:6:10","nodeType":"VariableDeclaration","scope":3163,"src":"4465:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3142,"name":"uint256","nodeType":"ElementaryTypeName","src":"4465:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4447:33:10"},"returnParameters":{"id":3148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3163,"src":"4514:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3146,"name":"bool","nodeType":"ElementaryTypeName","src":"4514:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4513:6:10"},"scope":3583,"src":"4431:197:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3660],"body":{"id":3195,"nodeType":"Block","src":"5323:153:10","statements":[{"assignments":[3177],"declarations":[{"constant":false,"id":3177,"mutability":"mutable","name":"spender","nameLocation":"5341:7:10","nodeType":"VariableDeclaration","scope":3195,"src":"5333:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3176,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3180,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3178,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"5351:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5351:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5333:30:10"},{"expression":{"arguments":[{"id":3182,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"5389:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3183,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"5395:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3184,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"5404:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3181,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"5373:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5373:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3186,"nodeType":"ExpressionStatement","src":"5373:38:10"},{"expression":{"arguments":[{"id":3188,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"5431:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3189,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3168,"src":"5437:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3190,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"5441:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3187,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"5421:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5421:27:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3192,"nodeType":"ExpressionStatement","src":"5421:27:10"},{"expression":{"hexValue":"74727565","id":3193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5465:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3175,"id":3194,"nodeType":"Return","src":"5458:11:10"}]},"documentation":{"id":3164,"nodeType":"StructuredDocumentation","src":"4634:551:10","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":3196,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5199:12:10","nodeType":"FunctionDefinition","overrides":{"id":3172,"nodeType":"OverrideSpecifier","overrides":[],"src":"5299:8:10"},"parameters":{"id":3171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3166,"mutability":"mutable","name":"from","nameLocation":"5229:4:10","nodeType":"VariableDeclaration","scope":3196,"src":"5221:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3165,"name":"address","nodeType":"ElementaryTypeName","src":"5221:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3168,"mutability":"mutable","name":"to","nameLocation":"5251:2:10","nodeType":"VariableDeclaration","scope":3196,"src":"5243:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3167,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3170,"mutability":"mutable","name":"amount","nameLocation":"5271:6:10","nodeType":"VariableDeclaration","scope":3196,"src":"5263:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3169,"name":"uint256","nodeType":"ElementaryTypeName","src":"5263:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5211:72:10"},"returnParameters":{"id":3175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3196,"src":"5317:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3173,"name":"bool","nodeType":"ElementaryTypeName","src":"5317:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5316:6:10"},"scope":3583,"src":"5190:286:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3224,"nodeType":"Block","src":"5965:140:10","statements":[{"assignments":[3207],"declarations":[{"constant":false,"id":3207,"mutability":"mutable","name":"owner","nameLocation":"5983:5:10","nodeType":"VariableDeclaration","scope":3224,"src":"5975:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3206,"name":"address","nodeType":"ElementaryTypeName","src":"5975:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3210,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3208,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"5991:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5991:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5975:28:10"},{"expression":{"arguments":[{"id":3212,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"6022:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3213,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"6029:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3215,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"6048:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3216,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"6055:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3214,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"6038:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6038:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3218,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3201,"src":"6066:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6038:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3211,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"6013:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6013:64:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3221,"nodeType":"ExpressionStatement","src":"6013:64:10"},{"expression":{"hexValue":"74727565","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6094:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3205,"id":3223,"nodeType":"Return","src":"6087:11:10"}]},"documentation":{"id":3197,"nodeType":"StructuredDocumentation","src":"5482:384:10","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":3225,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5880:17:10","nodeType":"FunctionDefinition","parameters":{"id":3202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3199,"mutability":"mutable","name":"spender","nameLocation":"5906:7:10","nodeType":"VariableDeclaration","scope":3225,"src":"5898:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3198,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3201,"mutability":"mutable","name":"addedValue","nameLocation":"5923:10:10","nodeType":"VariableDeclaration","scope":3225,"src":"5915:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3200,"name":"uint256","nodeType":"ElementaryTypeName","src":"5915:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5897:37:10"},"returnParameters":{"id":3205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3225,"src":"5959:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3203,"name":"bool","nodeType":"ElementaryTypeName","src":"5959:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5958:6:10"},"scope":3583,"src":"5871:234:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3265,"nodeType":"Block","src":"6691:328:10","statements":[{"assignments":[3236],"declarations":[{"constant":false,"id":3236,"mutability":"mutable","name":"owner","nameLocation":"6709:5:10","nodeType":"VariableDeclaration","scope":3265,"src":"6701:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3235,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3239,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3237,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"6717:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6717:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6701:28:10"},{"assignments":[3241],"declarations":[{"constant":false,"id":3241,"mutability":"mutable","name":"currentAllowance","nameLocation":"6747:16:10","nodeType":"VariableDeclaration","scope":3265,"src":"6739:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3240,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3246,"initialValue":{"arguments":[{"id":3243,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3236,"src":"6776:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3244,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3228,"src":"6783:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3242,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"6766:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6766:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6739:52:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3248,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"6809:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3249,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3230,"src":"6829:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6809:35:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":3251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6846:39:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":3247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6801:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6801:85:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3253,"nodeType":"ExpressionStatement","src":"6801:85:10"},{"id":3262,"nodeType":"UncheckedBlock","src":"6896:95:10","statements":[{"expression":{"arguments":[{"id":3255,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3236,"src":"6929:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3256,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3228,"src":"6936:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3257,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"6945:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3258,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3230,"src":"6964:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6945:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3254,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"6920:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6920:60:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3261,"nodeType":"ExpressionStatement","src":"6920:60:10"}]},{"expression":{"hexValue":"74727565","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7008:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3234,"id":3264,"nodeType":"Return","src":"7001:11:10"}]},"documentation":{"id":3226,"nodeType":"StructuredDocumentation","src":"6111:476:10","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":3266,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6601:17:10","nodeType":"FunctionDefinition","parameters":{"id":3231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3228,"mutability":"mutable","name":"spender","nameLocation":"6627:7:10","nodeType":"VariableDeclaration","scope":3266,"src":"6619:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3227,"name":"address","nodeType":"ElementaryTypeName","src":"6619:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3230,"mutability":"mutable","name":"subtractedValue","nameLocation":"6644:15:10","nodeType":"VariableDeclaration","scope":3266,"src":"6636:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3229,"name":"uint256","nodeType":"ElementaryTypeName","src":"6636:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6618:42:10"},"returnParameters":{"id":3234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3266,"src":"6685:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3232,"name":"bool","nodeType":"ElementaryTypeName","src":"6685:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6684:6:10"},"scope":3583,"src":"6592:427:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3342,"nodeType":"Block","src":"7581:710:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3277,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7599:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7607:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3278,"name":"address","nodeType":"ElementaryTypeName","src":"7607:7:10","typeDescriptions":{}}},"id":3281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7607:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7599:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":3283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7619:39:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":3276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7591:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7591:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3285,"nodeType":"ExpressionStatement","src":"7591:68:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3287,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"7677:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7691:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7683:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3288,"name":"address","nodeType":"ElementaryTypeName","src":"7683:7:10","typeDescriptions":{}}},"id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7683:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7677:16:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7695:37:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":3286,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7669:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7669:64:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3295,"nodeType":"ExpressionStatement","src":"7669:64:10"},{"expression":{"arguments":[{"id":3297,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7765:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3298,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"7771:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3299,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7775:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3296,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"7744:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7744:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3301,"nodeType":"ExpressionStatement","src":"7744:38:10"},{"assignments":[3303],"declarations":[{"constant":false,"id":3303,"mutability":"mutable","name":"fromBalance","nameLocation":"7801:11:10","nodeType":"VariableDeclaration","scope":3342,"src":"7793:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3302,"name":"uint256","nodeType":"ElementaryTypeName","src":"7793:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3307,"initialValue":{"baseExpression":{"id":3304,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"7815:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3306,"indexExpression":{"id":3305,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7825:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7815:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7793:37:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3309,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"7848:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3310,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7863:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7848:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":3312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7871:40:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":3308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7840:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7840:72:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3314,"nodeType":"ExpressionStatement","src":"7840:72:10"},{"id":3329,"nodeType":"UncheckedBlock","src":"7922:273:10","statements":[{"expression":{"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3315,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"7946:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3317,"indexExpression":{"id":3316,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7956:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7946:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3318,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"7964:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3319,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7978:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7964:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7946:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3322,"nodeType":"ExpressionStatement","src":"7946:38:10"},{"expression":{"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3323,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"8161:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3325,"indexExpression":{"id":3324,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8171:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8161:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3326,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8178:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8161:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3328,"nodeType":"ExpressionStatement","src":"8161:23:10"}]},{"eventCall":{"arguments":[{"id":3331,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"8219:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3332,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8225:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3333,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8229:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3330,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"8210:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8210:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3335,"nodeType":"EmitStatement","src":"8205:31:10"},{"expression":{"arguments":[{"id":3337,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"8267:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3338,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8273:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3339,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8277:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3336,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"8247:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8247:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3341,"nodeType":"ExpressionStatement","src":"8247:37:10"}]},"documentation":{"id":3267,"nodeType":"StructuredDocumentation","src":"7025:443:10","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":3343,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7482:9:10","nodeType":"FunctionDefinition","parameters":{"id":3274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3269,"mutability":"mutable","name":"from","nameLocation":"7509:4:10","nodeType":"VariableDeclaration","scope":3343,"src":"7501:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3268,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3271,"mutability":"mutable","name":"to","nameLocation":"7531:2:10","nodeType":"VariableDeclaration","scope":3343,"src":"7523:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3270,"name":"address","nodeType":"ElementaryTypeName","src":"7523:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3273,"mutability":"mutable","name":"amount","nameLocation":"7551:6:10","nodeType":"VariableDeclaration","scope":3343,"src":"7543:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3272,"name":"uint256","nodeType":"ElementaryTypeName","src":"7543:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7491:72:10"},"returnParameters":{"id":3275,"nodeType":"ParameterList","parameters":[],"src":"7581:0:10"},"scope":3583,"src":"7473:818:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3399,"nodeType":"Block","src":"8632:470:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3352,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8650:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8669:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8661:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3353,"name":"address","nodeType":"ElementaryTypeName","src":"8661:7:10","typeDescriptions":{}}},"id":3356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8661:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8650:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":3358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8673:33:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":3351,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8642:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8642:65:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3360,"nodeType":"ExpressionStatement","src":"8642:65:10"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8747:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8739:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3362,"name":"address","nodeType":"ElementaryTypeName","src":"8739:7:10","typeDescriptions":{}}},"id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8739:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3366,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8751:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3367,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8760:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3361,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"8718:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8718:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3369,"nodeType":"ExpressionStatement","src":"8718:49:10"},{"expression":{"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3370,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"8778:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3371,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8794:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8778:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3373,"nodeType":"ExpressionStatement","src":"8778:22:10"},{"id":3380,"nodeType":"UncheckedBlock","src":"8810:175:10","statements":[{"expression":{"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3374,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"8946:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3376,"indexExpression":{"id":3375,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8956:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8946:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3377,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8968:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8946:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3379,"nodeType":"ExpressionStatement","src":"8946:28:10"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9016:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9008:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3382,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:10","typeDescriptions":{}}},"id":3385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9008:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3386,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"9020:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3387,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"9029:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3381,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"8999:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8999:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3389,"nodeType":"EmitStatement","src":"8994:42:10"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9075:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9067:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3391,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:10","typeDescriptions":{}}},"id":3394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9067:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3395,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"9079:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"9088:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3390,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"9047:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9047:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3398,"nodeType":"ExpressionStatement","src":"9047:48:10"}]},"documentation":{"id":3344,"nodeType":"StructuredDocumentation","src":"8297:265:10","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":3400,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8576:5:10","nodeType":"FunctionDefinition","parameters":{"id":3349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3346,"mutability":"mutable","name":"account","nameLocation":"8590:7:10","nodeType":"VariableDeclaration","scope":3400,"src":"8582:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3345,"name":"address","nodeType":"ElementaryTypeName","src":"8582:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3348,"mutability":"mutable","name":"amount","nameLocation":"8607:6:10","nodeType":"VariableDeclaration","scope":3400,"src":"8599:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3347,"name":"uint256","nodeType":"ElementaryTypeName","src":"8599:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8581:33:10"},"returnParameters":{"id":3350,"nodeType":"ParameterList","parameters":[],"src":"8632:0:10"},"scope":3583,"src":"8567:535:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3471,"nodeType":"Block","src":"9487:594:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3409,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9505:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9524:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3410,"name":"address","nodeType":"ElementaryTypeName","src":"9516:7:10","typeDescriptions":{}}},"id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9516:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9505:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":3415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9528:35:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":3408,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9497:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9497:67:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3417,"nodeType":"ExpressionStatement","src":"9497:67:10"},{"expression":{"arguments":[{"id":3419,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9596:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9613:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9605:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3420,"name":"address","nodeType":"ElementaryTypeName","src":"9605:7:10","typeDescriptions":{}}},"id":3423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9605:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3424,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9617:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3418,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"9575:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9575:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3426,"nodeType":"ExpressionStatement","src":"9575:49:10"},{"assignments":[3428],"declarations":[{"constant":false,"id":3428,"mutability":"mutable","name":"accountBalance","nameLocation":"9643:14:10","nodeType":"VariableDeclaration","scope":3471,"src":"9635:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3427,"name":"uint256","nodeType":"ElementaryTypeName","src":"9635:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3432,"initialValue":{"baseExpression":{"id":3429,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"9660:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3431,"indexExpression":{"id":3430,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9670:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9660:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9635:43:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3434,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"9696:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3435,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9714:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9696:24:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":3437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9722:36:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":3433,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9688:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9688:71:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3439,"nodeType":"ExpressionStatement","src":"9688:71:10"},{"id":3452,"nodeType":"UncheckedBlock","src":"9769:194:10","statements":[{"expression":{"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3440,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"9793:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3442,"indexExpression":{"id":3441,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9803:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9793:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3443,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"9814:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3444,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9831:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9814:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9793:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3447,"nodeType":"ExpressionStatement","src":"9793:44:10"},{"expression":{"id":3450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3448,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"9930:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":3449,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9946:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9930:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3451,"nodeType":"ExpressionStatement","src":"9930:22:10"}]},{"eventCall":{"arguments":[{"id":3454,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9987:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10004:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9996:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3455,"name":"address","nodeType":"ElementaryTypeName","src":"9996:7:10","typeDescriptions":{}}},"id":3458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9996:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3459,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"10008:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3453,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"9978:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9978:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3461,"nodeType":"EmitStatement","src":"9973:42:10"},{"expression":{"arguments":[{"id":3463,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"10046:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10063:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10055:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3464,"name":"address","nodeType":"ElementaryTypeName","src":"10055:7:10","typeDescriptions":{}}},"id":3467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10055:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3468,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"10067:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3462,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"10026:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10026:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3470,"nodeType":"ExpressionStatement","src":"10026:48:10"}]},"documentation":{"id":3401,"nodeType":"StructuredDocumentation","src":"9108:309:10","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":3472,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9431:5:10","nodeType":"FunctionDefinition","parameters":{"id":3406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3403,"mutability":"mutable","name":"account","nameLocation":"9445:7:10","nodeType":"VariableDeclaration","scope":3472,"src":"9437:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3402,"name":"address","nodeType":"ElementaryTypeName","src":"9437:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3405,"mutability":"mutable","name":"amount","nameLocation":"9462:6:10","nodeType":"VariableDeclaration","scope":3472,"src":"9454:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3404,"name":"uint256","nodeType":"ElementaryTypeName","src":"9454:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9436:33:10"},"returnParameters":{"id":3407,"nodeType":"ParameterList","parameters":[],"src":"9487:0:10"},"scope":3583,"src":"9422:659:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3516,"nodeType":"Block","src":"10617:257:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3483,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10635:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10652:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10644:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3484,"name":"address","nodeType":"ElementaryTypeName","src":"10644:7:10","typeDescriptions":{}}},"id":3487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10644:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10635:19:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":3489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10656:38:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":3482,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10627:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10627:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3491,"nodeType":"ExpressionStatement","src":"10627:68:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3493,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10713:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10732:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10724:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3494,"name":"address","nodeType":"ElementaryTypeName","src":"10724:7:10","typeDescriptions":{}}},"id":3497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10724:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10713:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10736:36:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":3492,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10705:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10705:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3501,"nodeType":"ExpressionStatement","src":"10705:68:10"},{"expression":{"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":3502,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"10784:11:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3505,"indexExpression":{"id":3503,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10796:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10784:18:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3506,"indexExpression":{"id":3504,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10803:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10784:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3507,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"10814:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10784:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3509,"nodeType":"ExpressionStatement","src":"10784:36:10"},{"eventCall":{"arguments":[{"id":3511,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10844:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3512,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10851:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3513,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"10860:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3510,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"10835:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10835:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3515,"nodeType":"EmitStatement","src":"10830:37:10"}]},"documentation":{"id":3473,"nodeType":"StructuredDocumentation","src":"10087:412:10","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":3517,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10513:8:10","nodeType":"FunctionDefinition","parameters":{"id":3480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3475,"mutability":"mutable","name":"owner","nameLocation":"10539:5:10","nodeType":"VariableDeclaration","scope":3517,"src":"10531:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3474,"name":"address","nodeType":"ElementaryTypeName","src":"10531:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3477,"mutability":"mutable","name":"spender","nameLocation":"10562:7:10","nodeType":"VariableDeclaration","scope":3517,"src":"10554:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3476,"name":"address","nodeType":"ElementaryTypeName","src":"10554:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3479,"mutability":"mutable","name":"amount","nameLocation":"10587:6:10","nodeType":"VariableDeclaration","scope":3517,"src":"10579:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3478,"name":"uint256","nodeType":"ElementaryTypeName","src":"10579:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10521:78:10"},"returnParameters":{"id":3481,"nodeType":"ParameterList","parameters":[],"src":"10617:0:10"},"scope":3583,"src":"10504:370:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3559,"nodeType":"Block","src":"11275:321:10","statements":[{"assignments":[3528],"declarations":[{"constant":false,"id":3528,"mutability":"mutable","name":"currentAllowance","nameLocation":"11293:16:10","nodeType":"VariableDeclaration","scope":3559,"src":"11285:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3527,"name":"uint256","nodeType":"ElementaryTypeName","src":"11285:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3533,"initialValue":{"arguments":[{"id":3530,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3520,"src":"11322:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3531,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"11329:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3529,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"11312:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11312:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11285:52:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3534,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11351:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":3537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11376:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3536,"name":"uint256","nodeType":"ElementaryTypeName","src":"11376:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":3535,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11371:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11371:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":3539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"11371:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11351:37:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3558,"nodeType":"IfStatement","src":"11347:243:10","trueBody":{"id":3557,"nodeType":"Block","src":"11390:200:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3542,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11412:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3543,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"11432:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11412:26:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":3545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11440:31:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":3541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11404:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11404:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3547,"nodeType":"ExpressionStatement","src":"11404:68:10"},{"id":3556,"nodeType":"UncheckedBlock","src":"11486:94:10","statements":[{"expression":{"arguments":[{"id":3549,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3520,"src":"11523:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3550,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"11530:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3551,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11539:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3552,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"11558:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11539:25:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3548,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"11514:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11514:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3555,"nodeType":"ExpressionStatement","src":"11514:51:10"}]}]}}]},"documentation":{"id":3518,"nodeType":"StructuredDocumentation","src":"10880:270:10","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":3560,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11164:15:10","nodeType":"FunctionDefinition","parameters":{"id":3525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3520,"mutability":"mutable","name":"owner","nameLocation":"11197:5:10","nodeType":"VariableDeclaration","scope":3560,"src":"11189:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3519,"name":"address","nodeType":"ElementaryTypeName","src":"11189:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3522,"mutability":"mutable","name":"spender","nameLocation":"11220:7:10","nodeType":"VariableDeclaration","scope":3560,"src":"11212:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3521,"name":"address","nodeType":"ElementaryTypeName","src":"11212:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3524,"mutability":"mutable","name":"amount","nameLocation":"11245:6:10","nodeType":"VariableDeclaration","scope":3560,"src":"11237:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3523,"name":"uint256","nodeType":"ElementaryTypeName","src":"11237:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11179:78:10"},"returnParameters":{"id":3526,"nodeType":"ParameterList","parameters":[],"src":"11275:0:10"},"scope":3583,"src":"11155:441:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3570,"nodeType":"Block","src":"12299:2:10","statements":[]},"documentation":{"id":3561,"nodeType":"StructuredDocumentation","src":"11602:573:10","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":3571,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12189:20:10","nodeType":"FunctionDefinition","parameters":{"id":3568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3563,"mutability":"mutable","name":"from","nameLocation":"12227:4:10","nodeType":"VariableDeclaration","scope":3571,"src":"12219:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3562,"name":"address","nodeType":"ElementaryTypeName","src":"12219:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3565,"mutability":"mutable","name":"to","nameLocation":"12249:2:10","nodeType":"VariableDeclaration","scope":3571,"src":"12241:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3564,"name":"address","nodeType":"ElementaryTypeName","src":"12241:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3567,"mutability":"mutable","name":"amount","nameLocation":"12269:6:10","nodeType":"VariableDeclaration","scope":3571,"src":"12261:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3566,"name":"uint256","nodeType":"ElementaryTypeName","src":"12261:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:72:10"},"returnParameters":{"id":3569,"nodeType":"ParameterList","parameters":[],"src":"12299:0:10"},"scope":3583,"src":"12180:121:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3581,"nodeType":"Block","src":"13007:2:10","statements":[]},"documentation":{"id":3572,"nodeType":"StructuredDocumentation","src":"12307:577:10","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":3582,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12898:19:10","nodeType":"FunctionDefinition","parameters":{"id":3579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3574,"mutability":"mutable","name":"from","nameLocation":"12935:4:10","nodeType":"VariableDeclaration","scope":3582,"src":"12927:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3573,"name":"address","nodeType":"ElementaryTypeName","src":"12927:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3576,"mutability":"mutable","name":"to","nameLocation":"12957:2:10","nodeType":"VariableDeclaration","scope":3582,"src":"12949:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3575,"name":"address","nodeType":"ElementaryTypeName","src":"12949:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3578,"mutability":"mutable","name":"amount","nameLocation":"12977:6:10","nodeType":"VariableDeclaration","scope":3582,"src":"12969:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"12969:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12917:72:10"},"returnParameters":{"id":3580,"nodeType":"ParameterList","parameters":[],"src":"13007:0:10"},"scope":3583,"src":"12889:120:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3584,"src":"1401:11610:10","usedErrors":[]}],"src":"105:12907:10"},"id":10},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[3661]},"id":3662,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3585,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":3586,"nodeType":"StructuredDocumentation","src":"131:70:11","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":3661,"linearizedBaseContracts":[3661],"name":"IERC20","nameLocation":"212:6:11","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":3587,"nodeType":"StructuredDocumentation","src":"225:158:11","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"id":3595,"name":"Transfer","nameLocation":"394:8:11","nodeType":"EventDefinition","parameters":{"id":3594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3589,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:11","nodeType":"VariableDeclaration","scope":3595,"src":"403:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3588,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3591,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:11","nodeType":"VariableDeclaration","scope":3595,"src":"425:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3590,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3593,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:11","nodeType":"VariableDeclaration","scope":3595,"src":"445:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3592,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:11"},"src":"388:72:11"},{"anonymous":false,"documentation":{"id":3596,"nodeType":"StructuredDocumentation","src":"466:148:11","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"id":3604,"name":"Approval","nameLocation":"625:8:11","nodeType":"EventDefinition","parameters":{"id":3603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3598,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:11","nodeType":"VariableDeclaration","scope":3604,"src":"634:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3597,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3600,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:11","nodeType":"VariableDeclaration","scope":3604,"src":"657:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3599,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3602,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:11","nodeType":"VariableDeclaration","scope":3604,"src":"682:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3601,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:11"},"src":"619:78:11"},{"documentation":{"id":3605,"nodeType":"StructuredDocumentation","src":"703:66:11","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":3610,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:11","nodeType":"FunctionDefinition","parameters":{"id":3606,"nodeType":"ParameterList","parameters":[],"src":"794:2:11"},"returnParameters":{"id":3609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3610,"src":"820:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3607,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:11"},"scope":3661,"src":"774:55:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3611,"nodeType":"StructuredDocumentation","src":"835:72:11","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":3618,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:11","nodeType":"FunctionDefinition","parameters":{"id":3614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3613,"mutability":"mutable","name":"account","nameLocation":"939:7:11","nodeType":"VariableDeclaration","scope":3618,"src":"931:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3612,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:11"},"returnParameters":{"id":3617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3618,"src":"971:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3615,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:11"},"scope":3661,"src":"912:68:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3619,"nodeType":"StructuredDocumentation","src":"986:202:11","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":3628,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:11","nodeType":"FunctionDefinition","parameters":{"id":3624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3621,"mutability":"mutable","name":"to","nameLocation":"1219:2:11","nodeType":"VariableDeclaration","scope":3628,"src":"1211:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3620,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3623,"mutability":"mutable","name":"amount","nameLocation":"1231:6:11","nodeType":"VariableDeclaration","scope":3628,"src":"1223:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:11"},"returnParameters":{"id":3627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3628,"src":"1257:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3625,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:11"},"scope":3661,"src":"1193:70:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3629,"nodeType":"StructuredDocumentation","src":"1269:264:11","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":3638,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:11","nodeType":"FunctionDefinition","parameters":{"id":3634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3631,"mutability":"mutable","name":"owner","nameLocation":"1565:5:11","nodeType":"VariableDeclaration","scope":3638,"src":"1557:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3630,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3633,"mutability":"mutable","name":"spender","nameLocation":"1580:7:11","nodeType":"VariableDeclaration","scope":3638,"src":"1572:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3632,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:11"},"returnParameters":{"id":3637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3638,"src":"1612:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:11"},"scope":3661,"src":"1538:83:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3639,"nodeType":"StructuredDocumentation","src":"1627:642:11","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":3648,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:11","nodeType":"FunctionDefinition","parameters":{"id":3644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3641,"mutability":"mutable","name":"spender","nameLocation":"2299:7:11","nodeType":"VariableDeclaration","scope":3648,"src":"2291:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3640,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3643,"mutability":"mutable","name":"amount","nameLocation":"2316:6:11","nodeType":"VariableDeclaration","scope":3648,"src":"2308:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3642,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:11"},"returnParameters":{"id":3647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3648,"src":"2342:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3645,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:11"},"scope":3661,"src":"2274:74:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3649,"nodeType":"StructuredDocumentation","src":"2354:287:11","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":3660,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:11","nodeType":"FunctionDefinition","parameters":{"id":3656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3651,"mutability":"mutable","name":"from","nameLocation":"2685:4:11","nodeType":"VariableDeclaration","scope":3660,"src":"2677:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3650,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3653,"mutability":"mutable","name":"to","nameLocation":"2707:2:11","nodeType":"VariableDeclaration","scope":3660,"src":"2699:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3652,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3655,"mutability":"mutable","name":"amount","nameLocation":"2727:6:11","nodeType":"VariableDeclaration","scope":3660,"src":"2719:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3654,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:11"},"returnParameters":{"id":3659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3660,"src":"2758:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3657,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:11"},"scope":3661,"src":"2646:118:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3662,"src":"202:2564:11","usedErrors":[]}],"src":"106:2661:11"},"id":11},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[3661],"IERC20Metadata":[3686]},"id":3687,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3663,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:12"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":3664,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3687,"sourceUnit":3662,"src":"135:23:12","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3666,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":3661,"src":"305:6:12"},"id":3667,"nodeType":"InheritanceSpecifier","src":"305:6:12"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":3665,"nodeType":"StructuredDocumentation","src":"160:116:12","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":3686,"linearizedBaseContracts":[3686,3661],"name":"IERC20Metadata","nameLocation":"287:14:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3668,"nodeType":"StructuredDocumentation","src":"318:54:12","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":3673,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:12","nodeType":"FunctionDefinition","parameters":{"id":3669,"nodeType":"ParameterList","parameters":[],"src":"390:2:12"},"returnParameters":{"id":3672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3673,"src":"416:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3670,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:12"},"scope":3686,"src":"377:54:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3674,"nodeType":"StructuredDocumentation","src":"437:56:12","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":3679,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:12","nodeType":"FunctionDefinition","parameters":{"id":3675,"nodeType":"ParameterList","parameters":[],"src":"513:2:12"},"returnParameters":{"id":3678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3679,"src":"539:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3676,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:12"},"scope":3686,"src":"498:56:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3680,"nodeType":"StructuredDocumentation","src":"560:65:12","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":3685,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:12","nodeType":"FunctionDefinition","parameters":{"id":3681,"nodeType":"ParameterList","parameters":[],"src":"647:2:12"},"returnParameters":{"id":3684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3685,"src":"673:5:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3682,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:12"},"scope":3686,"src":"630:50:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3687,"src":"277:405:12","usedErrors":[]}],"src":"110:573:12"},"id":12},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[3708]},"id":3709,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3688,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:13"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":3689,"nodeType":"StructuredDocumentation","src":"111:496:13","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":3708,"linearizedBaseContracts":[3708],"name":"Context","nameLocation":"626:7:13","nodeType":"ContractDefinition","nodes":[{"body":{"id":3697,"nodeType":"Block","src":"702:34:13","statements":[{"expression":{"expression":{"id":3694,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3693,"id":3696,"nodeType":"Return","src":"712:17:13"}]},"id":3698,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:13","nodeType":"FunctionDefinition","parameters":{"id":3690,"nodeType":"ParameterList","parameters":[],"src":"659:2:13"},"returnParameters":{"id":3693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3698,"src":"693:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3691,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:13"},"scope":3708,"src":"640:96:13","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3706,"nodeType":"Block","src":"809:32:13","statements":[{"expression":{"expression":{"id":3703,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:13","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":3702,"id":3705,"nodeType":"Return","src":"819:15:13"}]},"id":3707,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:13","nodeType":"FunctionDefinition","parameters":{"id":3699,"nodeType":"ParameterList","parameters":[],"src":"759:2:13"},"returnParameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3707,"src":"793:14:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3700,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:13"},"scope":3708,"src":"742:99:13","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":3709,"src":"608:235:13","usedErrors":[]}],"src":"86:758:13"},"id":13},"contracts/OmniVotingEscrow.sol":{"ast":{"absolutePath":"contracts/OmniVotingEscrow.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540],"LzApp":[917],"NonblockingLzApp":[1136],"OmniVotingEscrow":[4094],"Ownable":[2996]},"id":4095,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3710,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:14"},{"id":3711,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"57:19:14"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./interfaces/IVotingEscrow.sol","id":3712,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4519,"src":"78:40:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","file":"./interfaces/IOmniVotingEscrow.sol","id":3713,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4466,"src":"119:44:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","file":"./interfaces/IVotingEscrowRemapper.sol","id":3714,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4541,"src":"164:48:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","id":3715,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":1137,"src":"213:79:14","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3716,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"323:16:14"},"id":3717,"nodeType":"InheritanceSpecifier","src":"323:16:14"},{"baseName":{"id":3718,"name":"IOmniVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4465,"src":"341:17:14"},"id":3719,"nodeType":"InheritanceSpecifier","src":"341:17:14"}],"canonicalName":"OmniVotingEscrow","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4094,"linearizedBaseContracts":[4094,4465,1136,917,189,158,2996,3708],"name":"OmniVotingEscrow","nameLocation":"303:16:14","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"4f2bfe5b","id":3722,"mutability":"immutable","name":"votingEscrow","nameLocation":"396:12:14","nodeType":"VariableDeclaration","scope":4094,"src":"365:43:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":3721,"nodeType":"UserDefinedTypeName","pathNode":{"id":3720,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"365:13:14"},"referencedDeclaration":4518,"src":"365:13:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"public"},{"constant":false,"functionSelector":"363bf0de","id":3725,"mutability":"immutable","name":"votingEscrowRemapper","nameLocation":"453:20:14","nodeType":"VariableDeclaration","scope":4094,"src":"414:59:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"},"typeName":{"id":3724,"nodeType":"UserDefinedTypeName","pathNode":{"id":3723,"name":"IVotingEscrowRemapper","nodeType":"IdentifierPath","referencedDeclaration":4540,"src":"414:21:14"},"referencedDeclaration":4540,"src":"414:21:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"visibility":"public"},{"constant":false,"id":3728,"mutability":"mutable","name":"PT_USER","nameLocation":"525:7:14","nodeType":"VariableDeclaration","scope":4094,"src":"518:18:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3726,"name":"uint16","nodeType":"ElementaryTypeName","src":"518:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":3727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"535:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":false,"id":3731,"mutability":"mutable","name":"PT_TS","nameLocation":"589:5:14","nodeType":"VariableDeclaration","scope":4094,"src":"582:16:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3729,"name":"uint16","nodeType":"ElementaryTypeName","src":"582:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":3730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"597:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"anonymous":false,"id":3745,"name":"UserBalToChain","nameLocation":"634:14:14","nodeType":"EventDefinition","parameters":{"id":3744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3733,"indexed":false,"mutability":"mutable","name":"dstChainId","nameLocation":"656:10:14","nodeType":"VariableDeclaration","scope":3745,"src":"649:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3732,"name":"uint16","nodeType":"ElementaryTypeName","src":"649:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3735,"indexed":false,"mutability":"mutable","name":"localUser","nameLocation":"676:9:14","nodeType":"VariableDeclaration","scope":3745,"src":"668:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3734,"name":"address","nodeType":"ElementaryTypeName","src":"668:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3737,"indexed":false,"mutability":"mutable","name":"remoteUser","nameLocation":"695:10:14","nodeType":"VariableDeclaration","scope":3745,"src":"687:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3736,"name":"address","nodeType":"ElementaryTypeName","src":"687:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3740,"indexed":false,"mutability":"mutable","name":"userPoint","nameLocation":"727:9:14","nodeType":"VariableDeclaration","scope":3745,"src":"707:29:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3739,"nodeType":"UserDefinedTypeName","pathNode":{"id":3738,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"707:19:14"},"referencedDeclaration":4477,"src":"707:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":3743,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"758:16:14","nodeType":"VariableDeclaration","scope":3745,"src":"738:36:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3742,"nodeType":"UserDefinedTypeName","pathNode":{"id":3741,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"738:19:14"},"referencedDeclaration":4477,"src":"738:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"648:127:14"},"src":"628:148:14"},{"anonymous":false,"id":3752,"name":"TotalSupplyToChain","nameLocation":"787:18:14","nodeType":"EventDefinition","parameters":{"id":3751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3747,"indexed":false,"mutability":"mutable","name":"dstChainId","nameLocation":"813:10:14","nodeType":"VariableDeclaration","scope":3752,"src":"806:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3746,"name":"uint16","nodeType":"ElementaryTypeName","src":"806:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3750,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"845:16:14","nodeType":"VariableDeclaration","scope":3752,"src":"825:36:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3749,"nodeType":"UserDefinedTypeName","pathNode":{"id":3748,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"825:19:14"},"referencedDeclaration":4477,"src":"825:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"805:57:14"},"src":"781:82:14"},{"body":{"id":3784,"nodeType":"Block","src":"963:248:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3763,"name":"_votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"981:21:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":3766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1014:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1006:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3764,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:14","typeDescriptions":{}}},"id":3767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1006:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"981:37:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f7420626520307830","id":3769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1020:42:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6","typeString":"literal_string \"OmniVotingEscrow: remapper cannot be 0x0\""},"value":"OmniVotingEscrow: remapper cannot be 0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6","typeString":"literal_string \"OmniVotingEscrow: remapper cannot be 0x0\""}],"id":3762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"973:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"973:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3771,"nodeType":"ExpressionStatement","src":"973:90:14"},{"expression":{"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3772,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"1074:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3774,"name":"_votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"1119:21:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3773,"name":"IVotingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"1097:21:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrowRemapper_$4540_$","typeString":"type(contract IVotingEscrowRemapper)"}},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1097:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"src":"1074:67:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3777,"nodeType":"ExpressionStatement","src":"1074:67:14"},{"expression":{"id":3782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3778,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"1151:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3779,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"1166:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getVotingEscrow","nodeType":"MemberAccess","referencedDeclaration":4529,"src":"1166:36:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IVotingEscrow_$4518_$","typeString":"function () view external returns (contract IVotingEscrow)"}},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1166:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"src":"1151:53:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3783,"nodeType":"ExpressionStatement","src":"1151:53:14"}]},"id":3785,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3759,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"950:11:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3760,"kind":"baseConstructorSpecifier","modifierName":{"id":3758,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"933:16:14"},"nodeType":"ModifierInvocation","src":"933:29:14"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3754,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"889:11:14","nodeType":"VariableDeclaration","scope":3785,"src":"881:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3753,"name":"address","nodeType":"ElementaryTypeName","src":"881:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3756,"mutability":"mutable","name":"_votingEscrowRemapper","nameLocation":"910:21:14","nodeType":"VariableDeclaration","scope":3785,"src":"902:29:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3755,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"880:52:14"},"returnParameters":{"id":3761,"nodeType":"ParameterList","parameters":[],"src":"963:0:14"},"scope":4094,"src":"869:342:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1067],"body":{"id":3801,"nodeType":"Block","src":"1412:66:14","statements":[{"expression":{"arguments":[{"hexValue":"4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665206c7a4d736773","id":3798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1429:41:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2","typeString":"literal_string \"OmniVotingEscrow: cannot receive lzMsgs\""},"value":"OmniVotingEscrow: cannot receive lzMsgs"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2","typeString":"literal_string \"OmniVotingEscrow: cannot receive lzMsgs\""}],"id":3797,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1422:6:14","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3800,"nodeType":"ExpressionStatement","src":"1422:49:14"}]},"id":3802,"implemented":true,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1226:21:14","nodeType":"FunctionDefinition","overrides":{"id":3795,"nodeType":"OverrideSpecifier","overrides":[],"src":"1403:8:14"},"parameters":{"id":3794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1257:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3786,"name":"uint16","nodeType":"ElementaryTypeName","src":"1257:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1289:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3788,"name":"bytes","nodeType":"ElementaryTypeName","src":"1289:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1327:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3790,"name":"uint64","nodeType":"ElementaryTypeName","src":"1327:6:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1354:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3792,"name":"bytes","nodeType":"ElementaryTypeName","src":"1354:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1247:138:14"},"returnParameters":{"id":3796,"nodeType":"ParameterList","parameters":[],"src":"1412:0:14"},"scope":4094,"src":"1217:261:14","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[4427],"body":{"id":3853,"nodeType":"Block","src":"1632:248:14","statements":[{"assignments":[3816],"declarations":[{"constant":false,"id":3816,"mutability":"mutable","name":"lzPayload","nameLocation":"1655:9:14","nodeType":"VariableDeclaration","scope":3853,"src":"1642:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3815,"name":"bytes","nodeType":"ElementaryTypeName","src":"1642:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3840,"initialValue":{"arguments":[{"id":3819,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"1678:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"hexValue":"307830","id":3822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1695:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1687:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3820,"name":"address","nodeType":"ElementaryTypeName","src":"1687:7:14","typeDescriptions":{}}},"id":3823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1687:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":3824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1701:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":3827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1724:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1727:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1730:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1733:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3825,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"1704:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"1704:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1704:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"arguments":[{"hexValue":"30","id":3834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1760:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1763:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1766:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3832,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"1737:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"1737:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1737:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3817,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1667:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1667:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1667:102:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1642:127:14"},{"expression":{"arguments":[{"id":3843,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"1810:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3846,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1831:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}],"id":3845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1823:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3844,"name":"address","nodeType":"ElementaryTypeName","src":"1823:7:14","typeDescriptions":{}}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1823:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3848,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3816,"src":"1838:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3849,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"1849:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3850,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3808,"src":"1858:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3841,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"1786:10:14","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":69,"src":"1786:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":3851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1786:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3814,"id":3852,"nodeType":"Return","src":"1779:94:14"}]},"functionSelector":"65d092d0","id":3854,"implemented":true,"kind":"function","modifiers":[],"name":"estimateSendUserBalance","nameLocation":"1493:23:14","nodeType":"FunctionDefinition","parameters":{"id":3809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3804,"mutability":"mutable","name":"_dstChainId","nameLocation":"1524:11:14","nodeType":"VariableDeclaration","scope":3854,"src":"1517:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3803,"name":"uint16","nodeType":"ElementaryTypeName","src":"1517:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3806,"mutability":"mutable","name":"_useZro","nameLocation":"1542:7:14","nodeType":"VariableDeclaration","scope":3854,"src":"1537:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3805,"name":"bool","nodeType":"ElementaryTypeName","src":"1537:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3808,"mutability":"mutable","name":"_adapterParams","nameLocation":"1566:14:14","nodeType":"VariableDeclaration","scope":3854,"src":"1551:29:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3807,"name":"bytes","nodeType":"ElementaryTypeName","src":"1551:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1516:65:14"},"returnParameters":{"id":3814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3811,"mutability":"mutable","name":"nativeFee","nameLocation":"1608:9:14","nodeType":"VariableDeclaration","scope":3854,"src":"1603:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3810,"name":"uint","nodeType":"ElementaryTypeName","src":"1603:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3813,"mutability":"mutable","name":"zroFee","nameLocation":"1624:6:14","nodeType":"VariableDeclaration","scope":3854,"src":"1619:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3812,"name":"uint","nodeType":"ElementaryTypeName","src":"1619:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1602:29:14"},"scope":4094,"src":"1484:396:14","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4440],"body":{"id":3893,"nodeType":"Block","src":"2034:196:14","statements":[{"assignments":[3868],"declarations":[{"constant":false,"id":3868,"mutability":"mutable","name":"lzPayload","nameLocation":"2057:9:14","nodeType":"VariableDeclaration","scope":3893,"src":"2044:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3867,"name":"bytes","nodeType":"ElementaryTypeName","src":"2044:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3880,"initialValue":{"arguments":[{"id":3871,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3731,"src":"2080:5:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"hexValue":"30","id":3874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2107:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2110:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2116:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3872,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2087:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2087:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2087:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2069:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2069:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2069:50:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2044:75:14"},{"expression":{"arguments":[{"id":3883,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"2160:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3886,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2181:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}],"id":3885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2173:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3884,"name":"address","nodeType":"ElementaryTypeName","src":"2173:7:14","typeDescriptions":{}}},"id":3887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2173:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3888,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"2188:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3889,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"2199:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3890,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"2208:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3881,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"2136:10:14","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":69,"src":"2136:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":3891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2136:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3866,"id":3892,"nodeType":"Return","src":"2129:94:14"}]},"functionSelector":"16334c8f","id":3894,"implemented":true,"kind":"function","modifiers":[],"name":"estimateSendTotalSupply","nameLocation":"1895:23:14","nodeType":"FunctionDefinition","parameters":{"id":3861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"_dstChainId","nameLocation":"1926:11:14","nodeType":"VariableDeclaration","scope":3894,"src":"1919:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3855,"name":"uint16","nodeType":"ElementaryTypeName","src":"1919:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3858,"mutability":"mutable","name":"_useZro","nameLocation":"1944:7:14","nodeType":"VariableDeclaration","scope":3894,"src":"1939:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3857,"name":"bool","nodeType":"ElementaryTypeName","src":"1939:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3860,"mutability":"mutable","name":"_adapterParams","nameLocation":"1968:14:14","nodeType":"VariableDeclaration","scope":3894,"src":"1953:29:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3859,"name":"bytes","nodeType":"ElementaryTypeName","src":"1953:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1918:65:14"},"returnParameters":{"id":3866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3863,"mutability":"mutable","name":"nativeFee","nameLocation":"2010:9:14","nodeType":"VariableDeclaration","scope":3894,"src":"2005:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3862,"name":"uint","nodeType":"ElementaryTypeName","src":"2005:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3865,"mutability":"mutable","name":"zroFee","nameLocation":"2026:6:14","nodeType":"VariableDeclaration","scope":3894,"src":"2021:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3864,"name":"uint","nodeType":"ElementaryTypeName","src":"2021:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2004:29:14"},"scope":4094,"src":"1886:344:14","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4453],"body":{"id":3997,"nodeType":"Block","src":"2405:917:14","statements":[{"assignments":[3908],"declarations":[{"constant":false,"id":3908,"mutability":"mutable","name":"userEpoch","nameLocation":"2420:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"2415:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3907,"name":"uint","nodeType":"ElementaryTypeName","src":"2415:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3913,"initialValue":{"arguments":[{"id":3911,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2462:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3909,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2432:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"user_point_epoch","nodeType":"MemberAccess","referencedDeclaration":4489,"src":"2432:29:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) external returns (uint256)"}},"id":3912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2432:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2415:58:14"},{"assignments":[3918],"declarations":[{"constant":false,"id":3918,"mutability":"mutable","name":"uPoint","nameLocation":"2510:6:14","nodeType":"VariableDeclaration","scope":3997,"src":"2483:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3917,"nodeType":"UserDefinedTypeName","pathNode":{"id":3916,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2483:19:14"},"referencedDeclaration":4477,"src":"2483:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":3924,"initialValue":{"arguments":[{"id":3921,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2551:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3922,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"2563:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3919,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2519:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"user_point_history","nodeType":"MemberAccess","referencedDeclaration":4499,"src":"2519:31:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (address,uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":3923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2519:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"2483:90:14"},{"assignments":[3926],"declarations":[{"constant":false,"id":3926,"mutability":"mutable","name":"lockedEnd","nameLocation":"2589:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"2584:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3925,"name":"uint","nodeType":"ElementaryTypeName","src":"2584:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3931,"initialValue":{"arguments":[{"id":3929,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2626:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3927,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2601:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locked__end","nodeType":"MemberAccess","referencedDeclaration":4517,"src":"2601:24:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2601:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2584:53:14"},{"assignments":[3933],"declarations":[{"constant":false,"id":3933,"mutability":"mutable","name":"totalSupplyEpoch","nameLocation":"2714:16:14","nodeType":"VariableDeclaration","scope":3997,"src":"2709:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3932,"name":"uint","nodeType":"ElementaryTypeName","src":"2709:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3937,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3934,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2733:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"2733:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":3936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2733:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2709:44:14"},{"assignments":[3942],"declarations":[{"constant":false,"id":3942,"mutability":"mutable","name":"tsPoint","nameLocation":"2790:7:14","nodeType":"VariableDeclaration","scope":3997,"src":"2763:34:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3941,"nodeType":"UserDefinedTypeName","pathNode":{"id":3940,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2763:19:14"},"referencedDeclaration":4477,"src":"2763:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":3947,"initialValue":{"arguments":[{"id":3945,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"2827:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3943,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2800:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"2800:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2800:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"2763:81:14"},{"assignments":[3949],"declarations":[{"constant":false,"id":3949,"mutability":"mutable","name":"remappedAddress","nameLocation":"2863:15:14","nodeType":"VariableDeclaration","scope":3997,"src":"2855:23:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3948,"name":"address","nodeType":"ElementaryTypeName","src":"2855:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3955,"initialValue":{"arguments":[{"id":3952,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2916:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3953,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"2928:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":3950,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"2881:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRemoteUser","nodeType":"MemberAccess","referencedDeclaration":4539,"src":"2881:34:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint16_$returns$_t_address_$","typeString":"function (address,uint16) view external returns (address)"}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2881:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2855:85:14"},{"assignments":[3957],"declarations":[{"constant":false,"id":3957,"mutability":"mutable","name":"remoteUser","nameLocation":"2958:10:14","nodeType":"VariableDeclaration","scope":3997,"src":"2950:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3956,"name":"address","nodeType":"ElementaryTypeName","src":"2950:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3967,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3958,"name":"remappedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"2971:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2998:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2990:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3959,"name":"address","nodeType":"ElementaryTypeName","src":"2990:7:14","typeDescriptions":{}}},"id":3962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2990:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2971:31:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3965,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"3023:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2971:62:14","trueExpression":{"id":3964,"name":"remappedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"3005:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2950:83:14"},{"assignments":[3969],"declarations":[{"constant":false,"id":3969,"mutability":"mutable","name":"lzPayload","nameLocation":"3057:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"3044:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3968,"name":"bytes","nodeType":"ElementaryTypeName","src":"3044:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3978,"initialValue":{"arguments":[{"id":3972,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"3080:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3973,"name":"remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3957,"src":"3089:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3974,"name":"lockedEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"3101:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3975,"name":"uPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3112:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":3976,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"3120:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3069:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3069:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3069:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3044:84:14"},{"expression":{"arguments":[{"id":3980,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"3146:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3981,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3969,"src":"3159:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3982,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3900,"src":"3170:14:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":3983,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"3186:18:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3984,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3206:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":3985,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3222:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3222:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3979,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"3138:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,address payable,address,bytes memory,uint256)"}},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3138:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3988,"nodeType":"ExpressionStatement","src":"3138:94:14"},{"eventCall":{"arguments":[{"id":3990,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"3262:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3991,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"3275:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3992,"name":"remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3957,"src":"3287:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3993,"name":"uPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3299:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":3994,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"3307:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":3989,"name":"UserBalToChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3745,"src":"3247:14:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_address_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,address,address,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3247:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3996,"nodeType":"EmitStatement","src":"3242:73:14"}]},"functionSelector":"4a759489","id":3998,"implemented":true,"kind":"function","modifiers":[],"name":"sendUserBalance","nameLocation":"2245:15:14","nodeType":"FunctionDefinition","parameters":{"id":3905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3896,"mutability":"mutable","name":"_localUser","nameLocation":"2269:10:14","nodeType":"VariableDeclaration","scope":3998,"src":"2261:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3895,"name":"address","nodeType":"ElementaryTypeName","src":"2261:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3898,"mutability":"mutable","name":"_dstChainId","nameLocation":"2288:11:14","nodeType":"VariableDeclaration","scope":3998,"src":"2281:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3897,"name":"uint16","nodeType":"ElementaryTypeName","src":"2281:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3900,"mutability":"mutable","name":"_refundAddress","nameLocation":"2317:14:14","nodeType":"VariableDeclaration","scope":3998,"src":"2301:30:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3899,"name":"address","nodeType":"ElementaryTypeName","src":"2301:15:14","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":3902,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"2341:18:14","nodeType":"VariableDeclaration","scope":3998,"src":"2333:26:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3901,"name":"address","nodeType":"ElementaryTypeName","src":"2333:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3904,"mutability":"mutable","name":"_adapterParams","nameLocation":"2374:14:14","nodeType":"VariableDeclaration","scope":3998,"src":"2361:27:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3903,"name":"bytes","nodeType":"ElementaryTypeName","src":"2361:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2260:129:14"},"returnParameters":{"id":3906,"nodeType":"ParameterList","parameters":[],"src":"2405:0:14"},"scope":4094,"src":"2236:1086:14","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[4464],"body":{"id":4072,"nodeType":"Block","src":"3477:845:14","statements":[{"assignments":[4010],"declarations":[{"constant":false,"id":4010,"mutability":"mutable","name":"totalSupplyEpoch","nameLocation":"3492:16:14","nodeType":"VariableDeclaration","scope":4072,"src":"3487:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4009,"name":"uint","nodeType":"ElementaryTypeName","src":"3487:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4011,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3511:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"3511:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3511:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3487:44:14"},{"assignments":[4019],"declarations":[{"constant":false,"id":4019,"mutability":"mutable","name":"tsPoint","nameLocation":"3568:7:14","nodeType":"VariableDeclaration","scope":4072,"src":"3541:34:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4018,"nodeType":"UserDefinedTypeName","pathNode":{"id":4017,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3541:19:14"},"referencedDeclaration":4477,"src":"3541:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4024,"initialValue":{"arguments":[{"id":4022,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"3605:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4020,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3578:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"3578:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":4023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3578:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"3541:81:14"},{"condition":{"arguments":[{"expression":{"id":4026,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"3877:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":4474,"src":"3877:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4025,"name":"_hasLastCheckpointExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4093,"src":"3851:25:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3851:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4048,"nodeType":"IfStatement","src":"3847:248:14","trueBody":{"id":4047,"nodeType":"Block","src":"3890:205:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4029,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3904:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"checkpoint","nodeType":"MemberAccess","referencedDeclaration":4510,"src":"3904:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3904:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4033,"nodeType":"ExpressionStatement","src":"3904:25:14"},{"expression":{"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4034,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"3977:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4035,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3996:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"3996:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3996:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3977:39:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4039,"nodeType":"ExpressionStatement","src":"3977:39:14"},{"expression":{"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4040,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4030:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4043,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"4067:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4041,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"4040:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"4040:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4040:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"4030:54:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4046,"nodeType":"ExpressionStatement","src":"4030:54:14"}]}},{"assignments":[4050],"declarations":[{"constant":false,"id":4050,"mutability":"mutable","name":"lzPayload","nameLocation":"4118:9:14","nodeType":"VariableDeclaration","scope":4072,"src":"4105:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4049,"name":"bytes","nodeType":"ElementaryTypeName","src":"4105:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4056,"initialValue":{"arguments":[{"id":4053,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3731,"src":"4141:5:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4054,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4148:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":4051,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4130:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4130:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4130:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4105:51:14"},{"expression":{"arguments":[{"id":4058,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"4174:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4059,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4050,"src":"4187:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4060,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"4198:14:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":4061,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4004,"src":"4214:18:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4062,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"4234:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4063,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4250:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"4250:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4057,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"4166:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,address payable,address,bytes memory,uint256)"}},"id":4065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4166:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4066,"nodeType":"ExpressionStatement","src":"4166:94:14"},{"eventCall":{"arguments":[{"id":4068,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"4294:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4069,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4307:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4067,"name":"TotalSupplyToChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3752,"src":"4275:18:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,struct IVotingEscrow.Point memory)"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4275:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4071,"nodeType":"EmitStatement","src":"4270:45:14"}]},"functionSelector":"416b154a","id":4073,"implemented":true,"kind":"function","modifiers":[],"name":"sendTotalSupply","nameLocation":"3337:15:14","nodeType":"FunctionDefinition","parameters":{"id":4007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4000,"mutability":"mutable","name":"_dstChainId","nameLocation":"3360:11:14","nodeType":"VariableDeclaration","scope":4073,"src":"3353:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3999,"name":"uint16","nodeType":"ElementaryTypeName","src":"3353:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4002,"mutability":"mutable","name":"_refundAddress","nameLocation":"3389:14:14","nodeType":"VariableDeclaration","scope":4073,"src":"3373:30:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4001,"name":"address","nodeType":"ElementaryTypeName","src":"3373:15:14","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4004,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"3413:18:14","nodeType":"VariableDeclaration","scope":4073,"src":"3405:26:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4003,"name":"address","nodeType":"ElementaryTypeName","src":"3405:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4006,"mutability":"mutable","name":"_adapterParams","nameLocation":"3446:14:14","nodeType":"VariableDeclaration","scope":4073,"src":"3433:27:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4005,"name":"bytes","nodeType":"ElementaryTypeName","src":"3433:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3352:109:14"},"returnParameters":{"id":4008,"nodeType":"ParameterList","parameters":[],"src":"3477:0:14"},"scope":4094,"src":"3328:994:14","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":4092,"nodeType":"Block","src":"4422:213:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4080,"name":"lastCheckpointTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"4556:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31","id":4081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4582:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4556:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4555:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":4084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4593:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4555:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4603:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4555:55:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4088,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4613:5:14","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4613:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4555:73:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4079,"id":4091,"nodeType":"Return","src":"4548:80:14"}]},"id":4093,"implemented":true,"kind":"function","modifiers":[],"name":"_hasLastCheckpointExpired","nameLocation":"4337:25:14","nodeType":"FunctionDefinition","parameters":{"id":4076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4075,"mutability":"mutable","name":"lastCheckpointTimestamp","nameLocation":"4368:23:14","nodeType":"VariableDeclaration","scope":4093,"src":"4363:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4074,"name":"uint","nodeType":"ElementaryTypeName","src":"4363:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4362:30:14"},"returnParameters":{"id":4079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4093,"src":"4416:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4077,"name":"bool","nodeType":"ElementaryTypeName","src":"4416:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4415:6:14"},"scope":4094,"src":"4328:307:14","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4095,"src":"294:4343:14","usedErrors":[]}],"src":"33:4605:14"},"id":14},"contracts/OmniVotingEscrowChild.sol":{"ast":{"absolutePath":"contracts/OmniVotingEscrowChild.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"IL2LayerZeroDelegation":[4411],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"IVotingEscrow":[4518],"LzApp":[917],"NonblockingLzApp":[1136],"OmniVotingEscrowChild":[4399],"Ownable":[2996]},"id":4400,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4096,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:15"},{"id":4097,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"57:19:15"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./interfaces/IVotingEscrow.sol","id":4098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":4519,"src":"78:40:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","file":"./interfaces/IL2LayerZeroDelegation.sol","id":4099,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":4412,"src":"119:49:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","id":4100,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":1137,"src":"169:79:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4101,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"284:16:15"},"id":4102,"nodeType":"InheritanceSpecifier","src":"284:16:15"}],"canonicalName":"OmniVotingEscrowChild","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4399,"linearizedBaseContracts":[4399,1136,917,189,158,2996,3708],"name":"OmniVotingEscrowChild","nameLocation":"259:21:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"adc63589","id":4106,"mutability":"mutable","name":"locked__end","nameLocation":"339:11:15","nodeType":"VariableDeclaration","scope":4399,"src":"307:43:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4105,"keyType":{"id":4103,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"307:24:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":4104,"name":"uint","nodeType":"ElementaryTypeName","src":"326:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"f50ddbc7","id":4111,"mutability":"mutable","name":"userPoints","nameLocation":"428:10:15","nodeType":"VariableDeclaration","scope":4399,"src":"381:57:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point)"},"typeName":{"id":4110,"keyType":{"id":4107,"name":"address","nodeType":"ElementaryTypeName","src":"389:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"381:39:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point)"},"valueType":{"id":4109,"nodeType":"UserDefinedTypeName","pathNode":{"id":4108,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"400:19:15"},"referencedDeclaration":4477,"src":"400:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}}},"visibility":"public"},{"constant":false,"functionSelector":"f4182acb","id":4114,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"487:16:15","nodeType":"VariableDeclaration","scope":4399,"src":"460:43:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4113,"nodeType":"UserDefinedTypeName","pathNode":{"id":4112,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"460:19:15"},"referencedDeclaration":4477,"src":"460:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"public"},{"constant":false,"id":4117,"mutability":"mutable","name":"PT_USER","nameLocation":"573:7:15","nodeType":"VariableDeclaration","scope":4399,"src":"566:18:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4115,"name":"uint16","nodeType":"ElementaryTypeName","src":"566:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":4116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"583:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":false,"id":4120,"mutability":"mutable","name":"PT_TS","nameLocation":"637:5:15","nodeType":"VariableDeclaration","scope":4399,"src":"630:16:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4118,"name":"uint16","nodeType":"ElementaryTypeName","src":"630:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":4119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"645:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"functionSelector":"74d2495f","id":4123,"mutability":"immutable","name":"delegationHook","nameLocation":"716:14:15","nodeType":"VariableDeclaration","scope":4399,"src":"676:54:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"},"typeName":{"id":4122,"nodeType":"UserDefinedTypeName","pathNode":{"id":4121,"name":"IL2LayerZeroDelegation","nodeType":"IdentifierPath","referencedDeclaration":4411,"src":"676:22:15"},"referencedDeclaration":4411,"src":"676:22:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"visibility":"public"},{"anonymous":false,"id":4135,"name":"UserBalFromChain","nameLocation":"743:16:15","nodeType":"EventDefinition","parameters":{"id":4134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4125,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"767:10:15","nodeType":"VariableDeclaration","scope":4135,"src":"760:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4124,"name":"uint16","nodeType":"ElementaryTypeName","src":"760:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4127,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"787:4:15","nodeType":"VariableDeclaration","scope":4135,"src":"779:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4126,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4130,"indexed":false,"mutability":"mutable","name":"userPoint","nameLocation":"813:9:15","nodeType":"VariableDeclaration","scope":4135,"src":"793:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4129,"nodeType":"UserDefinedTypeName","pathNode":{"id":4128,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"793:19:15"},"referencedDeclaration":4477,"src":"793:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":4133,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"844:16:15","nodeType":"VariableDeclaration","scope":4135,"src":"824:36:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4132,"nodeType":"UserDefinedTypeName","pathNode":{"id":4131,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"824:19:15"},"referencedDeclaration":4477,"src":"824:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"759:102:15"},"src":"737:125:15"},{"anonymous":false,"id":4142,"name":"TotalSupplyFromChain","nameLocation":"873:20:15","nodeType":"EventDefinition","parameters":{"id":4141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4137,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"901:10:15","nodeType":"VariableDeclaration","scope":4142,"src":"894:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4136,"name":"uint16","nodeType":"ElementaryTypeName","src":"894:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4140,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"933:16:15","nodeType":"VariableDeclaration","scope":4142,"src":"913:36:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4139,"nodeType":"UserDefinedTypeName","pathNode":{"id":4138,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"913:19:15"},"referencedDeclaration":4477,"src":"913:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"893:57:15"},"src":"867:84:15"},{"body":{"id":4168,"nodeType":"Block","src":"1045:179:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4153,"name":"_delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"1063:15:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":4156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1090:3:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1082:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4154,"name":"address","nodeType":"ElementaryTypeName","src":"1082:7:15","typeDescriptions":{}}},"id":4157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1082:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1063:31:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f6e20686f6f6b2063616e6e6f7420626520307830","id":4159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1096:54:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612","typeString":"literal_string \"OmniVotingEscrowChild: delegation hook cannot be 0x0\""},"value":"OmniVotingEscrowChild: delegation hook cannot be 0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612","typeString":"literal_string \"OmniVotingEscrowChild: delegation hook cannot be 0x0\""}],"id":4152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1055:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1055:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4161,"nodeType":"ExpressionStatement","src":"1055:96:15"},{"expression":{"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4162,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"1161:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4164,"name":"_delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"1201:15:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4163,"name":"IL2LayerZeroDelegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4411,"src":"1178:22:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IL2LayerZeroDelegation_$4411_$","typeString":"type(contract IL2LayerZeroDelegation)"}},"id":4165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1178:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"src":"1161:56:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4167,"nodeType":"ExpressionStatement","src":"1161:56:15"}]},"id":4169,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4149,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"1032:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4150,"kind":"baseConstructorSpecifier","modifierName":{"id":4148,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"1015:16:15"},"nodeType":"ModifierInvocation","src":"1015:29:15"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4144,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"977:11:15","nodeType":"VariableDeclaration","scope":4169,"src":"969:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4143,"name":"address","nodeType":"ElementaryTypeName","src":"969:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4146,"mutability":"mutable","name":"_delegationHook","nameLocation":"998:15:15","nodeType":"VariableDeclaration","scope":4169,"src":"990:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4145,"name":"address","nodeType":"ElementaryTypeName","src":"990:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"968:46:15"},"returnParameters":{"id":4151,"nodeType":"ParameterList","parameters":[],"src":"1045:0:15"},"scope":4399,"src":"957:267:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1067],"body":{"id":4210,"nodeType":"Block","src":"1417:422:15","statements":[{"assignments":[4182],"declarations":[{"constant":false,"id":4182,"mutability":"mutable","name":"packetType","nameLocation":"1434:10:15","nodeType":"VariableDeclaration","scope":4210,"src":"1427:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4181,"name":"uint16","nodeType":"ElementaryTypeName","src":"1427:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":4183,"nodeType":"VariableDeclarationStatement","src":"1427:17:15"},{"AST":{"nodeType":"YulBlock","src":"1463:62:15","statements":[{"nodeType":"YulAssignment","src":"1477:38:15","value":{"arguments":[{"arguments":[{"name":"_payload","nodeType":"YulIdentifier","src":"1501:8:15"},{"kind":"number","nodeType":"YulLiteral","src":"1511:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1497:3:15"},"nodeType":"YulFunctionCall","src":"1497:17:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1491:5:15"},"nodeType":"YulFunctionCall","src":"1491:24:15"},"variableNames":[{"name":"packetType","nodeType":"YulIdentifier","src":"1477:10:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":4177,"isOffset":false,"isSlot":false,"src":"1501:8:15","valueSize":1},{"declaration":4182,"isOffset":false,"isSlot":false,"src":"1477:10:15","valueSize":1}],"id":4184,"nodeType":"InlineAssembly","src":"1454:71:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4185,"name":"packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"1539:10:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4186,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"1553:7:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1539:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4194,"name":"packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"1654:10:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4195,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"1668:5:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1654:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4207,"nodeType":"Block","src":"1756:77:15","statements":[{"expression":{"arguments":[{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207061636b65742074797065","id":4204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1777:44:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219","typeString":"literal_string \"OmniVotingEscrowChild: unknown packet type\""},"value":"OmniVotingEscrowChild: unknown packet type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219","typeString":"literal_string \"OmniVotingEscrowChild: unknown packet type\""}],"id":4203,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1770:6:15","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1770:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4206,"nodeType":"ExpressionStatement","src":"1770:52:15"}]},"id":4208,"nodeType":"IfStatement","src":"1650:183:15","trueBody":{"id":4202,"nodeType":"Block","src":"1675:75:15","statements":[{"expression":{"arguments":[{"id":4198,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"1717:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4199,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"1730:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4197,"name":"_updateTotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4311,"src":"1689:27:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1689:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4201,"nodeType":"ExpressionStatement","src":"1689:50:15"}]}},"id":4209,"nodeType":"IfStatement","src":"1535:298:15","trueBody":{"id":4193,"nodeType":"Block","src":"1562:82:15","statements":[{"expression":{"arguments":[{"id":4189,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"1611:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4190,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"1624:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4188,"name":"_updateUserAndTotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4274,"src":"1576:34:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1576:57:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4192,"nodeType":"ExpressionStatement","src":"1576:57:15"}]}}]},"id":4211,"implemented":true,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1239:21:15","nodeType":"FunctionDefinition","overrides":{"id":4179,"nodeType":"OverrideSpecifier","overrides":[],"src":"1408:8:15"},"parameters":{"id":4178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4171,"mutability":"mutable","name":"_srcChainId","nameLocation":"1277:11:15","nodeType":"VariableDeclaration","scope":4211,"src":"1270:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4170,"name":"uint16","nodeType":"ElementaryTypeName","src":"1270:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4211,"src":"1298:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4172,"name":"bytes","nodeType":"ElementaryTypeName","src":"1298:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4211,"src":"1336:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4174,"name":"uint64","nodeType":"ElementaryTypeName","src":"1336:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4177,"mutability":"mutable","name":"_payload","nameLocation":"1376:8:15","nodeType":"VariableDeclaration","scope":4211,"src":"1363:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4176,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1260:130:15"},"returnParameters":{"id":4180,"nodeType":"ParameterList","parameters":[],"src":"1417:0:15"},"scope":4399,"src":"1230:609:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4273,"nodeType":"Block","src":"1941:517:15","statements":[{"assignments":[null,4219,4221,4224,4227],"declarations":[null,{"constant":false,"id":4219,"mutability":"mutable","name":"_userAddress","nameLocation":"1962:12:15","nodeType":"VariableDeclaration","scope":4273,"src":"1954:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4218,"name":"address","nodeType":"ElementaryTypeName","src":"1954:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4221,"mutability":"mutable","name":"_lockedEnd","nameLocation":"1981:10:15","nodeType":"VariableDeclaration","scope":4273,"src":"1976:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4220,"name":"uint","nodeType":"ElementaryTypeName","src":"1976:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4224,"mutability":"mutable","name":"_userPoint","nameLocation":"2020:10:15","nodeType":"VariableDeclaration","scope":4273,"src":"1993:37:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4223,"nodeType":"UserDefinedTypeName","pathNode":{"id":4222,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"1993:19:15"},"referencedDeclaration":4477,"src":"1993:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":4227,"mutability":"mutable","name":"_totalSupplyPoint","nameLocation":"2059:17:15","nodeType":"VariableDeclaration","scope":4273,"src":"2032:44:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4226,"nodeType":"UserDefinedTypeName","pathNode":{"id":4225,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2032:19:15"},"referencedDeclaration":4477,"src":"2032:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4243,"initialValue":{"arguments":[{"id":4230,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"2091:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2102:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":4231,"name":"uint16","nodeType":"ElementaryTypeName","src":"2102:6:15","typeDescriptions":{}}},{"id":4234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2110:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4233,"name":"address","nodeType":"ElementaryTypeName","src":"2110:7:15","typeDescriptions":{}}},{"id":4236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2119:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4235,"name":"uint","nodeType":"ElementaryTypeName","src":"2119:4:15","typeDescriptions":{}}},{"expression":{"id":4237,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2125:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2125:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},{"expression":{"id":4239,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2146:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2146:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}}],"id":4241,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2101:65:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(address),type(uint256),type(struct IVotingEscrow.Point storage pointer),type(struct IVotingEscrow.Point storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(address),type(uint256),type(struct IVotingEscrow.Point storage pointer),type(struct IVotingEscrow.Point storage pointer))"}],"expression":{"id":4228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2080:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2080:10:15","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2080:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_address_payable_$_t_uint256_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$","typeString":"tuple(uint16,address payable,uint256,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"nodeType":"VariableDeclarationStatement","src":"1951:216:15"},{"expression":{"id":4248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4244,"name":"locked__end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"2177:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4246,"indexExpression":{"id":4245,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2189:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2177:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4247,"name":"_lockedEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"2205:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2177:38:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4249,"nodeType":"ExpressionStatement","src":"2177:38:15"},{"expression":{"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4250,"name":"userPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"2225:10:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point storage ref)"}},"id":4252,"indexExpression":{"id":4251,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2236:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2225:24:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4253,"name":"_userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"2252:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2225:37:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4255,"nodeType":"ExpressionStatement","src":"2225:37:15"},{"expression":{"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4256,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"2272:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4257,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2291:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2272:36:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4259,"nodeType":"ExpressionStatement","src":"2272:36:15"},{"expression":{"arguments":[{"id":4263,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2349:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4260,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"2319:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onVeBalBridged","nodeType":"MemberAccess","referencedDeclaration":4407,"src":"2319:29:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2319:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4265,"nodeType":"ExpressionStatement","src":"2319:43:15"},{"eventCall":{"arguments":[{"id":4267,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"2394:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4268,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2407:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4269,"name":"_userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"2421:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":4270,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2433:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4266,"name":"UserBalFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"2377:16:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,address,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"id":4271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2377:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4272,"nodeType":"EmitStatement","src":"2372:79:15"}]},"id":4274,"implemented":true,"kind":"function","modifiers":[],"name":"_updateUserAndTotalSupplyFromChain","nameLocation":"1854:34:15","nodeType":"FunctionDefinition","parameters":{"id":4216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4213,"mutability":"mutable","name":"_srcChainId","nameLocation":"1896:11:15","nodeType":"VariableDeclaration","scope":4274,"src":"1889:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4212,"name":"uint16","nodeType":"ElementaryTypeName","src":"1889:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4215,"mutability":"mutable","name":"_payload","nameLocation":"1922:8:15","nodeType":"VariableDeclaration","scope":4274,"src":"1909:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4214,"name":"bytes","nodeType":"ElementaryTypeName","src":"1909:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1888:43:15"},"returnParameters":{"id":4217,"nodeType":"ParameterList","parameters":[],"src":"1941:0:15"},"scope":4399,"src":"1845:613:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4310,"nodeType":"Block","src":"2553:279:15","statements":[{"assignments":[null,4285],"declarations":[null,{"constant":false,"id":4285,"mutability":"mutable","name":"_totalSupplyPoint","nameLocation":"2593:17:15","nodeType":"VariableDeclaration","scope":4310,"src":"2566:44:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4284,"nodeType":"UserDefinedTypeName","pathNode":{"id":4283,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2566:19:15"},"referencedDeclaration":4477,"src":"2566:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4295,"initialValue":{"arguments":[{"id":4288,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"2625:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2636:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":4289,"name":"uint16","nodeType":"ElementaryTypeName","src":"2636:6:15","typeDescriptions":{}}},{"expression":{"id":4291,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2644:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2644:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}}],"id":4293,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2635:29:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(struct IVotingEscrow.Point storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(struct IVotingEscrow.Point storage pointer))"}],"expression":{"id":4286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2614:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2614:10:15","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2614:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$","typeString":"tuple(uint16,struct IVotingEscrow.Point memory)"}},"nodeType":"VariableDeclarationStatement","src":"2563:102:15"},{"expression":{"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4296,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"2675:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4297,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"2694:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2675:36:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4299,"nodeType":"ExpressionStatement","src":"2675:36:15"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4300,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"2722:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onVeBalSupplyUpdate","nodeType":"MemberAccess","referencedDeclaration":4410,"src":"2722:34:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2722:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4304,"nodeType":"ExpressionStatement","src":"2722:36:15"},{"eventCall":{"arguments":[{"id":4306,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4276,"src":"2794:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4307,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"2807:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4305,"name":"TotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4142,"src":"2773:20:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,struct IVotingEscrow.Point memory)"}},"id":4308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2773:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4309,"nodeType":"EmitStatement","src":"2768:57:15"}]},"id":4311,"implemented":true,"kind":"function","modifiers":[],"name":"_updateTotalSupplyFromChain","nameLocation":"2473:27:15","nodeType":"FunctionDefinition","parameters":{"id":4279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4276,"mutability":"mutable","name":"_srcChainId","nameLocation":"2508:11:15","nodeType":"VariableDeclaration","scope":4311,"src":"2501:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4275,"name":"uint16","nodeType":"ElementaryTypeName","src":"2501:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4278,"mutability":"mutable","name":"_payload","nameLocation":"2534:8:15","nodeType":"VariableDeclaration","scope":4311,"src":"2521:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4277,"name":"bytes","nodeType":"ElementaryTypeName","src":"2521:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2500:43:15"},"returnParameters":{"id":4280,"nodeType":"ParameterList","parameters":[],"src":"2553:0:15"},"scope":4399,"src":"2464:368:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4324,"nodeType":"Block","src":"2899:57:15","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4319,"name":"userPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"2931:10:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point storage ref)"}},"id":4321,"indexExpression":{"id":4320,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4313,"src":"2942:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2931:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}],"id":4318,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"2916:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2916:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4317,"id":4323,"nodeType":"Return","src":"2909:40:15"}]},"functionSelector":"70a08231","id":4325,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2847:9:15","nodeType":"FunctionDefinition","parameters":{"id":4314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4313,"mutability":"mutable","name":"_user","nameLocation":"2865:5:15","nodeType":"VariableDeclaration","scope":4325,"src":"2857:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4312,"name":"address","nodeType":"ElementaryTypeName","src":"2857:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2856:15:15"},"returnParameters":{"id":4317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4325,"src":"2893:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4315,"name":"uint","nodeType":"ElementaryTypeName","src":"2893:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2892:6:15"},"scope":4399,"src":"2838:118:15","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4334,"nodeType":"Block","src":"3012:56:15","statements":[{"expression":{"arguments":[{"id":4331,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"3044:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}],"id":4330,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"3029:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3029:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4329,"id":4333,"nodeType":"Return","src":"3022:39:15"}]},"functionSelector":"18160ddd","id":4335,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"2971:11:15","nodeType":"FunctionDefinition","parameters":{"id":4326,"nodeType":"ParameterList","parameters":[],"src":"2982:2:15"},"returnParameters":{"id":4329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4335,"src":"3006:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4327,"name":"uint","nodeType":"ElementaryTypeName","src":"3006:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3005:6:15"},"scope":4399,"src":"2962:106:15","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4347,"nodeType":"Block","src":"3189:46:15","statements":[{"expression":{"arguments":[{"id":4344,"name":"_point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4338,"src":"3221:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4343,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"3206:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3206:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4342,"id":4346,"nodeType":"Return","src":"3199:29:15"}]},"functionSelector":"378ef708","id":4348,"implemented":true,"kind":"function","modifiers":[],"name":"getPointValue","nameLocation":"3111:13:15","nodeType":"FunctionDefinition","parameters":{"id":4339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4338,"mutability":"mutable","name":"_point","nameLocation":"3152:6:15","nodeType":"VariableDeclaration","scope":4348,"src":"3125:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4337,"nodeType":"UserDefinedTypeName","pathNode":{"id":4336,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3125:19:15"},"referencedDeclaration":4477,"src":"3125:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"3124:35:15"},"returnParameters":{"id":4342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4348,"src":"3183:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4340,"name":"uint","nodeType":"ElementaryTypeName","src":"3183:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3182:6:15"},"scope":4399,"src":"3102:133:15","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4397,"nodeType":"Block","src":"3329:190:15","statements":[{"assignments":[4360],"declarations":[{"constant":false,"id":4360,"mutability":"mutable","name":"p","nameLocation":"3366:1:15","nodeType":"VariableDeclaration","scope":4397,"src":"3339:28:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4359,"nodeType":"UserDefinedTypeName","pathNode":{"id":4358,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3339:19:15"},"referencedDeclaration":4477,"src":"3339:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4362,"initialValue":{"id":4361,"name":"_point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"3370:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"3339:37:15"},{"assignments":[4364],"declarations":[{"constant":false,"id":4364,"mutability":"mutable","name":"bias","nameLocation":"3394:4:15","nodeType":"VariableDeclaration","scope":4397,"src":"3387:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4363,"name":"int128","nodeType":"ElementaryTypeName","src":"3387:6:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":4383,"initialValue":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4365,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3401:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":4470,"src":"3401:6:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4367,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3411:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":4472,"src":"3411:7:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4373,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3436:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3436:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":4375,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3454:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":4474,"src":"3454:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3436:22:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3428:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4371,"name":"uint128","nodeType":"ElementaryTypeName","src":"3428:7:15","typeDescriptions":{}}},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3428:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":4370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3421:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":4369,"name":"int128","nodeType":"ElementaryTypeName","src":"3421:6:15","typeDescriptions":{}}},"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3421:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3411:49:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"id":4381,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3410:51:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3401:60:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"3387:74:15"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4384,"name":"bias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"3478:4:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":4385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3485:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3478:8:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":4392,"name":"bias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"3506:4:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":4391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3498:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4390,"name":"uint128","nodeType":"ElementaryTypeName","src":"3498:7:15","typeDescriptions":{}}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3498:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":4389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3493:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4388,"name":"uint","nodeType":"ElementaryTypeName","src":"3493:4:15","typeDescriptions":{}}},"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3493:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3478:34:15","trueExpression":{"hexValue":"30","id":4387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3489:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4355,"id":4396,"nodeType":"Return","src":"3471:41:15"}]},"id":4398,"implemented":true,"kind":"function","modifiers":[],"name":"_getPointValue","nameLocation":"3250:14:15","nodeType":"FunctionDefinition","parameters":{"id":4352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4351,"mutability":"mutable","name":"_point","nameLocation":"3292:6:15","nodeType":"VariableDeclaration","scope":4398,"src":"3265:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4350,"nodeType":"UserDefinedTypeName","pathNode":{"id":4349,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3265:19:15"},"referencedDeclaration":4477,"src":"3265:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"3264:35:15"},"returnParameters":{"id":4355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4398,"src":"3323:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4353,"name":"uint","nodeType":"ElementaryTypeName","src":"3323:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3322:6:15"},"scope":4399,"src":"3241:278:15","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4400,"src":"250:3271:15","usedErrors":[]}],"src":"33:3489:15"},"id":15},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"ast":{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","exportedSymbols":{"IL2LayerZeroDelegation":[4411]},"id":4412,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4401,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:16"},{"abstract":false,"baseContracts":[],"canonicalName":"IL2LayerZeroDelegation","contractDependencies":[],"contractKind":"interface","documentation":{"id":4402,"nodeType":"StructuredDocumentation","src":"721:117:16","text":" @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain."},"fullyImplemented":false,"id":4411,"linearizedBaseContracts":[4411],"name":"IL2LayerZeroDelegation","nameLocation":"849:22:16","nodeType":"ContractDefinition","nodes":[{"functionSelector":"df130bfe","id":4407,"implemented":false,"kind":"function","modifiers":[],"name":"onVeBalBridged","nameLocation":"887:14:16","nodeType":"FunctionDefinition","parameters":{"id":4405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4404,"mutability":"mutable","name":"user","nameLocation":"910:4:16","nodeType":"VariableDeclaration","scope":4407,"src":"902:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4403,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:14:16"},"returnParameters":{"id":4406,"nodeType":"ParameterList","parameters":[],"src":"924:0:16"},"scope":4411,"src":"878:47:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"96345fb5","id":4410,"implemented":false,"kind":"function","modifiers":[],"name":"onVeBalSupplyUpdate","nameLocation":"940:19:16","nodeType":"FunctionDefinition","parameters":{"id":4408,"nodeType":"ParameterList","parameters":[],"src":"959:2:16"},"returnParameters":{"id":4409,"nodeType":"ParameterList","parameters":[],"src":"970:0:16"},"scope":4411,"src":"931:40:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4412,"src":"839:134:16","usedErrors":[]}],"src":"688:286:16"},"id":16},"contracts/interfaces/IOmniVotingEscrow.sol":{"ast":{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","exportedSymbols":{"IOmniVotingEscrow":[4465]},"id":4466,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4413,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:17"},{"abstract":false,"baseContracts":[],"canonicalName":"IOmniVotingEscrow","contractDependencies":[],"contractKind":"interface","documentation":{"id":4414,"nodeType":"StructuredDocumentation","src":"721:162:17","text":" @dev Partial voting escrow bridge interface.\n See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference."},"fullyImplemented":false,"id":4465,"linearizedBaseContracts":[4465],"name":"IOmniVotingEscrow","nameLocation":"894:17:17","nodeType":"ContractDefinition","nodes":[{"functionSelector":"65d092d0","id":4427,"implemented":false,"kind":"function","modifiers":[],"name":"estimateSendUserBalance","nameLocation":"927:23:17","nodeType":"FunctionDefinition","parameters":{"id":4421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4416,"mutability":"mutable","name":"_dstChainId","nameLocation":"958:11:17","nodeType":"VariableDeclaration","scope":4427,"src":"951:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4415,"name":"uint16","nodeType":"ElementaryTypeName","src":"951:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4418,"mutability":"mutable","name":"_useZro","nameLocation":"976:7:17","nodeType":"VariableDeclaration","scope":4427,"src":"971:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4417,"name":"bool","nodeType":"ElementaryTypeName","src":"971:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4420,"mutability":"mutable","name":"_adapterParams","nameLocation":"1000:14:17","nodeType":"VariableDeclaration","scope":4427,"src":"985:29:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4419,"name":"bytes","nodeType":"ElementaryTypeName","src":"985:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"950:65:17"},"returnParameters":{"id":4426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4423,"mutability":"mutable","name":"nativeFee","nameLocation":"1044:9:17","nodeType":"VariableDeclaration","scope":4427,"src":"1039:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4422,"name":"uint","nodeType":"ElementaryTypeName","src":"1039:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4425,"mutability":"mutable","name":"zroFee","nameLocation":"1060:6:17","nodeType":"VariableDeclaration","scope":4427,"src":"1055:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4424,"name":"uint","nodeType":"ElementaryTypeName","src":"1055:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1038:29:17"},"scope":4465,"src":"918:150:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16334c8f","id":4440,"implemented":false,"kind":"function","modifiers":[],"name":"estimateSendTotalSupply","nameLocation":"1083:23:17","nodeType":"FunctionDefinition","parameters":{"id":4434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4429,"mutability":"mutable","name":"_dstChainId","nameLocation":"1114:11:17","nodeType":"VariableDeclaration","scope":4440,"src":"1107:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4428,"name":"uint16","nodeType":"ElementaryTypeName","src":"1107:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4431,"mutability":"mutable","name":"_useZro","nameLocation":"1132:7:17","nodeType":"VariableDeclaration","scope":4440,"src":"1127:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4430,"name":"bool","nodeType":"ElementaryTypeName","src":"1127:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4433,"mutability":"mutable","name":"_adapterParams","nameLocation":"1156:14:17","nodeType":"VariableDeclaration","scope":4440,"src":"1141:29:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4432,"name":"bytes","nodeType":"ElementaryTypeName","src":"1141:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1106:65:17"},"returnParameters":{"id":4439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4436,"mutability":"mutable","name":"nativeFee","nameLocation":"1200:9:17","nodeType":"VariableDeclaration","scope":4440,"src":"1195:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4435,"name":"uint","nodeType":"ElementaryTypeName","src":"1195:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4438,"mutability":"mutable","name":"zroFee","nameLocation":"1216:6:17","nodeType":"VariableDeclaration","scope":4440,"src":"1211:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4437,"name":"uint","nodeType":"ElementaryTypeName","src":"1211:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1194:29:17"},"scope":4465,"src":"1074:150:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4a759489","id":4453,"implemented":false,"kind":"function","modifiers":[],"name":"sendUserBalance","nameLocation":"1239:15:17","nodeType":"FunctionDefinition","parameters":{"id":4451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4442,"mutability":"mutable","name":"_localUser","nameLocation":"1263:10:17","nodeType":"VariableDeclaration","scope":4453,"src":"1255:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4441,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4444,"mutability":"mutable","name":"_dstChainId","nameLocation":"1282:11:17","nodeType":"VariableDeclaration","scope":4453,"src":"1275:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4443,"name":"uint16","nodeType":"ElementaryTypeName","src":"1275:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4446,"mutability":"mutable","name":"_refundAddress","nameLocation":"1311:14:17","nodeType":"VariableDeclaration","scope":4453,"src":"1295:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4445,"name":"address","nodeType":"ElementaryTypeName","src":"1295:15:17","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4448,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1335:18:17","nodeType":"VariableDeclaration","scope":4453,"src":"1327:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4447,"name":"address","nodeType":"ElementaryTypeName","src":"1327:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4450,"mutability":"mutable","name":"_adapterParams","nameLocation":"1368:14:17","nodeType":"VariableDeclaration","scope":4453,"src":"1355:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4449,"name":"bytes","nodeType":"ElementaryTypeName","src":"1355:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1254:129:17"},"returnParameters":{"id":4452,"nodeType":"ParameterList","parameters":[],"src":"1400:0:17"},"scope":4465,"src":"1230:171:17","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"416b154a","id":4464,"implemented":false,"kind":"function","modifiers":[],"name":"sendTotalSupply","nameLocation":"1416:15:17","nodeType":"FunctionDefinition","parameters":{"id":4462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4455,"mutability":"mutable","name":"_dstChainId","nameLocation":"1439:11:17","nodeType":"VariableDeclaration","scope":4464,"src":"1432:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4454,"name":"uint16","nodeType":"ElementaryTypeName","src":"1432:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4457,"mutability":"mutable","name":"_refundAddress","nameLocation":"1468:14:17","nodeType":"VariableDeclaration","scope":4464,"src":"1452:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4456,"name":"address","nodeType":"ElementaryTypeName","src":"1452:15:17","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4459,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1492:18:17","nodeType":"VariableDeclaration","scope":4464,"src":"1484:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4458,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4461,"mutability":"mutable","name":"_adapterParams","nameLocation":"1525:14:17","nodeType":"VariableDeclaration","scope":4464,"src":"1512:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4460,"name":"bytes","nodeType":"ElementaryTypeName","src":"1512:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1431:109:17"},"returnParameters":{"id":4463,"nodeType":"ParameterList","parameters":[],"src":"1557:0:17"},"scope":4465,"src":"1407:151:17","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":4466,"src":"884:676:17","usedErrors":[]}],"src":"688:873:17"},"id":17},"contracts/interfaces/IVotingEscrow.sol":{"ast":{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","exportedSymbols":{"IVotingEscrow":[4518]},"id":4519,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4467,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:18"},{"id":4468,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:18"},{"abstract":false,"baseContracts":[],"canonicalName":"IVotingEscrow","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4518,"linearizedBaseContracts":[4518],"name":"IVotingEscrow","nameLocation":"93:13:18","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IVotingEscrow.Point","id":4477,"members":[{"constant":false,"id":4470,"mutability":"mutable","name":"bias","nameLocation":"143:4:18","nodeType":"VariableDeclaration","scope":4477,"src":"136:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4469,"name":"int128","nodeType":"ElementaryTypeName","src":"136:6:18","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":4472,"mutability":"mutable","name":"slope","nameLocation":"164:5:18","nodeType":"VariableDeclaration","scope":4477,"src":"157:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4471,"name":"int128","nodeType":"ElementaryTypeName","src":"157:6:18","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":4474,"mutability":"mutable","name":"ts","nameLocation":"184:2:18","nodeType":"VariableDeclaration","scope":4477,"src":"179:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4473,"name":"uint","nodeType":"ElementaryTypeName","src":"179:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4476,"mutability":"mutable","name":"blk","nameLocation":"201:3:18","nodeType":"VariableDeclaration","scope":4477,"src":"196:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4475,"name":"uint","nodeType":"ElementaryTypeName","src":"196:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Point","nameLocation":"120:5:18","nodeType":"StructDefinition","scope":4518,"src":"113:122:18","visibility":"public"},{"functionSelector":"900cf0cf","id":4482,"implemented":false,"kind":"function","modifiers":[],"name":"epoch","nameLocation":"250:5:18","nodeType":"FunctionDefinition","parameters":{"id":4478,"nodeType":"ParameterList","parameters":[],"src":"255:2:18"},"returnParameters":{"id":4481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4482,"src":"281:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4479,"name":"uint","nodeType":"ElementaryTypeName","src":"281:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"280:6:18"},"scope":4518,"src":"241:46:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"010ae757","id":4489,"implemented":false,"kind":"function","modifiers":[],"name":"user_point_epoch","nameLocation":"302:16:18","nodeType":"FunctionDefinition","parameters":{"id":4485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4484,"mutability":"mutable","name":"_user","nameLocation":"327:5:18","nodeType":"VariableDeclaration","scope":4489,"src":"319:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4483,"name":"address","nodeType":"ElementaryTypeName","src":"319:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"318:15:18"},"returnParameters":{"id":4488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4489,"src":"352:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4486,"name":"uint","nodeType":"ElementaryTypeName","src":"352:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"351:6:18"},"scope":4518,"src":"293:65:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"28d09d47","id":4499,"implemented":false,"kind":"function","modifiers":[],"name":"user_point_history","nameLocation":"373:18:18","nodeType":"FunctionDefinition","parameters":{"id":4494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4491,"mutability":"mutable","name":"_user","nameLocation":"400:5:18","nodeType":"VariableDeclaration","scope":4499,"src":"392:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4490,"name":"address","nodeType":"ElementaryTypeName","src":"392:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4493,"mutability":"mutable","name":"_epoch","nameLocation":"412:6:18","nodeType":"VariableDeclaration","scope":4499,"src":"407:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4492,"name":"uint","nodeType":"ElementaryTypeName","src":"407:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"391:28:18"},"returnParameters":{"id":4498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4499,"src":"438:12:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4496,"nodeType":"UserDefinedTypeName","pathNode":{"id":4495,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"438:5:18"},"referencedDeclaration":4477,"src":"438:5:18","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"437:14:18"},"scope":4518,"src":"364:88:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d1febfb9","id":4507,"implemented":false,"kind":"function","modifiers":[],"name":"point_history","nameLocation":"467:13:18","nodeType":"FunctionDefinition","parameters":{"id":4502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4501,"mutability":"mutable","name":"_epoch","nameLocation":"486:6:18","nodeType":"VariableDeclaration","scope":4507,"src":"481:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4500,"name":"uint","nodeType":"ElementaryTypeName","src":"481:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:13:18"},"returnParameters":{"id":4506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4507,"src":"512:12:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4504,"nodeType":"UserDefinedTypeName","pathNode":{"id":4503,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"512:5:18"},"referencedDeclaration":4477,"src":"512:5:18","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"511:14:18"},"scope":4518,"src":"458:68:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c2c4c5c1","id":4510,"implemented":false,"kind":"function","modifiers":[],"name":"checkpoint","nameLocation":"541:10:18","nodeType":"FunctionDefinition","parameters":{"id":4508,"nodeType":"ParameterList","parameters":[],"src":"551:2:18"},"returnParameters":{"id":4509,"nodeType":"ParameterList","parameters":[],"src":"562:0:18"},"scope":4518,"src":"532:31:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"adc63589","id":4517,"implemented":false,"kind":"function","modifiers":[],"name":"locked__end","nameLocation":"578:11:18","nodeType":"FunctionDefinition","parameters":{"id":4513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4512,"mutability":"mutable","name":"user","nameLocation":"598:4:18","nodeType":"VariableDeclaration","scope":4517,"src":"590:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4511,"name":"address","nodeType":"ElementaryTypeName","src":"590:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"589:14:18"},"returnParameters":{"id":4516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4517,"src":"627:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4514,"name":"uint","nodeType":"ElementaryTypeName","src":"627:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"626:6:18"},"scope":4518,"src":"569:64:18","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4519,"src":"83:552:18","usedErrors":[]}],"src":"38:598:18"},"id":18},"contracts/interfaces/IVotingEscrowRemapper.sol":{"ast":{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","exportedSymbols":{"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540]},"id":4541,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4520,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:19"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./IVotingEscrow.sol","id":4521,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4541,"sourceUnit":4519,"src":"721:29:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","file":"./IOmniVotingEscrow.sol","id":4522,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4541,"sourceUnit":4466,"src":"751:33:19","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IVotingEscrowRemapper","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4540,"linearizedBaseContracts":[4540],"name":"IVotingEscrowRemapper","nameLocation":"796:21:19","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4523,"nodeType":"StructuredDocumentation","src":"824:66:19","text":" @notice Returns Voting Escrow contract address."},"functionSelector":"08b0308a","id":4529,"implemented":false,"kind":"function","modifiers":[],"name":"getVotingEscrow","nameLocation":"904:15:19","nodeType":"FunctionDefinition","parameters":{"id":4524,"nodeType":"ParameterList","parameters":[],"src":"919:2:19"},"returnParameters":{"id":4528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4527,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4529,"src":"945:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":4526,"nodeType":"UserDefinedTypeName","pathNode":{"id":4525,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"945:13:19"},"referencedDeclaration":4518,"src":"945:13:19","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"internal"}],"src":"944:15:19"},"scope":4540,"src":"895:65:19","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4530,"nodeType":"StructuredDocumentation","src":"1919:378:19","text":" @notice Returns the remote user corresponding to an address on the local chain.\n @dev Returns `address(0)` if the remapping does not exist for the given local user.\n @param localUser - Address of the user on the local chain which are querying the remote address for.\n @param chainId - The chain ID of the network which the remote user is on."},"functionSelector":"bda75c38","id":4539,"implemented":false,"kind":"function","modifiers":[],"name":"getRemoteUser","nameLocation":"2311:13:19","nodeType":"FunctionDefinition","parameters":{"id":4535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4532,"mutability":"mutable","name":"localUser","nameLocation":"2333:9:19","nodeType":"VariableDeclaration","scope":4539,"src":"2325:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4531,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4534,"mutability":"mutable","name":"chainId","nameLocation":"2351:7:19","nodeType":"VariableDeclaration","scope":4539,"src":"2344:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4533,"name":"uint16","nodeType":"ElementaryTypeName","src":"2344:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2324:35:19"},"returnParameters":{"id":4538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4539,"src":"2383:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4536,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2382:9:19"},"scope":4540,"src":"2302:90:19","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4541,"src":"786:1608:19","usedErrors":[]}],"src":"688:1707:19"},"id":19},"contracts/mocks/ERC20Mock.sol":{"ast":{"absolutePath":"contracts/mocks/ERC20Mock.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"ERC20Mock":[4571],"IERC20":[3661],"IERC20Metadata":[3686]},"id":4572,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4542,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:20"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":4543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4572,"sourceUnit":3584,"src":"57:55:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4544,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"154:5:20"},"id":4545,"nodeType":"InheritanceSpecifier","src":"154:5:20"}],"canonicalName":"ERC20Mock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4571,"linearizedBaseContracts":[4571,3583,3686,3661,3708],"name":"ERC20Mock","nameLocation":"141:9:20","nodeType":"ContractDefinition","nodes":[{"body":{"id":4556,"nodeType":"Block","src":"244:2:20","statements":[]},"id":4557,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4552,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"228:5:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4553,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"235:7:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":4554,"kind":"baseConstructorSpecifier","modifierName":{"id":4551,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"222:5:20"},"nodeType":"ModifierInvocation","src":"222:21:20"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4547,"mutability":"mutable","name":"name_","nameLocation":"192:5:20","nodeType":"VariableDeclaration","scope":4557,"src":"178:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4546,"name":"string","nodeType":"ElementaryTypeName","src":"178:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4549,"mutability":"mutable","name":"symbol_","nameLocation":"213:7:20","nodeType":"VariableDeclaration","scope":4557,"src":"199:21:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4548,"name":"string","nodeType":"ElementaryTypeName","src":"199:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"177:44:20"},"returnParameters":{"id":4555,"nodeType":"ParameterList","parameters":[],"src":"244:0:20"},"scope":4571,"src":"166:80:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4569,"nodeType":"Block","src":"300:36:20","statements":[{"expression":{"arguments":[{"id":4565,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4559,"src":"316:3:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4566,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"321:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4564,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"310:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"310:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4568,"nodeType":"ExpressionStatement","src":"310:19:20"}]},"functionSelector":"40c10f19","id":4570,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"261:4:20","nodeType":"FunctionDefinition","parameters":{"id":4562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4559,"mutability":"mutable","name":"_to","nameLocation":"274:3:20","nodeType":"VariableDeclaration","scope":4570,"src":"266:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4558,"name":"address","nodeType":"ElementaryTypeName","src":"266:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4561,"mutability":"mutable","name":"_amount","nameLocation":"284:7:20","nodeType":"VariableDeclaration","scope":4570,"src":"279:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4560,"name":"uint","nodeType":"ElementaryTypeName","src":"279:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"265:27:20"},"returnParameters":{"id":4563,"nodeType":"ParameterList","parameters":[],"src":"300:0:20"},"scope":4571,"src":"252:84:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4572,"src":"132:206:20","usedErrors":[]}],"src":"32:307:20"},"id":20},"contracts/mocks/L2LayerZeroDelegation.sol":{"ast":{"absolutePath":"contracts/mocks/L2LayerZeroDelegation.sol","exportedSymbols":{"IL2LayerZeroDelegation":[4411],"L2LayerZeroDelegation":[4587]},"id":4588,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4573,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:21"},{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","file":"../interfaces/IL2LayerZeroDelegation.sol","id":4574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4588,"sourceUnit":4412,"src":"71:50:21","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4575,"name":"IL2LayerZeroDelegation","nodeType":"IdentifierPath","referencedDeclaration":4411,"src":"157:22:21"},"id":4576,"nodeType":"InheritanceSpecifier","src":"157:22:21"}],"canonicalName":"L2LayerZeroDelegation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4587,"linearizedBaseContracts":[4587,4411],"name":"L2LayerZeroDelegation","nameLocation":"132:21:21","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[4407],"body":{"id":4581,"nodeType":"Block","src":"233:2:21","statements":[]},"functionSelector":"df130bfe","id":4582,"implemented":true,"kind":"function","modifiers":[],"name":"onVeBalBridged","nameLocation":"195:14:21","nodeType":"FunctionDefinition","parameters":{"id":4579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4578,"mutability":"mutable","name":"user","nameLocation":"218:4:21","nodeType":"VariableDeclaration","scope":4582,"src":"210:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4577,"name":"address","nodeType":"ElementaryTypeName","src":"210:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"209:14:21"},"returnParameters":{"id":4580,"nodeType":"ParameterList","parameters":[],"src":"233:0:21"},"scope":4587,"src":"186:49:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4410],"body":{"id":4585,"nodeType":"Block","src":"281:2:21","statements":[]},"functionSelector":"96345fb5","id":4586,"implemented":true,"kind":"function","modifiers":[],"name":"onVeBalSupplyUpdate","nameLocation":"250:19:21","nodeType":"FunctionDefinition","parameters":{"id":4583,"nodeType":"ParameterList","parameters":[],"src":"269:2:21"},"returnParameters":{"id":4584,"nodeType":"ParameterList","parameters":[],"src":"281:0:21"},"scope":4587,"src":"241:42:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4588,"src":"123:162:21","usedErrors":[]}],"src":"46:240:21"},"id":21},"contracts/mocks/LZEndpointMock.sol":{"ast":{"absolutePath":"contracts/mocks/LZEndpointMock.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LZEndpointMock":[2453],"LZMock":[4603],"LzLib":[427]},"id":4604,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4589,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:22"},{"id":4590,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:22"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","file":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","id":4591,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4604,"sourceUnit":2454,"src":"83:77:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4592,"name":"LZEndpointMock","nodeType":"IdentifierPath","referencedDeclaration":2453,"src":"787:14:22"},"id":4593,"nodeType":"InheritanceSpecifier","src":"787:14:22"}],"canonicalName":"LZMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4603,"linearizedBaseContracts":[4603,2453,144,189],"name":"LZMock","nameLocation":"777:6:22","nodeType":"ContractDefinition","nodes":[{"body":{"id":4601,"nodeType":"Block","src":"862:2:22","statements":[]},"id":4602,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4598,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4595,"src":"852:8:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":4599,"kind":"baseConstructorSpecifier","modifierName":{"id":4597,"name":"LZEndpointMock","nodeType":"IdentifierPath","referencedDeclaration":2453,"src":"837:14:22"},"nodeType":"ModifierInvocation","src":"837:24:22"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4595,"mutability":"mutable","name":"_chainId","nameLocation":"827:8:22","nodeType":"VariableDeclaration","scope":4602,"src":"820:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4594,"name":"uint16","nodeType":"ElementaryTypeName","src":"820:6:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"819:17:22"},"returnParameters":{"id":4600,"nodeType":"ParameterList","parameters":[],"src":"862:0:22"},"scope":4603,"src":"808:56:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4604,"src":"768:98:22","usedErrors":[]}],"src":"38:829:22"},"id":22},"contracts/mocks/MockToken.sol":{"ast":{"absolutePath":"contracts/mocks/MockToken.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"IERC20":[3661],"IERC20Metadata":[3686],"MockToken":[4644]},"id":4645,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4605,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"33:23:23"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":4606,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4645,"sourceUnit":3584,"src":"58:55:23","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4607,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"155:5:23"},"id":4608,"nodeType":"InheritanceSpecifier","src":"155:5:23"}],"canonicalName":"MockToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4644,"linearizedBaseContracts":[4644,3583,3686,3661,3708],"name":"MockToken","nameLocation":"142:9:23","nodeType":"ContractDefinition","nodes":[{"body":{"id":4629,"nodeType":"Block","src":"267:84:23","statements":[{"expression":{"arguments":[{"expression":{"id":4620,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"283:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"283:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"},"id":4626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"315f3030305f3030305f303030","id":4622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295:13:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1_000_000_000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":4625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":4624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"315:2:23","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"311:6:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"295:22:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"}],"id":4619,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"277:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"277:41:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4628,"nodeType":"ExpressionStatement","src":"277:41:23"}]},"id":4630,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4615,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"251:5:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4616,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"258:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":4617,"kind":"baseConstructorSpecifier","modifierName":{"id":4614,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"245:5:23"},"nodeType":"ModifierInvocation","src":"245:21:23"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4610,"mutability":"mutable","name":"name_","nameLocation":"215:5:23","nodeType":"VariableDeclaration","scope":4630,"src":"201:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4609,"name":"string","nodeType":"ElementaryTypeName","src":"201:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4612,"mutability":"mutable","name":"symbol_","nameLocation":"236:7:23","nodeType":"VariableDeclaration","scope":4630,"src":"222:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4611,"name":"string","nodeType":"ElementaryTypeName","src":"222:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"200:44:23"},"returnParameters":{"id":4618,"nodeType":"ParameterList","parameters":[],"src":"267:0:23"},"scope":4644,"src":"189:162:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4642,"nodeType":"Block","src":"427:36:23","statements":[{"expression":{"arguments":[{"id":4638,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4632,"src":"443:3:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4639,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4634,"src":"448:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4637,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"437:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"437:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4641,"nodeType":"ExpressionStatement","src":"437:19:23"}]},"functionSelector":"40c10f19","id":4643,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"388:4:23","nodeType":"FunctionDefinition","parameters":{"id":4635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4632,"mutability":"mutable","name":"_to","nameLocation":"401:3:23","nodeType":"VariableDeclaration","scope":4643,"src":"393:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4631,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4634,"mutability":"mutable","name":"_amount","nameLocation":"411:7:23","nodeType":"VariableDeclaration","scope":4643,"src":"406:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4633,"name":"uint","nodeType":"ElementaryTypeName","src":"406:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:27:23"},"returnParameters":{"id":4636,"nodeType":"ParameterList","parameters":[],"src":"427:0:23"},"scope":4644,"src":"379:84:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4645,"src":"133:332:23","usedErrors":[]}],"src":"33:433:23"},"id":23},"contracts/mocks/VotingEscrowRemapperMock.sol":{"ast":{"absolutePath":"contracts/mocks/VotingEscrowRemapperMock.sol","exportedSymbols":{"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540],"VotingEscrowRemapperMock":[4704]},"id":4705,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4646,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:24"},{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","file":"../interfaces/IVotingEscrowRemapper.sol","id":4647,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4705,"sourceUnit":4541,"src":"71:49:24","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4648,"name":"IVotingEscrowRemapper","nodeType":"IdentifierPath","referencedDeclaration":4540,"src":"159:21:24"},"id":4649,"nodeType":"InheritanceSpecifier","src":"159:21:24"}],"canonicalName":"VotingEscrowRemapperMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4704,"linearizedBaseContracts":[4704,4540],"name":"VotingEscrowRemapperMock","nameLocation":"131:24:24","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[4529],"constant":false,"functionSelector":"08b0308a","id":4652,"mutability":"mutable","name":"getVotingEscrow","nameLocation":"208:15:24","nodeType":"VariableDeclaration","scope":4704,"src":"187:36:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":4651,"nodeType":"UserDefinedTypeName","pathNode":{"id":4650,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"187:13:24"},"referencedDeclaration":4518,"src":"187:13:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"public"},{"constant":false,"functionSelector":"e996a306","id":4658,"mutability":"mutable","name":"_localToRemoteAddressMap","nameLocation":"284:24:24","nodeType":"VariableDeclaration","scope":4704,"src":"230:78:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"},"typeName":{"id":4657,"keyType":{"id":4653,"name":"uint16","nodeType":"ElementaryTypeName","src":"238:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"230:46:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"},"valueType":{"id":4656,"keyType":{"id":4654,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"248:27:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":4655,"name":"address","nodeType":"ElementaryTypeName","src":"267:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"public"},{"body":{"id":4669,"nodeType":"Block","src":"350:63:24","statements":[{"expression":{"id":4667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4663,"name":"getVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"360:15:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4665,"name":"_votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"392:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4664,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"378:13:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"378:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"src":"360:46:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4668,"nodeType":"ExpressionStatement","src":"360:46:24"}]},"id":4670,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4660,"mutability":"mutable","name":"_votingEscrow","nameLocation":"335:13:24","nodeType":"VariableDeclaration","scope":4670,"src":"327:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4659,"name":"address","nodeType":"ElementaryTypeName","src":"327:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"326:23:24"},"returnParameters":{"id":4662,"nodeType":"ParameterList","parameters":[],"src":"350:0:24"},"scope":4704,"src":"315:98:24","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4539],"body":{"id":4685,"nodeType":"Block","src":"514:73:24","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":4679,"name":"_localToRemoteAddressMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"531:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"}},"id":4681,"indexExpression":{"id":4680,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4674,"src":"556:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"531:37:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4683,"indexExpression":{"id":4682,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4672,"src":"569:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"531:49:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4678,"id":4684,"nodeType":"Return","src":"524:56:24"}]},"functionSelector":"bda75c38","id":4686,"implemented":true,"kind":"function","modifiers":[],"name":"getRemoteUser","nameLocation":"428:13:24","nodeType":"FunctionDefinition","parameters":{"id":4675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4672,"mutability":"mutable","name":"_localUser","nameLocation":"450:10:24","nodeType":"VariableDeclaration","scope":4686,"src":"442:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4671,"name":"address","nodeType":"ElementaryTypeName","src":"442:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4674,"mutability":"mutable","name":"_dstChainId","nameLocation":"469:11:24","nodeType":"VariableDeclaration","scope":4686,"src":"462:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4673,"name":"uint16","nodeType":"ElementaryTypeName","src":"462:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"441:40:24"},"returnParameters":{"id":4678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4686,"src":"505:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4676,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"504:9:24"},"scope":4704,"src":"419:168:24","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4702,"nodeType":"Block","src":"666:80:24","statements":[{"expression":{"id":4700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4693,"name":"_localToRemoteAddressMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"676:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"}},"id":4697,"indexExpression":{"id":4694,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4690,"src":"701:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"676:37:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4698,"indexExpression":{"expression":{"id":4695,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"714:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"714:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"676:49:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4699,"name":"_remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4688,"src":"728:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"676:63:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4701,"nodeType":"ExpressionStatement","src":"676:63:24"}]},"functionSelector":"d0ff58ba","id":4703,"implemented":true,"kind":"function","modifiers":[],"name":"setRemoteUser","nameLocation":"602:13:24","nodeType":"FunctionDefinition","parameters":{"id":4691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4688,"mutability":"mutable","name":"_remoteUser","nameLocation":"624:11:24","nodeType":"VariableDeclaration","scope":4703,"src":"616:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4687,"name":"address","nodeType":"ElementaryTypeName","src":"616:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4690,"mutability":"mutable","name":"_dstChainId","nameLocation":"644:11:24","nodeType":"VariableDeclaration","scope":4703,"src":"637:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4689,"name":"uint16","nodeType":"ElementaryTypeName","src":"637:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"615:41:24"},"returnParameters":{"id":4692,"nodeType":"ParameterList","parameters":[],"src":"666:0:24"},"scope":4704,"src":"593:153:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4705,"src":"122:626:24","usedErrors":[]}],"src":"46:703:24"},"id":24}},"contracts":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"ILayerZeroEndpoint":{"abi":[{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParam","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_destination","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParam\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_destination\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":\"ILayerZeroEndpoint\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"ILayerZeroReceiver":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"lzReceive(uint16,bytes,uint64,bytes)":"001d3567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"ILayerZeroUserApplicationConfig":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"forceResumeReceive(uint16,bytes)":"42d65a8d","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":\"ILayerZeroUserApplicationConfig\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"LzLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dd45bb7c68d1288aa6bf57d783daed5fa71495dee80aa29d6f8790585ee1534164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD GASLIMIT 0xBB PUSH29 0x68D1288AA6BF57D783DAED5FA71495DEE80AA29D6F8790585EE1534164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"98:3212:3:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;98:3212:3;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dd45bb7c68d1288aa6bf57d783daed5fa71495dee80aa29d6f8790585ee1534164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD GASLIMIT 0xBB PUSH29 0x68D1288AA6BF57D783DAED5FA71495DEE80AA29D6F8790585EE1534164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"98:3212:3:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addressToBytes32(address)":"infinite","buildAdapterParams(struct LzLib.AirdropParams memory,uint256)":"infinite","buildAirdropAdapterParams(uint256,struct LzLib.AirdropParams memory)":"infinite","buildDefaultAdapterParams(uint256)":"infinite","bytes32ToAddress(bytes32)":"infinite","decodeAdapterParams(bytes memory)":"infinite","getGasLimit(bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":\"LzLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"LzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":\"LzApp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"precrime","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"NonblockingLzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":\"NonblockingLzApp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"LZEndpointMock":{"abi":[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ValueTransferFailed","type":"event"},{"inputs":[],"name":"blockNextMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdapterParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getLengthOfQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lzEndpointLookup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"msgsToDeliver","outputs":[{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMsgBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeConfig","outputs":[{"internalType":"uint256","name":"zroFee","type":"uint256"},{"internalType":"uint256","name":"nativeBP","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerFeeConfig","outputs":[{"internalType":"uint128","name":"dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"baseGas","type":"uint64"},{"internalType":"uint64","name":"gasPerByte","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"setDefaultAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destAddr","type":"address"},{"internalType":"address","name":"lzEndpointAddr","type":"address"}],"name":"setDestLzEndpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleFee","type":"uint256"}],"name":"setOracleFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"},{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"_dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"_dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"_baseGas","type":"uint64"},{"internalType":"uint64","name":"_gasPerByte","type":"uint64"}],"name":"setRelayerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1343":{"entryPoint":null,"id":1343,"parameterSlots":1,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":296,"id":258,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"extract_byte_array_length":{"entryPoint":548,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:958:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"94:196:25","statements":[{"body":{"nodeType":"YulBlock","src":"140:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"149:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"152:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"142:6:25"},"nodeType":"YulFunctionCall","src":"142:12:25"},"nodeType":"YulExpressionStatement","src":"142:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"115:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"124:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"111:3:25"},"nodeType":"YulFunctionCall","src":"111:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"136:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"107:3:25"},"nodeType":"YulFunctionCall","src":"107:32:25"},"nodeType":"YulIf","src":"104:52:25"},{"nodeType":"YulVariableDeclaration","src":"165:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"184:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"178:5:25"},"nodeType":"YulFunctionCall","src":"178:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"246:6:25"},"nodeType":"YulFunctionCall","src":"246:12:25"},"nodeType":"YulExpressionStatement","src":"246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"234:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"223:3:25"},"nodeType":"YulFunctionCall","src":"223:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"213:2:25"},"nodeType":"YulFunctionCall","src":"213:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"206:6:25"},"nodeType":"YulFunctionCall","src":"206:37:25"},"nodeType":"YulIf","src":"203:57:25"},{"nodeType":"YulAssignment","src":"269:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"279:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"269:6:25"}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"60:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"71:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"83:6:25","type":""}],"src":"14:276:25"},{"body":{"nodeType":"YulBlock","src":"440:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"457:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"475:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"488:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"493:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"484:3:25"},"nodeType":"YulFunctionCall","src":"484:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"462:3:25"},"nodeType":"YulFunctionCall","src":"462:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"450:6:25"},"nodeType":"YulFunctionCall","src":"450:51:25"},"nodeType":"YulExpressionStatement","src":"450:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"521:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"526:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"530:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"510:6:25"},"nodeType":"YulFunctionCall","src":"510:27:25"},"nodeType":"YulExpressionStatement","src":"510:27:25"},{"nodeType":"YulAssignment","src":"546:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"557:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"562:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"553:3:25"},"nodeType":"YulFunctionCall","src":"553:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"546:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"408:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"413:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"421:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"432:3:25","type":""}],"src":"295:276:25"},{"body":{"nodeType":"YulBlock","src":"631:325:25","statements":[{"nodeType":"YulAssignment","src":"641:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"655:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"658:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"651:3:25"},"nodeType":"YulFunctionCall","src":"651:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"641:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"672:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"702:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"698:3:25"},"nodeType":"YulFunctionCall","src":"698:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"676:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"749:31:25","statements":[{"nodeType":"YulAssignment","src":"751:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"765:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"773:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"751:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"729:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"722:6:25"},"nodeType":"YulFunctionCall","src":"722:26:25"},"nodeType":"YulIf","src":"719:61:25"},{"body":{"nodeType":"YulBlock","src":"839:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"860:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"867:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"872:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"863:3:25"},"nodeType":"YulFunctionCall","src":"863:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"853:6:25"},"nodeType":"YulFunctionCall","src":"853:31:25"},"nodeType":"YulExpressionStatement","src":"853:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"907:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"897:6:25"},"nodeType":"YulFunctionCall","src":"897:15:25"},"nodeType":"YulExpressionStatement","src":"897:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"932:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"925:6:25"},"nodeType":"YulFunctionCall","src":"925:15:25"},"nodeType":"YulExpressionStatement","src":"925:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"795:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"826:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"815:2:25"},"nodeType":"YulFunctionCall","src":"815:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"792:2:25"},"nodeType":"YulFunctionCall","src":"792:38:25"},"nodeType":"YulIf","src":"789:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"611:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"620:6:25","type":""}],"src":"576:380:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff19166101011790553480156200002057600080fd5b50604051620030b7380380620030b78339810160408190526200004391620001f7565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e8918301829052600455600555662386f26fc100006006556200010a9062030d409062000128811b62001c9d17901c565b8051620001209160079160209091019062000151565b505062000261565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b8280546200015f9062000224565b90600052602060002090601f016020900481019282620001835760008555620001ce565b82601f106200019e57805160ff1916838001178555620001ce565b82800160010185558215620001ce579182015b82811115620001ce578251825591602001919060010190620001b1565b50620001dc929150620001e0565b5090565b5b80821115620001dc5760008155600101620001e1565b6000602082840312156200020a57600080fd5b815161ffff811681146200021d57600080fd5b9392505050565b600181811c908216806200023957607f821691505b602082108114156200025b57634e487b7160e01b600052602260045260246000fd5b50919050565b612e4680620002716000396000f3fe60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220384edda9ae8a264ade4ab6af65ffc5d1d0b63daa1521cc15633806bc2a19631664736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x30B7 CODESIZE SUB DUP1 PUSH3 0x30B7 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x43 SWAP2 PUSH3 0x1F7 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP4 AND OR DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH5 0x2540BE400 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0x8AC7230489E80000 DUP3 DUP5 ADD MSTORE PUSH1 0x64 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH21 0x2540BE400000000000000000000000002540BE400 PUSH1 0x2 SSTORE PUSH25 0x1000000000000006400000000000000008AC7230489E80000 PUSH1 0x3 SSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH8 0xDE0B6B3A7640000 DUP1 DUP3 MSTORE PUSH2 0x3E8 SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x4 SSTORE PUSH1 0x5 SSTORE PUSH7 0x2386F26FC10000 PUSH1 0x6 SSTORE PUSH3 0x10A SWAP1 PUSH3 0x30D40 SWAP1 PUSH3 0x128 DUP2 SHL PUSH3 0x1C9D OR SWAP1 SHR JUMP JUMPDEST DUP1 MLOAD PUSH3 0x120 SWAP2 PUSH1 0x7 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x151 JUMP JUMPDEST POP POP PUSH3 0x261 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x15F SWAP1 PUSH3 0x224 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x183 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1CE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x19E JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1CE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1CE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1CE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B1 JUMP JUMPDEST POP PUSH3 0x1DC SWAP3 SWAP2 POP PUSH3 0x1E0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH3 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x239 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E46 DUP1 PUSH3 0x271 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x4E 0xDD 0xA9 0xAE DUP11 0x26 0x4A 0xDE 0x4A 0xB6 0xAF PUSH6 0xFFC5D1D0B63D 0xAA ISZERO 0x21 0xCC ISZERO PUSH4 0x3806BC2A NOT PUSH4 0x1664736F PUSH13 0x634300080A0033000000000000 ","sourceMap":"817:15467:6:-:0;;;1950:38;;;-1:-1:-1;;1994:41:6;;;;;3379:530;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3418:11;:22;;-1:-1:-1;;3418:22:6;;;;;;;3493:222;;;;;;;;3539:4;3493:222;;;;;;;;;;;3647:4;3493:222;;;;3674:3;3493:222;;;;;;;;;;;;3474:241;:16;:241;;;;3745:49;;;;;;;;3772:4;3745:49;;;3788:4;3745:49;;;;;;3725:17;:69;;;3826:4;3814:9;:16;3863:39;;3895:6;;3863:31;;;;;:39;;:::i;:::-;3840:62;;;;:20;;:62;;;;;;:::i;:::-;;3379:530;817:15467;;918:238:3;1114:35;;;-1:-1:-1;;;1114:35:3;;;450:51:25;517:11;;;;510:27;;;;1114:35:3;;;;;;;;;;553:12:25;;1114:35:3;;;918:238::o;817:15467:6:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:15467:6;;;-1:-1:-1;817:15467:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:276:25;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:6;227:5;223:18;216:5;213:29;203:57;;256:1;253;246:12;203:57;279:5;14:276;-1:-1:-1;;;14:276:25:o;576:380::-;655:1;651:12;;;;698;;;719:61;;773:4;765:6;761:17;751:27;;719:61;826:2;818:6;815:14;795:18;792:38;789:161;;;872:10;867:3;863:20;860:1;853:31;907:4;904:1;897:15;935:4;932:1;925:15;789:161;;576:380;;;:::o;:::-;817:15467:6;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_2326":{"entryPoint":7837,"id":2326,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_2356":{"entryPoint":7776,"id":2356,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_2452":{"entryPoint":7366,"id":2452,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_2175":{"entryPoint":null,"id":2175,"parameterSlots":0,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":7325,"id":258,"parameterSlots":1,"returnSlots":1},"@decodeAdapterParams_375":{"entryPoint":8340,"id":375,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_1168":{"entryPoint":2595,"id":1168,"parameterSlots":0,"returnSlots":0},"@estimateFees_1824":{"entryPoint":2737,"id":1824,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_2150":{"entryPoint":2992,"id":2150,"parameterSlots":3,"returnSlots":0},"@getChainId_1833":{"entryPoint":null,"id":1833,"parameterSlots":0,"returnSlots":1},"@getConfig_2029":{"entryPoint":null,"id":2029,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_1743":{"entryPoint":7256,"id":1743,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_2167":{"entryPoint":3319,"id":2167,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_1760":{"entryPoint":null,"id":1760,"parameterSlots":2,"returnSlots":1},"@getReceiveLibraryAddress_1990":{"entryPoint":null,"id":1990,"parameterSlots":1,"returnSlots":1},"@getReceiveVersion_2051":{"entryPoint":null,"id":2051,"parameterSlots":1,"returnSlots":1},"@getSendLibraryAddress_1976":{"entryPoint":null,"id":1976,"parameterSlots":1,"returnSlots":1},"@getSendVersion_2040":{"entryPoint":null,"id":2040,"parameterSlots":1,"returnSlots":1},"@hasStoredPayload_1962":{"entryPoint":2272,"id":1962,"parameterSlots":3,"returnSlots":1},"@inboundNonce_1174":{"entryPoint":null,"id":1174,"parameterSlots":0,"returnSlots":0},"@isReceivingPayload_2012":{"entryPoint":null,"id":2012,"parameterSlots":0,"returnSlots":1},"@isSendingPayload_2001":{"entryPoint":null,"id":2001,"parameterSlots":0,"returnSlots":1},"@lzEndpointLookup_1154":{"entryPoint":null,"id":1154,"parameterSlots":0,"returnSlots":0},"@mockChainId_1156":{"entryPoint":null,"id":1156,"parameterSlots":0,"returnSlots":0},"@msgsToDeliver_1195":{"entryPoint":2342,"id":1195,"parameterSlots":0,"returnSlots":0},"@nextMsgBlocked_1158":{"entryPoint":null,"id":1158,"parameterSlots":0,"returnSlots":0},"@oracleFee_1166":{"entryPoint":null,"id":1166,"parameterSlots":0,"returnSlots":0},"@outboundNonce_1180":{"entryPoint":null,"id":1180,"parameterSlots":0,"returnSlots":0},"@protocolFeeConfig_1164":{"entryPoint":null,"id":1164,"parameterSlots":0,"returnSlots":0},"@receivePayload_1726":{"entryPoint":3913,"id":1726,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_1161":{"entryPoint":null,"id":1161,"parameterSlots":0,"returnSlots":0},"@retryPayload_1934":{"entryPoint":3379,"id":1934,"parameterSlots":5,"returnSlots":0},"@send_1519":{"entryPoint":5798,"id":1519,"parameterSlots":7,"returnSlots":0},"@setConfig_2064":{"entryPoint":null,"id":2064,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_2273":{"entryPoint":7233,"id":2273,"parameterSlots":1,"returnSlots":0},"@setDestLzEndpoint_2189":{"entryPoint":null,"id":2189,"parameterSlots":2,"returnSlots":0},"@setOracleFee_2263":{"entryPoint":null,"id":2263,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_2253":{"entryPoint":null,"id":2253,"parameterSlots":2,"returnSlots":0},"@setReceiveVersion_2078":{"entryPoint":null,"id":2078,"parameterSlots":1,"returnSlots":0},"@setRelayerPrice_2233":{"entryPoint":null,"id":2233,"parameterSlots":5,"returnSlots":0},"@setSendVersion_2071":{"entryPoint":null,"id":2071,"parameterSlots":1,"returnSlots":0},"@storedPayload_1187":{"entryPoint":null,"id":1187,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":9058,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":9029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":10242,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":10826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":9696,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":8981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":10034,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":9797,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9130,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":10272,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":10089,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":9957,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":10447,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":9374,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10749,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":10646,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":10217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":9597,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint128":{"entryPoint":9650,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint16":{"entryPoint":8958,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":9673,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":11007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10886,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9537,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11048,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11339,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed":{"entryPoint":11155,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11078,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11695,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11453,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10983,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":11657,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11590,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":11610,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11267,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":10902,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":11312,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint64":{"entryPoint":11228,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10961,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11568,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":11770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11290,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9212,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9008,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:26605:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"143:119:25","statements":[{"nodeType":"YulAssignment","src":"153:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"165:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"176:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"161:3:25"},"nodeType":"YulFunctionCall","src":"161:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"153:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"206:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"188:6:25"},"nodeType":"YulFunctionCall","src":"188:25:25"},"nodeType":"YulExpressionStatement","src":"188:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"233:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"229:3:25"},"nodeType":"YulFunctionCall","src":"229:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"249:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"222:6:25"},"nodeType":"YulFunctionCall","src":"222:34:25"},"nodeType":"YulExpressionStatement","src":"222:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"115:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"123:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"134:4:25","type":""}],"src":"14:248:25"},{"body":{"nodeType":"YulBlock","src":"315:111:25","statements":[{"nodeType":"YulAssignment","src":"325:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"325:5:25"}]},{"body":{"nodeType":"YulBlock","src":"404:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"413:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"416:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"406:6:25"},"nodeType":"YulFunctionCall","src":"406:12:25"},"nodeType":"YulExpressionStatement","src":"406:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"376:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"387:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"394:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"383:3:25"},"nodeType":"YulFunctionCall","src":"383:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"373:2:25"},"nodeType":"YulFunctionCall","src":"373:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"366:6:25"},"nodeType":"YulFunctionCall","src":"366:37:25"},"nodeType":"YulIf","src":"363:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"294:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"305:5:25","type":""}],"src":"267:159:25"},{"body":{"nodeType":"YulBlock","src":"500:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"546:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"555:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"558:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"548:6:25"},"nodeType":"YulFunctionCall","src":"548:12:25"},"nodeType":"YulExpressionStatement","src":"548:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"521:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"530:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"542:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"513:3:25"},"nodeType":"YulFunctionCall","src":"513:32:25"},"nodeType":"YulIf","src":"510:52:25"},{"nodeType":"YulAssignment","src":"571:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"599:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"581:17:25"},"nodeType":"YulFunctionCall","src":"581:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"571:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"466:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"477:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"489:6:25","type":""}],"src":"431:184:25"},{"body":{"nodeType":"YulBlock","src":"665:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"729:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"738:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"741:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"731:6:25"},"nodeType":"YulFunctionCall","src":"731:12:25"},"nodeType":"YulExpressionStatement","src":"731:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"699:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"714:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"719:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"710:3:25"},"nodeType":"YulFunctionCall","src":"710:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"723:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"706:3:25"},"nodeType":"YulFunctionCall","src":"706:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"695:3:25"},"nodeType":"YulFunctionCall","src":"695:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"685:2:25"},"nodeType":"YulFunctionCall","src":"685:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:50:25"},"nodeType":"YulIf","src":"675:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"654:5:25","type":""}],"src":"620:131:25"},{"body":{"nodeType":"YulBlock","src":"826:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"872:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"881:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"884:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"874:6:25"},"nodeType":"YulFunctionCall","src":"874:12:25"},"nodeType":"YulExpressionStatement","src":"874:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"847:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"843:3:25"},"nodeType":"YulFunctionCall","src":"843:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"868:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"839:3:25"},"nodeType":"YulFunctionCall","src":"839:32:25"},"nodeType":"YulIf","src":"836:52:25"},{"nodeType":"YulVariableDeclaration","src":"897:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"910:12:25"},"nodeType":"YulFunctionCall","src":"910:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"901:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"967:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"942:24:25"},"nodeType":"YulFunctionCall","src":"942:31:25"},"nodeType":"YulExpressionStatement","src":"942:31:25"},{"nodeType":"YulAssignment","src":"982:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"992:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"792:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"803:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"815:6:25","type":""}],"src":"756:247:25"},{"body":{"nodeType":"YulBlock","src":"1107:89:25","statements":[{"nodeType":"YulAssignment","src":"1117:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1129:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1125:3:25"},"nodeType":"YulFunctionCall","src":"1125:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1117:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1159:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1174:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1182:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1170:3:25"},"nodeType":"YulFunctionCall","src":"1170:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1152:6:25"},"nodeType":"YulFunctionCall","src":"1152:38:25"},"nodeType":"YulExpressionStatement","src":"1152:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1076:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1087:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1098:4:25","type":""}],"src":"1008:188:25"},{"body":{"nodeType":"YulBlock","src":"1273:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"1322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1324:6:25"},"nodeType":"YulFunctionCall","src":"1324:12:25"},"nodeType":"YulExpressionStatement","src":"1324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1309:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1297:3:25"},"nodeType":"YulFunctionCall","src":"1297:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"1316:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1293:3:25"},"nodeType":"YulFunctionCall","src":"1293:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1286:6:25"},"nodeType":"YulFunctionCall","src":"1286:35:25"},"nodeType":"YulIf","src":"1283:55:25"},{"nodeType":"YulAssignment","src":"1347:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1357:12:25"},"nodeType":"YulFunctionCall","src":"1357:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1347:6:25"}]},{"body":{"nodeType":"YulBlock","src":"1420:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1429:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1432:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1422:6:25"},"nodeType":"YulFunctionCall","src":"1422:12:25"},"nodeType":"YulExpressionStatement","src":"1422:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1392:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1400:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:25"},"nodeType":"YulFunctionCall","src":"1389:30:25"},"nodeType":"YulIf","src":"1386:50:25"},{"nodeType":"YulAssignment","src":"1445:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1461:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1457:3:25"},"nodeType":"YulFunctionCall","src":"1457:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1445:8:25"}]},{"body":{"nodeType":"YulBlock","src":"1526:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1535:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1538:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1528:6:25"},"nodeType":"YulFunctionCall","src":"1528:12:25"},"nodeType":"YulExpressionStatement","src":"1528:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1497:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"1505:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"1514:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1489:3:25"},"nodeType":"YulFunctionCall","src":"1489:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"1521:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1486:2:25"},"nodeType":"YulFunctionCall","src":"1486:39:25"},"nodeType":"YulIf","src":"1483:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1236:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"1244:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1252:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"1262:6:25","type":""}],"src":"1201:347:25"},{"body":{"nodeType":"YulBlock","src":"1658:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"1704:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1713:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1706:6:25"},"nodeType":"YulFunctionCall","src":"1706:12:25"},"nodeType":"YulExpressionStatement","src":"1706:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1679:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1688:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1675:3:25"},"nodeType":"YulFunctionCall","src":"1675:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1700:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1671:3:25"},"nodeType":"YulFunctionCall","src":"1671:32:25"},"nodeType":"YulIf","src":"1668:52:25"},{"nodeType":"YulAssignment","src":"1729:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1757:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1739:17:25"},"nodeType":"YulFunctionCall","src":"1739:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1729:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1776:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1803:3:25"},"nodeType":"YulFunctionCall","src":"1803:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1790:12:25"},"nodeType":"YulFunctionCall","src":"1790:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1865:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1874:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1877:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1867:6:25"},"nodeType":"YulFunctionCall","src":"1867:12:25"},"nodeType":"YulExpressionStatement","src":"1867:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1837:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1845:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1834:2:25"},"nodeType":"YulFunctionCall","src":"1834:30:25"},"nodeType":"YulIf","src":"1831:50:25"},{"nodeType":"YulVariableDeclaration","src":"1890:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1946:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1957:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1942:3:25"},"nodeType":"YulFunctionCall","src":"1942:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1966:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1916:25:25"},"nodeType":"YulFunctionCall","src":"1916:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1894:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1904:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1983:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1993:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1983:6:25"}]},{"nodeType":"YulAssignment","src":"2010:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2020:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2010:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1639:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1553:481:25"},{"body":{"nodeType":"YulBlock","src":"2134:92:25","statements":[{"nodeType":"YulAssignment","src":"2144:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2156:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2167:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2152:3:25"},"nodeType":"YulFunctionCall","src":"2152:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2144:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2186:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2211:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2204:6:25"},"nodeType":"YulFunctionCall","src":"2204:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2197:6:25"},"nodeType":"YulFunctionCall","src":"2197:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:25"},"nodeType":"YulFunctionCall","src":"2179:41:25"},"nodeType":"YulExpressionStatement","src":"2179:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2103:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2114:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2125:4:25","type":""}],"src":"2039:187:25"},{"body":{"nodeType":"YulBlock","src":"2263:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2280:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2287:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2292:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2283:3:25"},"nodeType":"YulFunctionCall","src":"2283:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2273:6:25"},"nodeType":"YulFunctionCall","src":"2273:31:25"},"nodeType":"YulExpressionStatement","src":"2273:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2320:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2323:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2313:6:25"},"nodeType":"YulFunctionCall","src":"2313:15:25"},"nodeType":"YulExpressionStatement","src":"2313:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2344:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2347:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2337:6:25"},"nodeType":"YulFunctionCall","src":"2337:15:25"},"nodeType":"YulExpressionStatement","src":"2337:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2231:127:25"},{"body":{"nodeType":"YulBlock","src":"2415:666:25","statements":[{"body":{"nodeType":"YulBlock","src":"2464:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2473:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2476:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2466:6:25"},"nodeType":"YulFunctionCall","src":"2466:12:25"},"nodeType":"YulExpressionStatement","src":"2466:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2443:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2451:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2439:3:25"},"nodeType":"YulFunctionCall","src":"2439:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"2458:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2435:3:25"},"nodeType":"YulFunctionCall","src":"2435:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2428:6:25"},"nodeType":"YulFunctionCall","src":"2428:35:25"},"nodeType":"YulIf","src":"2425:55:25"},{"nodeType":"YulVariableDeclaration","src":"2489:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2512:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2499:12:25"},"nodeType":"YulFunctionCall","src":"2499:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2493:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2528:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"2538:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2532:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2579:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2581:16:25"},"nodeType":"YulFunctionCall","src":"2581:18:25"},"nodeType":"YulExpressionStatement","src":"2581:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2571:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2575:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2568:2:25"},"nodeType":"YulFunctionCall","src":"2568:10:25"},"nodeType":"YulIf","src":"2565:36:25"},{"nodeType":"YulVariableDeclaration","src":"2610:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2624:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2620:3:25"},"nodeType":"YulFunctionCall","src":"2620:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2614:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2636:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2656:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2650:5:25"},"nodeType":"YulFunctionCall","src":"2650:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2640:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2668:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2690:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2714:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"2718:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2710:3:25"},"nodeType":"YulFunctionCall","src":"2710:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2725:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2706:3:25"},"nodeType":"YulFunctionCall","src":"2706:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2702:3:25"},"nodeType":"YulFunctionCall","src":"2702:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2698:3:25"},"nodeType":"YulFunctionCall","src":"2698:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2686:3:25"},"nodeType":"YulFunctionCall","src":"2686:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2672:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2798:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2800:16:25"},"nodeType":"YulFunctionCall","src":"2800:18:25"},"nodeType":"YulExpressionStatement","src":"2800:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2757:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2769:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2754:2:25"},"nodeType":"YulFunctionCall","src":"2754:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2777:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2789:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2774:2:25"},"nodeType":"YulFunctionCall","src":"2774:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2751:2:25"},"nodeType":"YulFunctionCall","src":"2751:46:25"},"nodeType":"YulIf","src":"2748:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2836:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2840:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2829:6:25"},"nodeType":"YulFunctionCall","src":"2829:22:25"},"nodeType":"YulExpressionStatement","src":"2829:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2867:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2875:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2860:6:25"},"nodeType":"YulFunctionCall","src":"2860:18:25"},"nodeType":"YulExpressionStatement","src":"2860:18:25"},{"body":{"nodeType":"YulBlock","src":"2926:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2935:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2928:6:25"},"nodeType":"YulFunctionCall","src":"2928:12:25"},"nodeType":"YulExpressionStatement","src":"2928:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2901:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2909:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"2914:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2893:3:25"},"nodeType":"YulFunctionCall","src":"2893:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"2921:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2890:2:25"},"nodeType":"YulFunctionCall","src":"2890:35:25"},"nodeType":"YulIf","src":"2887:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2968:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2976:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2964:3:25"},"nodeType":"YulFunctionCall","src":"2964:17:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2983:3:25"},"nodeType":"YulFunctionCall","src":"2983:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3002:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2951:12:25"},"nodeType":"YulFunctionCall","src":"2951:54:25"},"nodeType":"YulExpressionStatement","src":"2951:54:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3029:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3037:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3025:3:25"},"nodeType":"YulFunctionCall","src":"3025:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"3042:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:25"},"nodeType":"YulFunctionCall","src":"3021:26:25"},{"kind":"number","nodeType":"YulLiteral","src":"3049:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3014:6:25"},"nodeType":"YulFunctionCall","src":"3014:37:25"},"nodeType":"YulExpressionStatement","src":"3014:37:25"},{"nodeType":"YulAssignment","src":"3060:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3069:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3060:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2389:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"2397:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2405:5:25","type":""}],"src":"2363:718:25"},{"body":{"nodeType":"YulBlock","src":"3198:348:25","statements":[{"body":{"nodeType":"YulBlock","src":"3244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3246:6:25"},"nodeType":"YulFunctionCall","src":"3246:12:25"},"nodeType":"YulExpressionStatement","src":"3246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3219:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3228:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3215:3:25"},"nodeType":"YulFunctionCall","src":"3215:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3240:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3211:3:25"},"nodeType":"YulFunctionCall","src":"3211:32:25"},"nodeType":"YulIf","src":"3208:52:25"},{"nodeType":"YulAssignment","src":"3269:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3297:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3279:17:25"},"nodeType":"YulFunctionCall","src":"3279:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3269:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3316:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3347:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3358:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3343:3:25"},"nodeType":"YulFunctionCall","src":"3343:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3330:12:25"},"nodeType":"YulFunctionCall","src":"3330:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3320:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3405:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3414:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3417:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3407:6:25"},"nodeType":"YulFunctionCall","src":"3407:12:25"},"nodeType":"YulExpressionStatement","src":"3407:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3377:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3385:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3374:2:25"},"nodeType":"YulFunctionCall","src":"3374:30:25"},"nodeType":"YulIf","src":"3371:50:25"},{"nodeType":"YulAssignment","src":"3430:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3461:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3472:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3457:3:25"},"nodeType":"YulFunctionCall","src":"3457:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3481:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3440:16:25"},"nodeType":"YulFunctionCall","src":"3440:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3430:6:25"}]},{"nodeType":"YulAssignment","src":"3498:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3536:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:25"},"nodeType":"YulFunctionCall","src":"3521:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3508:12:25"},"nodeType":"YulFunctionCall","src":"3508:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3498:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3148:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3159:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3171:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3179:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3187:6:25","type":""}],"src":"3086:460:25"},{"body":{"nodeType":"YulBlock","src":"3600:422:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3610:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3630:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3624:5:25"},"nodeType":"YulFunctionCall","src":"3624:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3614:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3652:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3657:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3645:6:25"},"nodeType":"YulFunctionCall","src":"3645:19:25"},"nodeType":"YulExpressionStatement","src":"3645:19:25"},{"nodeType":"YulVariableDeclaration","src":"3673:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3682:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3677:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3744:110:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3758:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3768:4:25","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3762:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3800:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"3805:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3796:3:25"},"nodeType":"YulFunctionCall","src":"3796:11:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3809:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:25"},"nodeType":"YulFunctionCall","src":"3792:20:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3828:5:25"},{"name":"i","nodeType":"YulIdentifier","src":"3835:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3824:3:25"},"nodeType":"YulFunctionCall","src":"3824:13:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3839:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3820:3:25"},"nodeType":"YulFunctionCall","src":"3820:22:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3814:5:25"},"nodeType":"YulFunctionCall","src":"3814:29:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3785:6:25"},"nodeType":"YulFunctionCall","src":"3785:59:25"},"nodeType":"YulExpressionStatement","src":"3785:59:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3703:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3706:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3700:2:25"},"nodeType":"YulFunctionCall","src":"3700:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3714:21:25","statements":[{"nodeType":"YulAssignment","src":"3716:17:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3725:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"3728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:25"},"nodeType":"YulFunctionCall","src":"3721:12:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3716:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"3696:3:25","statements":[]},"src":"3692:162:25"},{"body":{"nodeType":"YulBlock","src":"3888:62:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3917:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3922:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:25"},"nodeType":"YulFunctionCall","src":"3913:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"3931:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3909:3:25"},"nodeType":"YulFunctionCall","src":"3909:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"3938:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3902:6:25"},"nodeType":"YulFunctionCall","src":"3902:38:25"},"nodeType":"YulExpressionStatement","src":"3902:38:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3869:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3872:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3866:2:25"},"nodeType":"YulFunctionCall","src":"3866:13:25"},"nodeType":"YulIf","src":"3863:87:25"},{"nodeType":"YulAssignment","src":"3959:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3974:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3995:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:25"},"nodeType":"YulFunctionCall","src":"3983:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4004:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3979:3:25"},"nodeType":"YulFunctionCall","src":"3979:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3970:3:25"},"nodeType":"YulFunctionCall","src":"3970:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:25"},"nodeType":"YulFunctionCall","src":"3966:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3959:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3577:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3584:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3592:3:25","type":""}],"src":"3551:471:25"},{"body":{"nodeType":"YulBlock","src":"4200:235:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4232:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4253:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4240:3:25"},"nodeType":"YulFunctionCall","src":"4240:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4228:3:25"},"nodeType":"YulFunctionCall","src":"4228:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4210:6:25"},"nodeType":"YulFunctionCall","src":"4210:51:25"},"nodeType":"YulExpressionStatement","src":"4210:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4281:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4292:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4277:3:25"},"nodeType":"YulFunctionCall","src":"4277:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4297:3:25"},"nodeType":"YulFunctionCall","src":"4297:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:25"},"nodeType":"YulFunctionCall","src":"4270:59:25"},"nodeType":"YulExpressionStatement","src":"4270:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4349:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:25"},"nodeType":"YulFunctionCall","src":"4345:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:25","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4338:6:25"},"nodeType":"YulFunctionCall","src":"4338:30:25"},"nodeType":"YulExpressionStatement","src":"4338:30:25"},{"nodeType":"YulAssignment","src":"4377:52:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4402:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4414:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4425:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:25"},"nodeType":"YulFunctionCall","src":"4410:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4385:16:25"},"nodeType":"YulFunctionCall","src":"4385:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4377:4:25"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4153:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4164:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4172:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4180:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4191:4:25","type":""}],"src":"4027:408:25"},{"body":{"nodeType":"YulBlock","src":"4527:161:25","statements":[{"body":{"nodeType":"YulBlock","src":"4573:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4582:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4585:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4575:6:25"},"nodeType":"YulFunctionCall","src":"4575:12:25"},"nodeType":"YulExpressionStatement","src":"4575:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4548:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4557:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4544:3:25"},"nodeType":"YulFunctionCall","src":"4544:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4569:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4540:3:25"},"nodeType":"YulFunctionCall","src":"4540:32:25"},"nodeType":"YulIf","src":"4537:52:25"},{"nodeType":"YulAssignment","src":"4598:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4608:12:25"},"nodeType":"YulFunctionCall","src":"4608:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4598:6:25"}]},{"nodeType":"YulAssignment","src":"4640:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4663:3:25"},"nodeType":"YulFunctionCall","src":"4663:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4650:12:25"},"nodeType":"YulFunctionCall","src":"4650:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4640:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4485:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4496:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4508:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4516:6:25","type":""}],"src":"4440:248:25"},{"body":{"nodeType":"YulBlock","src":"4812:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4840:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4822:6:25"},"nodeType":"YulFunctionCall","src":"4822:21:25"},"nodeType":"YulExpressionStatement","src":"4822:21:25"},{"nodeType":"YulAssignment","src":"4852:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:25"},"nodeType":"YulFunctionCall","src":"4885:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4860:16:25"},"nodeType":"YulFunctionCall","src":"4860:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4852:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4781:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4792:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4803:4:25","type":""}],"src":"4693:217:25"},{"body":{"nodeType":"YulBlock","src":"4964:139:25","statements":[{"nodeType":"YulAssignment","src":"4974:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4996:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4983:12:25"},"nodeType":"YulFunctionCall","src":"4983:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4974:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5081:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5090:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5093:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5083:6:25"},"nodeType":"YulFunctionCall","src":"5083:12:25"},"nodeType":"YulExpressionStatement","src":"5083:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5025:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5036:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5043:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5032:3:25"},"nodeType":"YulFunctionCall","src":"5032:46:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5022:2:25"},"nodeType":"YulFunctionCall","src":"5022:57:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5015:6:25"},"nodeType":"YulFunctionCall","src":"5015:65:25"},"nodeType":"YulIf","src":"5012:85:25"}]},"name":"abi_decode_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4943:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4954:5:25","type":""}],"src":"4915:188:25"},{"body":{"nodeType":"YulBlock","src":"5156:123:25","statements":[{"nodeType":"YulAssignment","src":"5166:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5188:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5175:12:25"},"nodeType":"YulFunctionCall","src":"5175:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5166:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5259:6:25"},"nodeType":"YulFunctionCall","src":"5259:12:25"},"nodeType":"YulExpressionStatement","src":"5259:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5228:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5235:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5224:3:25"},"nodeType":"YulFunctionCall","src":"5224:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5214:2:25"},"nodeType":"YulFunctionCall","src":"5214:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5207:6:25"},"nodeType":"YulFunctionCall","src":"5207:49:25"},"nodeType":"YulIf","src":"5204:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5135:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5146:5:25","type":""}],"src":"5108:171:25"},{"body":{"nodeType":"YulBlock","src":"5420:344:25","statements":[{"body":{"nodeType":"YulBlock","src":"5467:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5476:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5479:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:25"},"nodeType":"YulFunctionCall","src":"5469:12:25"},"nodeType":"YulExpressionStatement","src":"5469:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5441:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5450:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5437:3:25"},"nodeType":"YulFunctionCall","src":"5437:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5462:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5433:3:25"},"nodeType":"YulFunctionCall","src":"5433:33:25"},"nodeType":"YulIf","src":"5430:53:25"},{"nodeType":"YulAssignment","src":"5492:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5521:9:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5502:18:25"},"nodeType":"YulFunctionCall","src":"5502:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5492:6:25"}]},{"nodeType":"YulAssignment","src":"5540:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5573:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5584:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5569:3:25"},"nodeType":"YulFunctionCall","src":"5569:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5550:18:25"},"nodeType":"YulFunctionCall","src":"5550:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5540:6:25"}]},{"nodeType":"YulAssignment","src":"5597:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5630:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5641:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5626:3:25"},"nodeType":"YulFunctionCall","src":"5626:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5607:18:25"},"nodeType":"YulFunctionCall","src":"5607:38:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5597:6:25"}]},{"nodeType":"YulAssignment","src":"5654:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5686:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5697:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5682:3:25"},"nodeType":"YulFunctionCall","src":"5682:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5664:17:25"},"nodeType":"YulFunctionCall","src":"5664:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5654:6:25"}]},{"nodeType":"YulAssignment","src":"5710:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5753:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:25"},"nodeType":"YulFunctionCall","src":"5738:19:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5720:17:25"},"nodeType":"YulFunctionCall","src":"5720:38:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5710:6:25"}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5354:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5365:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5377:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5385:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5393:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5401:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5409:6:25","type":""}],"src":"5284:480:25"},{"body":{"nodeType":"YulBlock","src":"5921:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"5968:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5977:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5980:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5970:6:25"},"nodeType":"YulFunctionCall","src":"5970:12:25"},"nodeType":"YulExpressionStatement","src":"5970:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5938:3:25"},"nodeType":"YulFunctionCall","src":"5938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5963:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5934:3:25"},"nodeType":"YulFunctionCall","src":"5934:33:25"},"nodeType":"YulIf","src":"5931:53:25"},{"nodeType":"YulAssignment","src":"5993:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6021:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6003:17:25"},"nodeType":"YulFunctionCall","src":"6003:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5993:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6040:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6070:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6081:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6066:3:25"},"nodeType":"YulFunctionCall","src":"6066:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6053:12:25"},"nodeType":"YulFunctionCall","src":"6053:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6044:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6119:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6094:24:25"},"nodeType":"YulFunctionCall","src":"6094:31:25"},"nodeType":"YulExpressionStatement","src":"6094:31:25"},{"nodeType":"YulAssignment","src":"6134:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6144:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6134:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6158:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6185:3:25"},"nodeType":"YulFunctionCall","src":"6185:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6172:12:25"},"nodeType":"YulFunctionCall","src":"6172:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6162:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6213:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6217:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6268:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6280:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6270:6:25"},"nodeType":"YulFunctionCall","src":"6270:12:25"},"nodeType":"YulExpressionStatement","src":"6270:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6256:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6264:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6253:2:25"},"nodeType":"YulFunctionCall","src":"6253:14:25"},"nodeType":"YulIf","src":"6250:34:25"},{"nodeType":"YulAssignment","src":"6293:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6324:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6335:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6320:3:25"},"nodeType":"YulFunctionCall","src":"6320:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6344:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6303:16:25"},"nodeType":"YulFunctionCall","src":"6303:49:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6293:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6361:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6393:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6404:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6389:3:25"},"nodeType":"YulFunctionCall","src":"6389:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6376:12:25"},"nodeType":"YulFunctionCall","src":"6376:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6365:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6465:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6474:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6477:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6467:6:25"},"nodeType":"YulFunctionCall","src":"6467:12:25"},"nodeType":"YulExpressionStatement","src":"6467:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6430:7:25"},{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6453:7:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6446:6:25"},"nodeType":"YulFunctionCall","src":"6446:15:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6439:6:25"},"nodeType":"YulFunctionCall","src":"6439:23:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6427:2:25"},"nodeType":"YulFunctionCall","src":"6427:36:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6420:6:25"},"nodeType":"YulFunctionCall","src":"6420:44:25"},"nodeType":"YulIf","src":"6417:64:25"},{"nodeType":"YulAssignment","src":"6490:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6500:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6490:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6516:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6549:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6560:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6545:3:25"},"nodeType":"YulFunctionCall","src":"6545:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6532:12:25"},"nodeType":"YulFunctionCall","src":"6532:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6520:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6594:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6603:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6606:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6596:6:25"},"nodeType":"YulFunctionCall","src":"6596:12:25"},"nodeType":"YulExpressionStatement","src":"6596:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6580:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6590:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6577:2:25"},"nodeType":"YulFunctionCall","src":"6577:16:25"},"nodeType":"YulIf","src":"6574:36:25"},{"nodeType":"YulAssignment","src":"6619:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6650:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6661:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6646:3:25"},"nodeType":"YulFunctionCall","src":"6646:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6672:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6629:16:25"},"nodeType":"YulFunctionCall","src":"6629:51:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6619:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5855:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5866:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5878:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5886:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5894:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5902:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5910:6:25","type":""}],"src":"5769:917:25"},{"body":{"nodeType":"YulBlock","src":"6792:102:25","statements":[{"nodeType":"YulAssignment","src":"6802:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6814:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6825:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6810:3:25"},"nodeType":"YulFunctionCall","src":"6810:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6802:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6844:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6859:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6875:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6880:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6871:3:25"},"nodeType":"YulFunctionCall","src":"6871:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6884:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6867:3:25"},"nodeType":"YulFunctionCall","src":"6867:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6855:3:25"},"nodeType":"YulFunctionCall","src":"6855:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6837:6:25"},"nodeType":"YulFunctionCall","src":"6837:51:25"},"nodeType":"YulExpressionStatement","src":"6837:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6761:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6772:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6783:4:25","type":""}],"src":"6691:203:25"},{"body":{"nodeType":"YulBlock","src":"6994:297:25","statements":[{"body":{"nodeType":"YulBlock","src":"7040:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7049:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7052:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7042:6:25"},"nodeType":"YulFunctionCall","src":"7042:12:25"},"nodeType":"YulExpressionStatement","src":"7042:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7015:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7011:3:25"},"nodeType":"YulFunctionCall","src":"7011:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7036:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:32:25"},"nodeType":"YulIf","src":"7004:52:25"},{"nodeType":"YulAssignment","src":"7065:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7093:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7075:17:25"},"nodeType":"YulFunctionCall","src":"7075:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7065:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7112:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7143:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7154:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7139:3:25"},"nodeType":"YulFunctionCall","src":"7139:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7126:12:25"},"nodeType":"YulFunctionCall","src":"7126:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7116:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7201:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7210:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7213:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7203:6:25"},"nodeType":"YulFunctionCall","src":"7203:12:25"},"nodeType":"YulExpressionStatement","src":"7203:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7173:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7181:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7170:2:25"},"nodeType":"YulFunctionCall","src":"7170:30:25"},"nodeType":"YulIf","src":"7167:50:25"},{"nodeType":"YulAssignment","src":"7226:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7257:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"7268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:25"},"nodeType":"YulFunctionCall","src":"7253:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7277:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7236:16:25"},"nodeType":"YulFunctionCall","src":"7236:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7226:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6952:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6963:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6975:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6983:6:25","type":""}],"src":"6899:392:25"},{"body":{"nodeType":"YulBlock","src":"7451:213:25","statements":[{"nodeType":"YulAssignment","src":"7461:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7473:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7484:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7469:3:25"},"nodeType":"YulFunctionCall","src":"7469:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7461:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7503:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7518:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7526:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7514:3:25"},"nodeType":"YulFunctionCall","src":"7514:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7496:6:25"},"nodeType":"YulFunctionCall","src":"7496:50:25"},"nodeType":"YulExpressionStatement","src":"7496:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7566:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7577:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7562:3:25"},"nodeType":"YulFunctionCall","src":"7562:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7586:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7602:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7607:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7598:3:25"},"nodeType":"YulFunctionCall","src":"7598:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7611:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7594:3:25"},"nodeType":"YulFunctionCall","src":"7594:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7582:3:25"},"nodeType":"YulFunctionCall","src":"7582:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7555:6:25"},"nodeType":"YulFunctionCall","src":"7555:60:25"},"nodeType":"YulExpressionStatement","src":"7555:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7635:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7646:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7631:3:25"},"nodeType":"YulFunctionCall","src":"7631:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"7651:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7624:6:25"},"nodeType":"YulFunctionCall","src":"7624:34:25"},"nodeType":"YulExpressionStatement","src":"7624:34:25"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7404:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7415:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7423:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7431:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7442:4:25","type":""}],"src":"7296:368:25"},{"body":{"nodeType":"YulBlock","src":"7755:233:25","statements":[{"body":{"nodeType":"YulBlock","src":"7801:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7810:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7813:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7803:6:25"},"nodeType":"YulFunctionCall","src":"7803:12:25"},"nodeType":"YulExpressionStatement","src":"7803:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7776:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7785:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7772:3:25"},"nodeType":"YulFunctionCall","src":"7772:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7797:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7768:3:25"},"nodeType":"YulFunctionCall","src":"7768:32:25"},"nodeType":"YulIf","src":"7765:52:25"},{"nodeType":"YulAssignment","src":"7826:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7854:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7836:17:25"},"nodeType":"YulFunctionCall","src":"7836:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7826:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7873:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7903:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7914:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7899:3:25"},"nodeType":"YulFunctionCall","src":"7899:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7886:12:25"},"nodeType":"YulFunctionCall","src":"7886:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7877:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7952:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7927:24:25"},"nodeType":"YulFunctionCall","src":"7927:31:25"},"nodeType":"YulExpressionStatement","src":"7927:31:25"},{"nodeType":"YulAssignment","src":"7967:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7977:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7967:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7713:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7724:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7736:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7744:6:25","type":""}],"src":"7669:319:25"},{"body":{"nodeType":"YulBlock","src":"8092:101:25","statements":[{"nodeType":"YulAssignment","src":"8102:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8125:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8110:3:25"},"nodeType":"YulFunctionCall","src":"8110:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8102:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8159:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8167:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8155:3:25"},"nodeType":"YulFunctionCall","src":"8155:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8137:6:25"},"nodeType":"YulFunctionCall","src":"8137:50:25"},"nodeType":"YulExpressionStatement","src":"8137:50:25"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8061:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8072:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8083:4:25","type":""}],"src":"7993:200:25"},{"body":{"nodeType":"YulBlock","src":"8299:76:25","statements":[{"nodeType":"YulAssignment","src":"8309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8317:3:25"},"nodeType":"YulFunctionCall","src":"8317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8351:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8362:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8344:6:25"},"nodeType":"YulFunctionCall","src":"8344:25:25"},"nodeType":"YulExpressionStatement","src":"8344:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8290:4:25","type":""}],"src":"8198:177:25"},{"body":{"nodeType":"YulBlock","src":"8589:385:25","statements":[{"nodeType":"YulAssignment","src":"8599:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8611:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8622:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8607:3:25"},"nodeType":"YulFunctionCall","src":"8607:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8599:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"8635:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8645:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8639:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8695:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8710:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8718:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8706:3:25"},"nodeType":"YulFunctionCall","src":"8706:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8688:6:25"},"nodeType":"YulFunctionCall","src":"8688:34:25"},"nodeType":"YulExpressionStatement","src":"8688:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8738:3:25"},"nodeType":"YulFunctionCall","src":"8738:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8762:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8770:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8758:3:25"},"nodeType":"YulFunctionCall","src":"8758:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8731:6:25"},"nodeType":"YulFunctionCall","src":"8731:43:25"},"nodeType":"YulExpressionStatement","src":"8731:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8805:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8790:3:25"},"nodeType":"YulFunctionCall","src":"8790:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8814:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8822:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8810:3:25"},"nodeType":"YulFunctionCall","src":"8810:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8783:6:25"},"nodeType":"YulFunctionCall","src":"8783:43:25"},"nodeType":"YulExpressionStatement","src":"8783:43:25"},{"nodeType":"YulVariableDeclaration","src":"8835:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8845:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8839:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8894:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8879:3:25"},"nodeType":"YulFunctionCall","src":"8879:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8903:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8911:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8899:3:25"},"nodeType":"YulFunctionCall","src":"8899:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8872:6:25"},"nodeType":"YulFunctionCall","src":"8872:43:25"},"nodeType":"YulExpressionStatement","src":"8872:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8935:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8946:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8931:3:25"},"nodeType":"YulFunctionCall","src":"8931:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8956:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8952:3:25"},"nodeType":"YulFunctionCall","src":"8952:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8924:6:25"},"nodeType":"YulFunctionCall","src":"8924:44:25"},"nodeType":"YulExpressionStatement","src":"8924:44:25"}]},"name":"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8526:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8537:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8545:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8553:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8561:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8569:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8580:4:25","type":""}],"src":"8380:594:25"},{"body":{"nodeType":"YulBlock","src":"9120:648:25","statements":[{"body":{"nodeType":"YulBlock","src":"9166:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9175:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9178:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9168:6:25"},"nodeType":"YulFunctionCall","src":"9168:12:25"},"nodeType":"YulExpressionStatement","src":"9168:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9141:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9137:3:25"},"nodeType":"YulFunctionCall","src":"9137:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9162:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9133:3:25"},"nodeType":"YulFunctionCall","src":"9133:32:25"},"nodeType":"YulIf","src":"9130:52:25"},{"nodeType":"YulAssignment","src":"9191:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9219:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9201:17:25"},"nodeType":"YulFunctionCall","src":"9201:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9191:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9238:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:25"},"nodeType":"YulFunctionCall","src":"9265:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9252:12:25"},"nodeType":"YulFunctionCall","src":"9252:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9242:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9293:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"9303:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9297:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9348:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9357:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9360:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9350:6:25"},"nodeType":"YulFunctionCall","src":"9350:12:25"},"nodeType":"YulExpressionStatement","src":"9350:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9336:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9344:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9333:2:25"},"nodeType":"YulFunctionCall","src":"9333:14:25"},"nodeType":"YulIf","src":"9330:34:25"},{"nodeType":"YulVariableDeclaration","src":"9373:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9429:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9425:3:25"},"nodeType":"YulFunctionCall","src":"9425:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9449:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9399:25:25"},"nodeType":"YulFunctionCall","src":"9399:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"9377:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"9387:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9466:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"9476:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9466:6:25"}]},{"nodeType":"YulAssignment","src":"9493:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"9503:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9493:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9520:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9553:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9564:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9549:3:25"},"nodeType":"YulFunctionCall","src":"9549:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9536:12:25"},"nodeType":"YulFunctionCall","src":"9536:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9524:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9597:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9606:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9609:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9599:6:25"},"nodeType":"YulFunctionCall","src":"9599:12:25"},"nodeType":"YulExpressionStatement","src":"9599:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9583:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9593:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9580:2:25"},"nodeType":"YulFunctionCall","src":"9580:16:25"},"nodeType":"YulIf","src":"9577:36:25"},{"nodeType":"YulVariableDeclaration","src":"9622:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9678:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9689:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9674:3:25"},"nodeType":"YulFunctionCall","src":"9674:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9700:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9648:25:25"},"nodeType":"YulFunctionCall","src":"9648:60:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9626:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9636:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9717:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9727:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9717:6:25"}]},{"nodeType":"YulAssignment","src":"9744:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9754:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9744:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9054:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9065:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9077:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9085:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9093:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9101:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9109:6:25","type":""}],"src":"8979:789:25"},{"body":{"nodeType":"YulBlock","src":"9843:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"9889:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9901:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9891:6:25"},"nodeType":"YulFunctionCall","src":"9891:12:25"},"nodeType":"YulExpressionStatement","src":"9891:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9864:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9873:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9860:3:25"},"nodeType":"YulFunctionCall","src":"9860:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9885:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9856:3:25"},"nodeType":"YulFunctionCall","src":"9856:32:25"},"nodeType":"YulIf","src":"9853:52:25"},{"nodeType":"YulAssignment","src":"9914:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9937:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9924:12:25"},"nodeType":"YulFunctionCall","src":"9924:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9914:6:25"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9809:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9820:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9832:6:25","type":""}],"src":"9773:180:25"},{"body":{"nodeType":"YulBlock","src":"10045:301:25","statements":[{"body":{"nodeType":"YulBlock","src":"10091:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10100:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10103:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10093:6:25"},"nodeType":"YulFunctionCall","src":"10093:12:25"},"nodeType":"YulExpressionStatement","src":"10093:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10066:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10075:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10062:3:25"},"nodeType":"YulFunctionCall","src":"10062:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10058:3:25"},"nodeType":"YulFunctionCall","src":"10058:32:25"},"nodeType":"YulIf","src":"10055:52:25"},{"nodeType":"YulVariableDeclaration","src":"10116:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10142:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10129:12:25"},"nodeType":"YulFunctionCall","src":"10129:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10120:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10161:24:25"},"nodeType":"YulFunctionCall","src":"10161:31:25"},"nodeType":"YulExpressionStatement","src":"10161:31:25"},{"nodeType":"YulAssignment","src":"10201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10201:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10225:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10257:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10268:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10253:3:25"},"nodeType":"YulFunctionCall","src":"10253:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10240:12:25"},"nodeType":"YulFunctionCall","src":"10240:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10229:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10306:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10281:24:25"},"nodeType":"YulFunctionCall","src":"10281:33:25"},"nodeType":"YulExpressionStatement","src":"10281:33:25"},{"nodeType":"YulAssignment","src":"10323:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10333:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10323:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10003:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10014:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10026:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10034:6:25","type":""}],"src":"9958:388:25"},{"body":{"nodeType":"YulBlock","src":"10542:876:25","statements":[{"body":{"nodeType":"YulBlock","src":"10589:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10598:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10601:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10591:6:25"},"nodeType":"YulFunctionCall","src":"10591:12:25"},"nodeType":"YulExpressionStatement","src":"10591:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10563:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10572:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10559:3:25"},"nodeType":"YulFunctionCall","src":"10559:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10584:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10555:3:25"},"nodeType":"YulFunctionCall","src":"10555:33:25"},"nodeType":"YulIf","src":"10552:53:25"},{"nodeType":"YulAssignment","src":"10614:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10642:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10624:17:25"},"nodeType":"YulFunctionCall","src":"10624:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10614:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10661:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10703:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10688:3:25"},"nodeType":"YulFunctionCall","src":"10688:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10675:12:25"},"nodeType":"YulFunctionCall","src":"10675:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10665:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10716:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"10726:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10771:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10780:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10783:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10773:6:25"},"nodeType":"YulFunctionCall","src":"10773:12:25"},"nodeType":"YulExpressionStatement","src":"10773:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10759:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"10767:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10756:2:25"},"nodeType":"YulFunctionCall","src":"10756:14:25"},"nodeType":"YulIf","src":"10753:34:25"},{"nodeType":"YulVariableDeclaration","src":"10796:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10852:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"10863:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10848:3:25"},"nodeType":"YulFunctionCall","src":"10848:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10872:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10822:25:25"},"nodeType":"YulFunctionCall","src":"10822:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"10800:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"10810:8:25","type":""}]},{"nodeType":"YulAssignment","src":"10889:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"10899:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10889:6:25"}]},{"nodeType":"YulAssignment","src":"10916:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"10926:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10943:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10973:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10984:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:25"},"nodeType":"YulFunctionCall","src":"10969:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10956:12:25"},"nodeType":"YulFunctionCall","src":"10956:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10947:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11022:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10997:24:25"},"nodeType":"YulFunctionCall","src":"10997:31:25"},"nodeType":"YulExpressionStatement","src":"10997:31:25"},{"nodeType":"YulAssignment","src":"11037:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"11047:5:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11037:6:25"}]},{"nodeType":"YulAssignment","src":"11061:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11093:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11104:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11089:3:25"},"nodeType":"YulFunctionCall","src":"11089:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"11071:17:25"},"nodeType":"YulFunctionCall","src":"11071:37:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11061:6:25"}]},{"nodeType":"YulAssignment","src":"11117:43:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11155:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11140:3:25"},"nodeType":"YulFunctionCall","src":"11140:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11127:12:25"},"nodeType":"YulFunctionCall","src":"11127:33:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"11117:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11169:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11213:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11198:3:25"},"nodeType":"YulFunctionCall","src":"11198:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11185:12:25"},"nodeType":"YulFunctionCall","src":"11185:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11173:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11247:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11256:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11259:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11249:6:25"},"nodeType":"YulFunctionCall","src":"11249:12:25"},"nodeType":"YulExpressionStatement","src":"11249:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"11233:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11243:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11230:2:25"},"nodeType":"YulFunctionCall","src":"11230:16:25"},"nodeType":"YulIf","src":"11227:36:25"},{"nodeType":"YulVariableDeclaration","src":"11272:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11328:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"11339:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11324:3:25"},"nodeType":"YulFunctionCall","src":"11324:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11350:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"11298:25:25"},"nodeType":"YulFunctionCall","src":"11298:60:25"},"variables":[{"name":"value6_1","nodeType":"YulTypedName","src":"11276:8:25","type":""},{"name":"value7_1","nodeType":"YulTypedName","src":"11286:8:25","type":""}]},{"nodeType":"YulAssignment","src":"11367:18:25","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"11377:8:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"11367:6:25"}]},{"nodeType":"YulAssignment","src":"11394:18:25","value":{"name":"value7_1","nodeType":"YulIdentifier","src":"11404:8:25"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"11394:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10452:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10463:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10475:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10483:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10491:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10499:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10507:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10515:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"10523:6:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"10531:6:25","type":""}],"src":"10351:1067:25"},{"body":{"nodeType":"YulBlock","src":"11622:986:25","statements":[{"body":{"nodeType":"YulBlock","src":"11669:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11678:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11681:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11671:6:25"},"nodeType":"YulFunctionCall","src":"11671:12:25"},"nodeType":"YulExpressionStatement","src":"11671:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11643:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11639:3:25"},"nodeType":"YulFunctionCall","src":"11639:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"11664:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11635:3:25"},"nodeType":"YulFunctionCall","src":"11635:33:25"},"nodeType":"YulIf","src":"11632:53:25"},{"nodeType":"YulAssignment","src":"11694:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11722:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"11704:17:25"},"nodeType":"YulFunctionCall","src":"11704:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11694:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11741:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11772:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11783:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11768:3:25"},"nodeType":"YulFunctionCall","src":"11768:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11755:12:25"},"nodeType":"YulFunctionCall","src":"11755:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11745:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11796:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"11806:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11800:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11851:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11860:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11863:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11853:6:25"},"nodeType":"YulFunctionCall","src":"11853:12:25"},"nodeType":"YulExpressionStatement","src":"11853:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11839:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11847:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11836:2:25"},"nodeType":"YulFunctionCall","src":"11836:14:25"},"nodeType":"YulIf","src":"11833:34:25"},{"nodeType":"YulAssignment","src":"11876:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11907:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"11918:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11903:3:25"},"nodeType":"YulFunctionCall","src":"11903:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11927:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"11886:16:25"},"nodeType":"YulFunctionCall","src":"11886:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11876:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11944:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11973:3:25"},"nodeType":"YulFunctionCall","src":"11973:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11960:12:25"},"nodeType":"YulFunctionCall","src":"11960:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11948:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12021:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12030:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12033:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12023:6:25"},"nodeType":"YulFunctionCall","src":"12023:12:25"},"nodeType":"YulExpressionStatement","src":"12023:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12007:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12017:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12004:2:25"},"nodeType":"YulFunctionCall","src":"12004:16:25"},"nodeType":"YulIf","src":"12001:36:25"},{"nodeType":"YulVariableDeclaration","src":"12046:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12102:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"12113:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12098:3:25"},"nodeType":"YulFunctionCall","src":"12098:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12124:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"12072:25:25"},"nodeType":"YulFunctionCall","src":"12072:60:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"12050:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"12060:8:25","type":""}]},{"nodeType":"YulAssignment","src":"12141:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"12151:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12141:6:25"}]},{"nodeType":"YulAssignment","src":"12168:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"12178:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12168:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12195:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12221:3:25"},"nodeType":"YulFunctionCall","src":"12221:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12208:12:25"},"nodeType":"YulFunctionCall","src":"12208:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12199:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12274:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12249:24:25"},"nodeType":"YulFunctionCall","src":"12249:31:25"},"nodeType":"YulExpressionStatement","src":"12249:31:25"},{"nodeType":"YulAssignment","src":"12289:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"12299:5:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"12289:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12313:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12345:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12356:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12341:3:25"},"nodeType":"YulFunctionCall","src":"12341:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12328:12:25"},"nodeType":"YulFunctionCall","src":"12328:33:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"12317:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"12395:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12370:24:25"},"nodeType":"YulFunctionCall","src":"12370:33:25"},"nodeType":"YulExpressionStatement","src":"12370:33:25"},{"nodeType":"YulAssignment","src":"12412:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"12422:7:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"12412:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12438:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12471:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12482:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12467:3:25"},"nodeType":"YulFunctionCall","src":"12467:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12454:12:25"},"nodeType":"YulFunctionCall","src":"12454:33:25"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"12442:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12516:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12525:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12528:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12518:6:25"},"nodeType":"YulFunctionCall","src":"12518:12:25"},"nodeType":"YulExpressionStatement","src":"12518:12:25"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"12502:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12512:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12499:2:25"},"nodeType":"YulFunctionCall","src":"12499:16:25"},"nodeType":"YulIf","src":"12496:36:25"},{"nodeType":"YulAssignment","src":"12541:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12572:9:25"},{"name":"offset_2","nodeType":"YulIdentifier","src":"12583:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12568:3:25"},"nodeType":"YulFunctionCall","src":"12568:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12594:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"12551:16:25"},"nodeType":"YulFunctionCall","src":"12551:51:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"12541:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11540:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11551:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11563:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11571:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11579:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11587:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11595:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"11603:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"11611:6:25","type":""}],"src":"11423:1185:25"},{"body":{"nodeType":"YulBlock","src":"12741:405:25","statements":[{"body":{"nodeType":"YulBlock","src":"12788:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12797:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12800:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12790:6:25"},"nodeType":"YulFunctionCall","src":"12790:12:25"},"nodeType":"YulExpressionStatement","src":"12790:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12762:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"12771:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12758:3:25"},"nodeType":"YulFunctionCall","src":"12758:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"12783:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12754:3:25"},"nodeType":"YulFunctionCall","src":"12754:33:25"},"nodeType":"YulIf","src":"12751:53:25"},{"nodeType":"YulAssignment","src":"12813:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12841:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12823:17:25"},"nodeType":"YulFunctionCall","src":"12823:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12813:6:25"}]},{"nodeType":"YulAssignment","src":"12860:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12888:3:25"},"nodeType":"YulFunctionCall","src":"12888:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12870:17:25"},"nodeType":"YulFunctionCall","src":"12870:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12860:6:25"}]},{"nodeType":"YulAssignment","src":"12916:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12943:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12954:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12939:3:25"},"nodeType":"YulFunctionCall","src":"12939:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12926:12:25"},"nodeType":"YulFunctionCall","src":"12926:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12967:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13009:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12994:3:25"},"nodeType":"YulFunctionCall","src":"12994:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12981:12:25"},"nodeType":"YulFunctionCall","src":"12981:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12971:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13056:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13065:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13068:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13058:6:25"},"nodeType":"YulFunctionCall","src":"13058:12:25"},"nodeType":"YulExpressionStatement","src":"13058:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13028:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13036:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13025:2:25"},"nodeType":"YulFunctionCall","src":"13025:30:25"},"nodeType":"YulIf","src":"13022:50:25"},{"nodeType":"YulAssignment","src":"13081:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13112:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13123:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13108:3:25"},"nodeType":"YulFunctionCall","src":"13108:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13132:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13091:16:25"},"nodeType":"YulFunctionCall","src":"13091:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13081:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12683:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12694:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12706:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12714:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12722:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12730:6:25","type":""}],"src":"12613:533:25"},{"body":{"nodeType":"YulBlock","src":"13270:341:25","statements":[{"body":{"nodeType":"YulBlock","src":"13317:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13326:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13329:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13319:6:25"},"nodeType":"YulFunctionCall","src":"13319:12:25"},"nodeType":"YulExpressionStatement","src":"13319:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13291:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13300:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13287:3:25"},"nodeType":"YulFunctionCall","src":"13287:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13312:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13283:3:25"},"nodeType":"YulFunctionCall","src":"13283:33:25"},"nodeType":"YulIf","src":"13280:53:25"},{"nodeType":"YulAssignment","src":"13342:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13370:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13352:17:25"},"nodeType":"YulFunctionCall","src":"13352:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13342:6:25"}]},{"nodeType":"YulAssignment","src":"13389:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13421:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13432:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13417:3:25"},"nodeType":"YulFunctionCall","src":"13417:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13399:17:25"},"nodeType":"YulFunctionCall","src":"13399:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13389:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"13445:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13475:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13486:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13471:3:25"},"nodeType":"YulFunctionCall","src":"13471:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13458:12:25"},"nodeType":"YulFunctionCall","src":"13458:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13449:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13524:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"13499:24:25"},"nodeType":"YulFunctionCall","src":"13499:31:25"},"nodeType":"YulExpressionStatement","src":"13499:31:25"},{"nodeType":"YulAssignment","src":"13539:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"13549:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13539:6:25"}]},{"nodeType":"YulAssignment","src":"13563:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13590:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13601:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13586:3:25"},"nodeType":"YulFunctionCall","src":"13586:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13573:12:25"},"nodeType":"YulFunctionCall","src":"13573:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13212:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13223:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13235:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13243:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13251:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13259:6:25","type":""}],"src":"13151:460:25"},{"body":{"nodeType":"YulBlock","src":"13695:241:25","statements":[{"body":{"nodeType":"YulBlock","src":"13741:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13750:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13753:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13743:6:25"},"nodeType":"YulFunctionCall","src":"13743:12:25"},"nodeType":"YulExpressionStatement","src":"13743:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13716:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13725:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13712:3:25"},"nodeType":"YulFunctionCall","src":"13712:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13737:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13708:3:25"},"nodeType":"YulFunctionCall","src":"13708:32:25"},"nodeType":"YulIf","src":"13705:52:25"},{"nodeType":"YulVariableDeclaration","src":"13766:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13793:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13780:12:25"},"nodeType":"YulFunctionCall","src":"13780:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13770:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13846:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13855:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13858:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13848:6:25"},"nodeType":"YulFunctionCall","src":"13848:12:25"},"nodeType":"YulExpressionStatement","src":"13848:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13826:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13815:2:25"},"nodeType":"YulFunctionCall","src":"13815:30:25"},"nodeType":"YulIf","src":"13812:50:25"},{"nodeType":"YulAssignment","src":"13871:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13902:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13913:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13898:3:25"},"nodeType":"YulFunctionCall","src":"13898:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13922:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13881:16:25"},"nodeType":"YulFunctionCall","src":"13881:49:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13871:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13661:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13672:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13684:6:25","type":""}],"src":"13616:320:25"},{"body":{"nodeType":"YulBlock","src":"14088:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14111:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"14116:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14124:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"14098:12:25"},"nodeType":"YulFunctionCall","src":"14098:33:25"},"nodeType":"YulExpressionStatement","src":"14098:33:25"},{"nodeType":"YulVariableDeclaration","src":"14140:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14154:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14159:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14150:3:25"},"nodeType":"YulFunctionCall","src":"14150:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14144:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14182:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"14186:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14175:6:25"},"nodeType":"YulFunctionCall","src":"14175:13:25"},"nodeType":"YulExpressionStatement","src":"14175:13:25"},{"nodeType":"YulAssignment","src":"14197:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"14204:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14197:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14056:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14061:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14069:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14080:3:25","type":""}],"src":"13941:271:25"},{"body":{"nodeType":"YulBlock","src":"14272:325:25","statements":[{"nodeType":"YulAssignment","src":"14282:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"14299:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14292:3:25"},"nodeType":"YulFunctionCall","src":"14292:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14282:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"14313:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14343:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"14349:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14339:3:25"},"nodeType":"YulFunctionCall","src":"14339:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14317:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14390:31:25","statements":[{"nodeType":"YulAssignment","src":"14392:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14406:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14414:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14402:3:25"},"nodeType":"YulFunctionCall","src":"14402:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14392:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14370:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14363:6:25"},"nodeType":"YulFunctionCall","src":"14363:26:25"},"nodeType":"YulIf","src":"14360:61:25"},{"body":{"nodeType":"YulBlock","src":"14480:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14501:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14508:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14513:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14504:3:25"},"nodeType":"YulFunctionCall","src":"14504:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14494:6:25"},"nodeType":"YulFunctionCall","src":"14494:31:25"},"nodeType":"YulExpressionStatement","src":"14494:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14545:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14548:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14538:6:25"},"nodeType":"YulFunctionCall","src":"14538:15:25"},"nodeType":"YulExpressionStatement","src":"14538:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14576:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14566:6:25"},"nodeType":"YulFunctionCall","src":"14566:15:25"},"nodeType":"YulExpressionStatement","src":"14566:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14436:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14459:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14467:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14456:2:25"},"nodeType":"YulFunctionCall","src":"14456:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14433:2:25"},"nodeType":"YulFunctionCall","src":"14433:38:25"},"nodeType":"YulIf","src":"14430:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14252:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14261:6:25","type":""}],"src":"14217:380:25"},{"body":{"nodeType":"YulBlock","src":"14634:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14651:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14658:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14663:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14654:3:25"},"nodeType":"YulFunctionCall","src":"14654:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14644:6:25"},"nodeType":"YulFunctionCall","src":"14644:31:25"},"nodeType":"YulExpressionStatement","src":"14644:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14694:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:15:25"},"nodeType":"YulExpressionStatement","src":"14684:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14715:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14718:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14708:6:25"},"nodeType":"YulFunctionCall","src":"14708:15:25"},"nodeType":"YulExpressionStatement","src":"14708:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14602:127:25"},{"body":{"nodeType":"YulBlock","src":"14782:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"14809:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14811:16:25"},"nodeType":"YulFunctionCall","src":"14811:18:25"},"nodeType":"YulExpressionStatement","src":"14811:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14798:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14805:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14801:3:25"},"nodeType":"YulFunctionCall","src":"14801:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14795:2:25"},"nodeType":"YulFunctionCall","src":"14795:13:25"},"nodeType":"YulIf","src":"14792:39:25"},{"nodeType":"YulAssignment","src":"14840:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"14854:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14847:3:25"},"nodeType":"YulFunctionCall","src":"14847:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"14840:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14765:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"14768:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"14774:3:25","type":""}],"src":"14734:128:25"},{"body":{"nodeType":"YulBlock","src":"15041:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15051:6:25"},"nodeType":"YulFunctionCall","src":"15051:21:25"},"nodeType":"YulExpressionStatement","src":"15051:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15092:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15103:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15088:3:25"},"nodeType":"YulFunctionCall","src":"15088:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15108:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15081:6:25"},"nodeType":"YulFunctionCall","src":"15081:30:25"},"nodeType":"YulExpressionStatement","src":"15081:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15131:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15127:3:25"},"nodeType":"YulFunctionCall","src":"15127:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"15147:34:25","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15120:6:25"},"nodeType":"YulFunctionCall","src":"15120:62:25"},"nodeType":"YulExpressionStatement","src":"15120:62:25"},{"nodeType":"YulAssignment","src":"15191:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15203:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15214:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15199:3:25"},"nodeType":"YulFunctionCall","src":"15199:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15191:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15018:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15032:4:25","type":""}],"src":"14867:356:25"},{"body":{"nodeType":"YulBlock","src":"15402:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15419:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15430:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15412:6:25"},"nodeType":"YulFunctionCall","src":"15412:21:25"},"nodeType":"YulExpressionStatement","src":"15412:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15449:3:25"},"nodeType":"YulFunctionCall","src":"15449:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15469:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15442:6:25"},"nodeType":"YulFunctionCall","src":"15442:30:25"},"nodeType":"YulExpressionStatement","src":"15442:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15492:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15503:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15488:3:25"},"nodeType":"YulFunctionCall","src":"15488:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"15508:31:25","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15481:6:25"},"nodeType":"YulFunctionCall","src":"15481:59:25"},"nodeType":"YulExpressionStatement","src":"15481:59:25"},{"nodeType":"YulAssignment","src":"15549:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15572:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15557:3:25"},"nodeType":"YulFunctionCall","src":"15557:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15549:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15379:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15393:4:25","type":""}],"src":"15228:353:25"},{"body":{"nodeType":"YulBlock","src":"15652:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15669:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15674:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15662:6:25"},"nodeType":"YulFunctionCall","src":"15662:19:25"},"nodeType":"YulExpressionStatement","src":"15662:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15707:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"15712:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15703:3:25"},"nodeType":"YulFunctionCall","src":"15703:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"15719:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"15726:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"15690:12:25"},"nodeType":"YulFunctionCall","src":"15690:43:25"},"nodeType":"YulExpressionStatement","src":"15690:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15757:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15762:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15753:3:25"},"nodeType":"YulFunctionCall","src":"15753:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"15771:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15749:3:25"},"nodeType":"YulFunctionCall","src":"15749:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"15778:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15742:6:25"},"nodeType":"YulFunctionCall","src":"15742:38:25"},"nodeType":"YulExpressionStatement","src":"15742:38:25"},{"nodeType":"YulAssignment","src":"15789:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15804:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15817:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15825:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15813:3:25"},"nodeType":"YulFunctionCall","src":"15813:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15834:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15830:3:25"},"nodeType":"YulFunctionCall","src":"15830:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15809:3:25"},"nodeType":"YulFunctionCall","src":"15809:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15800:3:25"},"nodeType":"YulFunctionCall","src":"15800:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"15841:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15796:3:25"},"nodeType":"YulFunctionCall","src":"15796:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15789:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"15621:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"15628:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15636:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15644:3:25","type":""}],"src":"15586:266:25"},{"body":{"nodeType":"YulBlock","src":"16012:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16029:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16044:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16052:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16040:3:25"},"nodeType":"YulFunctionCall","src":"16040:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16022:6:25"},"nodeType":"YulFunctionCall","src":"16022:38:25"},"nodeType":"YulExpressionStatement","src":"16022:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16080:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16091:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16076:3:25"},"nodeType":"YulFunctionCall","src":"16076:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16096:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16069:6:25"},"nodeType":"YulFunctionCall","src":"16069:30:25"},"nodeType":"YulExpressionStatement","src":"16069:30:25"},{"nodeType":"YulAssignment","src":"16108:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16142:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16150:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16162:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16173:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16158:3:25"},"nodeType":"YulFunctionCall","src":"16158:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16116:25:25"},"nodeType":"YulFunctionCall","src":"16116:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16108:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15965:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15976:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15984:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15992:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16003:4:25","type":""}],"src":"15857:326:25"},{"body":{"nodeType":"YulBlock","src":"16362:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16390:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16372:6:25"},"nodeType":"YulFunctionCall","src":"16372:21:25"},"nodeType":"YulExpressionStatement","src":"16372:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16413:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16424:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16409:3:25"},"nodeType":"YulFunctionCall","src":"16409:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16429:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16402:6:25"},"nodeType":"YulFunctionCall","src":"16402:30:25"},"nodeType":"YulExpressionStatement","src":"16402:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:25"},"nodeType":"YulFunctionCall","src":"16448:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"16468:32:25","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:25"},"nodeType":"YulFunctionCall","src":"16441:60:25"},"nodeType":"YulExpressionStatement","src":"16441:60:25"},{"nodeType":"YulAssignment","src":"16510:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16533:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16518:3:25"},"nodeType":"YulFunctionCall","src":"16518:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16510:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16339:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16353:4:25","type":""}],"src":"16188:354:25"},{"body":{"nodeType":"YulBlock","src":"16784:372:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16801:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16816:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16824:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16812:3:25"},"nodeType":"YulFunctionCall","src":"16812:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16794:6:25"},"nodeType":"YulFunctionCall","src":"16794:38:25"},"nodeType":"YulExpressionStatement","src":"16794:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16852:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16863:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16848:3:25"},"nodeType":"YulFunctionCall","src":"16848:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16868:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16841:6:25"},"nodeType":"YulFunctionCall","src":"16841:31:25"},"nodeType":"YulExpressionStatement","src":"16841:31:25"},{"nodeType":"YulVariableDeclaration","src":"16881:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16921:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16929:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16937:3:25"},"nodeType":"YulFunctionCall","src":"16937:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16895:25:25"},"nodeType":"YulFunctionCall","src":"16895:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16885:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16973:3:25"},"nodeType":"YulFunctionCall","src":"16973:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16997:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17005:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16993:3:25"},"nodeType":"YulFunctionCall","src":"16993:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16966:6:25"},"nodeType":"YulFunctionCall","src":"16966:59:25"},"nodeType":"YulExpressionStatement","src":"16966:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17045:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17056:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17041:3:25"},"nodeType":"YulFunctionCall","src":"17041:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17065:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17073:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17061:3:25"},"nodeType":"YulFunctionCall","src":"17061:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17034:6:25"},"nodeType":"YulFunctionCall","src":"17034:50:25"},"nodeType":"YulExpressionStatement","src":"17034:50:25"},{"nodeType":"YulAssignment","src":"17093:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17127:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"17135:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17143:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17101:25:25"},"nodeType":"YulFunctionCall","src":"17101:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17093:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16713:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16724:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16732:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16740:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16748:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16756:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16764:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16775:4:25","type":""}],"src":"16547:609:25"},{"body":{"nodeType":"YulBlock","src":"17370:310:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17387:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17402:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17410:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17398:3:25"},"nodeType":"YulFunctionCall","src":"17398:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17380:6:25"},"nodeType":"YulFunctionCall","src":"17380:38:25"},"nodeType":"YulExpressionStatement","src":"17380:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17438:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17449:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17434:3:25"},"nodeType":"YulFunctionCall","src":"17434:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17454:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17427:6:25"},"nodeType":"YulFunctionCall","src":"17427:31:25"},"nodeType":"YulExpressionStatement","src":"17427:31:25"},{"nodeType":"YulAssignment","src":"17467:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17501:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"17509:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17521:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17532:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17517:3:25"},"nodeType":"YulFunctionCall","src":"17517:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17475:25:25"},"nodeType":"YulFunctionCall","src":"17475:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17467:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17568:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17553:3:25"},"nodeType":"YulFunctionCall","src":"17553:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17577:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17585:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17573:3:25"},"nodeType":"YulFunctionCall","src":"17573:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17546:6:25"},"nodeType":"YulFunctionCall","src":"17546:59:25"},"nodeType":"YulExpressionStatement","src":"17546:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17625:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17636:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17621:3:25"},"nodeType":"YulFunctionCall","src":"17621:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17645:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17661:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17666:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17657:3:25"},"nodeType":"YulFunctionCall","src":"17657:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17670:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17653:3:25"},"nodeType":"YulFunctionCall","src":"17653:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17641:3:25"},"nodeType":"YulFunctionCall","src":"17641:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17614:6:25"},"nodeType":"YulFunctionCall","src":"17614:60:25"},"nodeType":"YulExpressionStatement","src":"17614:60:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17307:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17318:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17326:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17334:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17342:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17350:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17361:4:25","type":""}],"src":"17161:519:25"},{"body":{"nodeType":"YulBlock","src":"17859:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17876:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17887:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17869:6:25"},"nodeType":"YulFunctionCall","src":"17869:21:25"},"nodeType":"YulExpressionStatement","src":"17869:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17910:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17921:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17906:3:25"},"nodeType":"YulFunctionCall","src":"17906:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17926:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17899:6:25"},"nodeType":"YulFunctionCall","src":"17899:30:25"},"nodeType":"YulExpressionStatement","src":"17899:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17949:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17960:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17945:3:25"},"nodeType":"YulFunctionCall","src":"17945:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nodeType":"YulLiteral","src":"17965:34:25","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17938:6:25"},"nodeType":"YulFunctionCall","src":"17938:62:25"},"nodeType":"YulExpressionStatement","src":"17938:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18020:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18031:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18016:3:25"},"nodeType":"YulFunctionCall","src":"18016:18:25"},{"hexValue":"616e6379","kind":"string","nodeType":"YulLiteral","src":"18036:6:25","type":"","value":"ancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18009:6:25"},"nodeType":"YulFunctionCall","src":"18009:34:25"},"nodeType":"YulExpressionStatement","src":"18009:34:25"},{"nodeType":"YulAssignment","src":"18052:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18064:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18075:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18060:3:25"},"nodeType":"YulFunctionCall","src":"18060:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18052:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17836:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17850:4:25","type":""}],"src":"17685:400:25"},{"body":{"nodeType":"YulBlock","src":"18136:163:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18146:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"18156:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18150:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18183:29:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18202:5:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18209:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18198:3:25"},"nodeType":"YulFunctionCall","src":"18198:14:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"18187:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"18240:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18242:16:25"},"nodeType":"YulFunctionCall","src":"18242:18:25"},"nodeType":"YulExpressionStatement","src":"18242:18:25"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18227:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18236:2:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18224:2:25"},"nodeType":"YulFunctionCall","src":"18224:15:25"},"nodeType":"YulIf","src":"18221:41:25"},{"nodeType":"YulAssignment","src":"18271:22:25","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18282:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"18291:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18278:3:25"},"nodeType":"YulFunctionCall","src":"18278:15:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18271:3:25"}]}]},"name":"increment_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18118:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18128:3:25","type":""}],"src":"18090:209:25"},{"body":{"nodeType":"YulBlock","src":"18478:176:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18506:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18488:6:25"},"nodeType":"YulFunctionCall","src":"18488:21:25"},"nodeType":"YulExpressionStatement","src":"18488:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18540:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18525:3:25"},"nodeType":"YulFunctionCall","src":"18525:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18545:2:25","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18518:6:25"},"nodeType":"YulFunctionCall","src":"18518:30:25"},"nodeType":"YulExpressionStatement","src":"18518:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18568:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18579:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18564:3:25"},"nodeType":"YulFunctionCall","src":"18564:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nodeType":"YulLiteral","src":"18584:28:25","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18557:6:25"},"nodeType":"YulFunctionCall","src":"18557:56:25"},"nodeType":"YulExpressionStatement","src":"18557:56:25"},{"nodeType":"YulAssignment","src":"18622:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18630:3:25"},"nodeType":"YulFunctionCall","src":"18630:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18622:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18455:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18469:4:25","type":""}],"src":"18304:350:25"},{"body":{"nodeType":"YulBlock","src":"18708:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"18730:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18732:16:25"},"nodeType":"YulFunctionCall","src":"18732:18:25"},"nodeType":"YulExpressionStatement","src":"18732:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18724:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18727:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18721:2:25"},"nodeType":"YulFunctionCall","src":"18721:8:25"},"nodeType":"YulIf","src":"18718:34:25"},{"nodeType":"YulAssignment","src":"18761:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18773:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18776:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18769:3:25"},"nodeType":"YulFunctionCall","src":"18769:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"18761:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18690:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"18693:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"18699:4:25","type":""}],"src":"18659:125:25"},{"body":{"nodeType":"YulBlock","src":"18821:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18838:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18845:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18850:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18841:3:25"},"nodeType":"YulFunctionCall","src":"18841:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18831:6:25"},"nodeType":"YulFunctionCall","src":"18831:31:25"},"nodeType":"YulExpressionStatement","src":"18831:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18878:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18881:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18871:6:25"},"nodeType":"YulFunctionCall","src":"18871:15:25"},"nodeType":"YulExpressionStatement","src":"18871:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18902:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18905:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18895:6:25"},"nodeType":"YulFunctionCall","src":"18895:15:25"},"nodeType":"YulExpressionStatement","src":"18895:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"18789:127:25"},{"body":{"nodeType":"YulBlock","src":"18968:88:25","statements":[{"body":{"nodeType":"YulBlock","src":"18999:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19001:16:25"},"nodeType":"YulFunctionCall","src":"19001:18:25"},"nodeType":"YulExpressionStatement","src":"19001:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18984:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18995:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18991:3:25"},"nodeType":"YulFunctionCall","src":"18991:6:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18981:2:25"},"nodeType":"YulFunctionCall","src":"18981:17:25"},"nodeType":"YulIf","src":"18978:43:25"},{"nodeType":"YulAssignment","src":"19030:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19041:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"19048:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19037:3:25"},"nodeType":"YulFunctionCall","src":"19037:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19030:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18950:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18960:3:25","type":""}],"src":"18921:135:25"},{"body":{"nodeType":"YulBlock","src":"19372:557:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19389:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19404:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19412:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19400:3:25"},"nodeType":"YulFunctionCall","src":"19400:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19382:6:25"},"nodeType":"YulFunctionCall","src":"19382:38:25"},"nodeType":"YulExpressionStatement","src":"19382:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19440:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19451:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19456:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19429:6:25"},"nodeType":"YulFunctionCall","src":"19429:31:25"},"nodeType":"YulExpressionStatement","src":"19429:31:25"},{"nodeType":"YulVariableDeclaration","src":"19469:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19509:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19517:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19540:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19525:3:25"},"nodeType":"YulFunctionCall","src":"19525:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19483:25:25"},"nodeType":"YulFunctionCall","src":"19483:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19473:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19565:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19576:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19561:3:25"},"nodeType":"YulFunctionCall","src":"19561:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19585:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19601:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19606:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19597:3:25"},"nodeType":"YulFunctionCall","src":"19597:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"19610:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19593:3:25"},"nodeType":"YulFunctionCall","src":"19593:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19581:3:25"},"nodeType":"YulFunctionCall","src":"19581:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19554:6:25"},"nodeType":"YulFunctionCall","src":"19554:60:25"},"nodeType":"YulExpressionStatement","src":"19554:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:25"},"nodeType":"YulFunctionCall","src":"19630:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"19654:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19662:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19650:3:25"},"nodeType":"YulFunctionCall","src":"19650:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19623:6:25"},"nodeType":"YulFunctionCall","src":"19623:59:25"},"nodeType":"YulExpressionStatement","src":"19623:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19702:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19713:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19698:3:25"},"nodeType":"YulFunctionCall","src":"19698:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19723:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19731:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19719:3:25"},"nodeType":"YulFunctionCall","src":"19719:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19691:6:25"},"nodeType":"YulFunctionCall","src":"19691:51:25"},"nodeType":"YulExpressionStatement","src":"19691:51:25"},{"nodeType":"YulVariableDeclaration","src":"19751:63:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"19791:6:25"},{"name":"value6","nodeType":"YulIdentifier","src":"19799:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"19807:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19765:25:25"},"nodeType":"YulFunctionCall","src":"19765:49:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"19755:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19834:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19845:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19830:3:25"},"nodeType":"YulFunctionCall","src":"19830:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"19855:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19863:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19851:3:25"},"nodeType":"YulFunctionCall","src":"19851:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19823:6:25"},"nodeType":"YulFunctionCall","src":"19823:51:25"},"nodeType":"YulExpressionStatement","src":"19823:51:25"},{"nodeType":"YulAssignment","src":"19883:40:25","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"19908:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"19916:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19891:16:25"},"nodeType":"YulFunctionCall","src":"19891:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19883:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19285:9:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"19296:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"19304:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"19312:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19320:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19328:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19336:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19344:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19352:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19363:4:25","type":""}],"src":"19061:868:25"},{"body":{"nodeType":"YulBlock","src":"20108:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20136:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20118:6:25"},"nodeType":"YulFunctionCall","src":"20118:21:25"},"nodeType":"YulExpressionStatement","src":"20118:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20155:3:25"},"nodeType":"YulFunctionCall","src":"20155:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20175:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20148:6:25"},"nodeType":"YulFunctionCall","src":"20148:30:25"},"nodeType":"YulExpressionStatement","src":"20148:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20209:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20194:3:25"},"nodeType":"YulFunctionCall","src":"20194:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nodeType":"YulLiteral","src":"20214:34:25","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20187:6:25"},"nodeType":"YulFunctionCall","src":"20187:62:25"},"nodeType":"YulExpressionStatement","src":"20187:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20280:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20265:3:25"},"nodeType":"YulFunctionCall","src":"20265:18:25"},{"hexValue":"79","kind":"string","nodeType":"YulLiteral","src":"20285:3:25","type":"","value":"y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20258:6:25"},"nodeType":"YulFunctionCall","src":"20258:31:25"},"nodeType":"YulExpressionStatement","src":"20258:31:25"},{"nodeType":"YulAssignment","src":"20298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20306:3:25"},"nodeType":"YulFunctionCall","src":"20306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20085:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"19934:397:25"},{"body":{"nodeType":"YulBlock","src":"20510:234:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20527:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20538:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20520:6:25"},"nodeType":"YulFunctionCall","src":"20520:21:25"},"nodeType":"YulExpressionStatement","src":"20520:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20572:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20557:3:25"},"nodeType":"YulFunctionCall","src":"20557:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20577:2:25","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20550:6:25"},"nodeType":"YulFunctionCall","src":"20550:30:25"},"nodeType":"YulExpressionStatement","src":"20550:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20600:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20611:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20596:3:25"},"nodeType":"YulFunctionCall","src":"20596:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nodeType":"YulLiteral","src":"20616:34:25","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20589:6:25"},"nodeType":"YulFunctionCall","src":"20589:62:25"},"nodeType":"YulExpressionStatement","src":"20589:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20667:3:25"},"nodeType":"YulFunctionCall","src":"20667:18:25"},{"hexValue":"616464726573732073697a65","kind":"string","nodeType":"YulLiteral","src":"20687:14:25","type":"","value":"address size"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20660:6:25"},"nodeType":"YulFunctionCall","src":"20660:42:25"},"nodeType":"YulExpressionStatement","src":"20660:42:25"},{"nodeType":"YulAssignment","src":"20711:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20723:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20734:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20719:3:25"},"nodeType":"YulFunctionCall","src":"20719:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20711:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20487:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20501:4:25","type":""}],"src":"20336:408:25"},{"body":{"nodeType":"YulBlock","src":"20923:245:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20951:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20933:6:25"},"nodeType":"YulFunctionCall","src":"20933:21:25"},"nodeType":"YulExpressionStatement","src":"20933:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20974:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20985:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20970:3:25"},"nodeType":"YulFunctionCall","src":"20970:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20990:2:25","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20963:6:25"},"nodeType":"YulFunctionCall","src":"20963:30:25"},"nodeType":"YulExpressionStatement","src":"20963:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21024:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21009:3:25"},"nodeType":"YulFunctionCall","src":"21009:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nodeType":"YulLiteral","src":"21029:34:25","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21002:6:25"},"nodeType":"YulFunctionCall","src":"21002:62:25"},"nodeType":"YulExpressionStatement","src":"21002:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21084:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21095:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21080:3:25"},"nodeType":"YulFunctionCall","src":"21080:18:25"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nodeType":"YulLiteral","src":"21100:25:25","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21073:6:25"},"nodeType":"YulFunctionCall","src":"21073:53:25"},"nodeType":"YulExpressionStatement","src":"21073:53:25"},{"nodeType":"YulAssignment","src":"21135:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21158:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21143:3:25"},"nodeType":"YulFunctionCall","src":"21143:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21135:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20900:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20914:4:25","type":""}],"src":"20749:419:25"},{"body":{"nodeType":"YulBlock","src":"21347:231:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21364:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21375:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21357:6:25"},"nodeType":"YulFunctionCall","src":"21357:21:25"},"nodeType":"YulExpressionStatement","src":"21357:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21398:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21409:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21394:3:25"},"nodeType":"YulFunctionCall","src":"21394:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21414:2:25","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21387:6:25"},"nodeType":"YulFunctionCall","src":"21387:30:25"},"nodeType":"YulExpressionStatement","src":"21387:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21437:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21448:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21433:3:25"},"nodeType":"YulFunctionCall","src":"21433:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nodeType":"YulLiteral","src":"21453:34:25","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21426:6:25"},"nodeType":"YulFunctionCall","src":"21426:62:25"},"nodeType":"YulExpressionStatement","src":"21426:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21508:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21519:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21504:3:25"},"nodeType":"YulFunctionCall","src":"21504:18:25"},{"hexValue":"20666f722066656573","kind":"string","nodeType":"YulLiteral","src":"21524:11:25","type":"","value":" for fees"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21497:6:25"},"nodeType":"YulFunctionCall","src":"21497:39:25"},"nodeType":"YulExpressionStatement","src":"21497:39:25"},{"nodeType":"YulAssignment","src":"21545:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21568:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21553:3:25"},"nodeType":"YulFunctionCall","src":"21553:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21545:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21324:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21338:4:25","type":""}],"src":"21173:405:25"},{"body":{"nodeType":"YulBlock","src":"21774:14:25","statements":[{"nodeType":"YulAssignment","src":"21776:10:25","value":{"name":"pos","nodeType":"YulIdentifier","src":"21783:3:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21776:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21758:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21766:3:25","type":""}],"src":"21583:205:25"},{"body":{"nodeType":"YulBlock","src":"21967:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21977:6:25"},"nodeType":"YulFunctionCall","src":"21977:21:25"},"nodeType":"YulExpressionStatement","src":"21977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22014:3:25"},"nodeType":"YulFunctionCall","src":"22014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22034:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22007:6:25"},"nodeType":"YulFunctionCall","src":"22007:30:25"},"nodeType":"YulExpressionStatement","src":"22007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22053:3:25"},"nodeType":"YulFunctionCall","src":"22053:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nodeType":"YulLiteral","src":"22073:33:25","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22046:6:25"},"nodeType":"YulFunctionCall","src":"22046:61:25"},"nodeType":"YulExpressionStatement","src":"22046:61:25"},{"nodeType":"YulAssignment","src":"22116:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22124:3:25"},"nodeType":"YulFunctionCall","src":"22124:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22116:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21958:4:25","type":""}],"src":"21793:355:25"},{"body":{"nodeType":"YulBlock","src":"22300:186:25","statements":[{"nodeType":"YulVariableDeclaration","src":"22310:41:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22324:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22320:3:25"},"nodeType":"YulFunctionCall","src":"22320:31:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22314:2:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22367:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22380:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"22384:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22393:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22372:3:25"},"nodeType":"YulFunctionCall","src":"22372:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22360:6:25"},"nodeType":"YulFunctionCall","src":"22360:37:25"},"nodeType":"YulExpressionStatement","src":"22360:37:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22417:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22422:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22413:3:25"},"nodeType":"YulFunctionCall","src":"22413:12:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22435:2:25","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"22439:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22431:3:25"},"nodeType":"YulFunctionCall","src":"22431:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22448:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22427:3:25"},"nodeType":"YulFunctionCall","src":"22427:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22406:6:25"},"nodeType":"YulFunctionCall","src":"22406:46:25"},"nodeType":"YulExpressionStatement","src":"22406:46:25"},{"nodeType":"YulAssignment","src":"22461:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22472:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22477:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22468:3:25"},"nodeType":"YulFunctionCall","src":"22468:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22461:3:25"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22268:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22273:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22281:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22292:3:25","type":""}],"src":"22153:333:25"},{"body":{"nodeType":"YulBlock","src":"22764:452:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22781:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22796:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22804:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22792:3:25"},"nodeType":"YulFunctionCall","src":"22792:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22774:6:25"},"nodeType":"YulFunctionCall","src":"22774:38:25"},"nodeType":"YulExpressionStatement","src":"22774:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22832:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22843:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22828:3:25"},"nodeType":"YulFunctionCall","src":"22828:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22848:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22821:6:25"},"nodeType":"YulFunctionCall","src":"22821:31:25"},"nodeType":"YulExpressionStatement","src":"22821:31:25"},{"nodeType":"YulVariableDeclaration","src":"22861:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22892:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22904:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22915:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22900:3:25"},"nodeType":"YulFunctionCall","src":"22900:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"22875:16:25"},"nodeType":"YulFunctionCall","src":"22875:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22865:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22951:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22936:3:25"},"nodeType":"YulFunctionCall","src":"22936:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22960:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22976:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22981:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22972:3:25"},"nodeType":"YulFunctionCall","src":"22972:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22985:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22968:3:25"},"nodeType":"YulFunctionCall","src":"22968:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22956:3:25"},"nodeType":"YulFunctionCall","src":"22956:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22929:6:25"},"nodeType":"YulFunctionCall","src":"22929:60:25"},"nodeType":"YulExpressionStatement","src":"22929:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23009:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23020:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23005:3:25"},"nodeType":"YulFunctionCall","src":"23005:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23029:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23037:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23025:3:25"},"nodeType":"YulFunctionCall","src":"23025:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22998:6:25"},"nodeType":"YulFunctionCall","src":"22998:59:25"},"nodeType":"YulExpressionStatement","src":"22998:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23077:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23088:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23073:3:25"},"nodeType":"YulFunctionCall","src":"23073:19:25"},{"name":"value4","nodeType":"YulIdentifier","src":"23094:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23066:6:25"},"nodeType":"YulFunctionCall","src":"23066:35:25"},"nodeType":"YulExpressionStatement","src":"23066:35:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23121:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23132:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23117:3:25"},"nodeType":"YulFunctionCall","src":"23117:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"23142:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23138:3:25"},"nodeType":"YulFunctionCall","src":"23138:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23110:6:25"},"nodeType":"YulFunctionCall","src":"23110:51:25"},"nodeType":"YulExpressionStatement","src":"23110:51:25"},{"nodeType":"YulAssignment","src":"23170:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"23195:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"23203:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23178:16:25"},"nodeType":"YulFunctionCall","src":"23178:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23170:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22693:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"22704:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22712:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22720:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22728:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22736:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22744:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22755:4:25","type":""}],"src":"22491:725:25"},{"body":{"nodeType":"YulBlock","src":"23366:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23383:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23396:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"23401:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23392:3:25"},"nodeType":"YulFunctionCall","src":"23392:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23414:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"23419:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23388:3:25"},"nodeType":"YulFunctionCall","src":"23388:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23376:6:25"},"nodeType":"YulFunctionCall","src":"23376:51:25"},"nodeType":"YulExpressionStatement","src":"23376:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23447:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23452:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23443:3:25"},"nodeType":"YulFunctionCall","src":"23443:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"23456:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23436:6:25"},"nodeType":"YulFunctionCall","src":"23436:27:25"},"nodeType":"YulExpressionStatement","src":"23436:27:25"},{"nodeType":"YulAssignment","src":"23472:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23483:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23488:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23479:3:25"},"nodeType":"YulFunctionCall","src":"23479:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23472:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23334:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23339:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23347:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23358:3:25","type":""}],"src":"23221:276:25"},{"body":{"nodeType":"YulBlock","src":"23676:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23693:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23704:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23686:6:25"},"nodeType":"YulFunctionCall","src":"23686:21:25"},"nodeType":"YulExpressionStatement","src":"23686:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23738:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23723:3:25"},"nodeType":"YulFunctionCall","src":"23723:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23743:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23716:6:25"},"nodeType":"YulFunctionCall","src":"23716:30:25"},"nodeType":"YulExpressionStatement","src":"23716:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23777:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23762:3:25"},"nodeType":"YulFunctionCall","src":"23762:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nodeType":"YulLiteral","src":"23782:34:25","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23755:6:25"},"nodeType":"YulFunctionCall","src":"23755:62:25"},"nodeType":"YulExpressionStatement","src":"23755:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23837:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23848:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23833:3:25"},"nodeType":"YulFunctionCall","src":"23833:18:25"},{"hexValue":"6c6172676520","kind":"string","nodeType":"YulLiteral","src":"23853:8:25","type":"","value":"large "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23826:6:25"},"nodeType":"YulFunctionCall","src":"23826:36:25"},"nodeType":"YulExpressionStatement","src":"23826:36:25"},{"nodeType":"YulAssignment","src":"23871:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23894:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23879:3:25"},"nodeType":"YulFunctionCall","src":"23879:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23871:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23653:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23667:4:25","type":""}],"src":"23502:402:25"},{"body":{"nodeType":"YulBlock","src":"23961:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"24020:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24022:16:25"},"nodeType":"YulFunctionCall","src":"24022:18:25"},"nodeType":"YulExpressionStatement","src":"24022:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23992:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23985:6:25"},"nodeType":"YulFunctionCall","src":"23985:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23978:6:25"},"nodeType":"YulFunctionCall","src":"23978:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24000:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24011:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24007:3:25"},"nodeType":"YulFunctionCall","src":"24007:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"24015:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24003:3:25"},"nodeType":"YulFunctionCall","src":"24003:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23997:2:25"},"nodeType":"YulFunctionCall","src":"23997:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23974:3:25"},"nodeType":"YulFunctionCall","src":"23974:45:25"},"nodeType":"YulIf","src":"23971:71:25"},{"nodeType":"YulAssignment","src":"24051:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24066:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24069:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24062:3:25"},"nodeType":"YulFunctionCall","src":"24062:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24051:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23940:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"23943:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23949:7:25","type":""}],"src":"23909:168:25"},{"body":{"nodeType":"YulBlock","src":"24114:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24131:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24138:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24143:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24134:3:25"},"nodeType":"YulFunctionCall","src":"24134:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24124:6:25"},"nodeType":"YulFunctionCall","src":"24124:31:25"},"nodeType":"YulExpressionStatement","src":"24124:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24171:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24174:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24164:6:25"},"nodeType":"YulFunctionCall","src":"24164:15:25"},"nodeType":"YulExpressionStatement","src":"24164:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24195:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24198:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24188:6:25"},"nodeType":"YulFunctionCall","src":"24188:15:25"},"nodeType":"YulExpressionStatement","src":"24188:15:25"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"24082:127:25"},{"body":{"nodeType":"YulBlock","src":"24260:74:25","statements":[{"body":{"nodeType":"YulBlock","src":"24283:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24285:16:25"},"nodeType":"YulFunctionCall","src":"24285:18:25"},"nodeType":"YulExpressionStatement","src":"24285:18:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24280:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24273:6:25"},"nodeType":"YulFunctionCall","src":"24273:9:25"},"nodeType":"YulIf","src":"24270:35:25"},{"nodeType":"YulAssignment","src":"24314:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24323:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24326:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24319:3:25"},"nodeType":"YulFunctionCall","src":"24319:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24314:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24245:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24248:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24254:1:25","type":""}],"src":"24214:120:25"},{"body":{"nodeType":"YulBlock","src":"24391:235:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24401:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24411:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24405:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24454:21:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24469:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24472:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24465:3:25"},"nodeType":"YulFunctionCall","src":"24465:10:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"24458:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24484:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24499:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24502:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24495:3:25"},"nodeType":"YulFunctionCall","src":"24495:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24488:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24565:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24567:16:25"},"nodeType":"YulFunctionCall","src":"24567:18:25"},"nodeType":"YulExpressionStatement","src":"24567:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24535:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24528:6:25"},"nodeType":"YulFunctionCall","src":"24528:11:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24521:6:25"},"nodeType":"YulFunctionCall","src":"24521:19:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24545:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24554:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"24558:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24550:3:25"},"nodeType":"YulFunctionCall","src":"24550:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24542:2:25"},"nodeType":"YulFunctionCall","src":"24542:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24517:3:25"},"nodeType":"YulFunctionCall","src":"24517:47:25"},"nodeType":"YulIf","src":"24514:73:25"},{"nodeType":"YulAssignment","src":"24596:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24611:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24616:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24607:3:25"},"nodeType":"YulFunctionCall","src":"24607:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24596:7:25"}]}]},"name":"checked_mul_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24370:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24373:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"24379:7:25","type":""}],"src":"24339:287:25"},{"body":{"nodeType":"YulBlock","src":"24677:170:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24687:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24697:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24691:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24740:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24755:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24758:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24751:3:25"},"nodeType":"YulFunctionCall","src":"24751:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24744:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24785:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24787:16:25"},"nodeType":"YulFunctionCall","src":"24787:18:25"},"nodeType":"YulExpressionStatement","src":"24787:18:25"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24780:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24773:6:25"},"nodeType":"YulFunctionCall","src":"24773:11:25"},"nodeType":"YulIf","src":"24770:37:25"},{"nodeType":"YulAssignment","src":"24816:25:25","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24829:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24832:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:10:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24837:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24821:3:25"},"nodeType":"YulFunctionCall","src":"24821:20:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24816:1:25"}]}]},"name":"checked_div_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24662:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24665:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24671:1:25","type":""}],"src":"24631:216:25"},{"body":{"nodeType":"YulBlock","src":"25079:355:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25096:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25111:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25119:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25107:3:25"},"nodeType":"YulFunctionCall","src":"25107:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25089:6:25"},"nodeType":"YulFunctionCall","src":"25089:38:25"},"nodeType":"YulExpressionStatement","src":"25089:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25158:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25143:3:25"},"nodeType":"YulFunctionCall","src":"25143:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25163:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25136:6:25"},"nodeType":"YulFunctionCall","src":"25136:31:25"},"nodeType":"YulExpressionStatement","src":"25136:31:25"},{"nodeType":"YulVariableDeclaration","src":"25176:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25216:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"25224:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25236:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25247:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25232:3:25"},"nodeType":"YulFunctionCall","src":"25232:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"25190:25:25"},"nodeType":"YulFunctionCall","src":"25190:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"25180:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25272:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25283:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25268:3:25"},"nodeType":"YulFunctionCall","src":"25268:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"25292:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25300:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25288:3:25"},"nodeType":"YulFunctionCall","src":"25288:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25261:6:25"},"nodeType":"YulFunctionCall","src":"25261:59:25"},"nodeType":"YulExpressionStatement","src":"25261:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25340:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25351:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25336:3:25"},"nodeType":"YulFunctionCall","src":"25336:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"25360:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25368:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25356:3:25"},"nodeType":"YulFunctionCall","src":"25356:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25329:6:25"},"nodeType":"YulFunctionCall","src":"25329:50:25"},"nodeType":"YulExpressionStatement","src":"25329:50:25"},{"nodeType":"YulAssignment","src":"25388:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25413:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"25421:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25396:16:25"},"nodeType":"YulFunctionCall","src":"25396:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25388:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25016:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25027:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25035:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25043:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25051:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25059:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25070:4:25","type":""}],"src":"24852:582:25"},{"body":{"nodeType":"YulBlock","src":"25471:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25488:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25495:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25500:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25491:3:25"},"nodeType":"YulFunctionCall","src":"25491:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25481:6:25"},"nodeType":"YulFunctionCall","src":"25481:31:25"},"nodeType":"YulExpressionStatement","src":"25481:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25528:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25531:4:25","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25521:6:25"},"nodeType":"YulFunctionCall","src":"25521:15:25"},"nodeType":"YulExpressionStatement","src":"25521:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25552:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25555:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25545:6:25"},"nodeType":"YulFunctionCall","src":"25545:15:25"},"nodeType":"YulExpressionStatement","src":"25545:15:25"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"25439:127:25"},{"body":{"nodeType":"YulBlock","src":"25745:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25762:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25773:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25755:6:25"},"nodeType":"YulFunctionCall","src":"25755:21:25"},"nodeType":"YulExpressionStatement","src":"25755:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25796:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25807:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25812:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25785:6:25"},"nodeType":"YulFunctionCall","src":"25785:30:25"},"nodeType":"YulExpressionStatement","src":"25785:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25835:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25846:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25831:3:25"},"nodeType":"YulFunctionCall","src":"25831:18:25"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nodeType":"YulLiteral","src":"25851:23:25","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25824:6:25"},"nodeType":"YulFunctionCall","src":"25824:51:25"},"nodeType":"YulExpressionStatement","src":"25824:51:25"},{"nodeType":"YulAssignment","src":"25884:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25907:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25892:3:25"},"nodeType":"YulFunctionCall","src":"25892:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25884:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25722:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25736:4:25","type":""}],"src":"25571:345:25"},{"body":{"nodeType":"YulBlock","src":"26095:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26112:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26123:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26105:6:25"},"nodeType":"YulFunctionCall","src":"26105:21:25"},"nodeType":"YulExpressionStatement","src":"26105:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26146:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26157:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26142:3:25"},"nodeType":"YulFunctionCall","src":"26142:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26162:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26135:6:25"},"nodeType":"YulFunctionCall","src":"26135:30:25"},"nodeType":"YulExpressionStatement","src":"26135:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26185:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26196:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26181:3:25"},"nodeType":"YulFunctionCall","src":"26181:18:25"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nodeType":"YulLiteral","src":"26201:20:25","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26174:6:25"},"nodeType":"YulFunctionCall","src":"26174:48:25"},"nodeType":"YulExpressionStatement","src":"26174:48:25"},{"nodeType":"YulAssignment","src":"26231:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26243:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26254:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26239:3:25"},"nodeType":"YulFunctionCall","src":"26239:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26231:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26072:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26086:4:25","type":""}],"src":"25921:342:25"},{"body":{"nodeType":"YulBlock","src":"26442:161:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26470:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26452:6:25"},"nodeType":"YulFunctionCall","src":"26452:21:25"},"nodeType":"YulExpressionStatement","src":"26452:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26493:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26504:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26489:3:25"},"nodeType":"YulFunctionCall","src":"26489:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26509:2:25","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26482:6:25"},"nodeType":"YulFunctionCall","src":"26482:30:25"},"nodeType":"YulExpressionStatement","src":"26482:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26543:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26528:3:25"},"nodeType":"YulFunctionCall","src":"26528:18:25"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nodeType":"YulLiteral","src":"26548:13:25","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26521:6:25"},"nodeType":"YulFunctionCall","src":"26521:41:25"},"nodeType":"YulExpressionStatement","src":"26521:41:25"},{"nodeType":"YulAssignment","src":"26571:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26583:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26594:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26579:3:25"},"nodeType":"YulFunctionCall","src":"26579:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26571:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26419:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26433:4:25","type":""}],"src":"26268:335:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), 0)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_uint128(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint128(headStart)\n value1 := abi_decode_uint128(add(headStart, 32))\n value2 := abi_decode_uint128(add(headStart, 64))\n value3 := abi_decode_uint64(add(headStart, 96))\n value4 := abi_decode_uint64(add(headStart, 128))\n }\n function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let value_1 := calldataload(add(headStart, 96))\n if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n value3 := value_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n let _1 := 0xffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n let _2 := 0xffffffffffffffff\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, _2))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value3 := value\n value4 := abi_decode_uint64(add(headStart, 96))\n value5 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value4 := value\n let value_1 := calldataload(add(headStart, 128))\n validator_revert_address(value_1)\n value5 := value_1\n let offset_2 := calldataload(add(headStart, 160))\n if gt(offset_2, _1) { revert(0, 0) }\n value6 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"LayerZeroMock: no stored payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), and(value4, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"LayerZeroMock: no receive reentr\")\n mstore(add(headStart, 96), \"ancy\")\n tail := add(headStart, 128)\n }\n function increment_t_uint64(value) -> ret\n {\n let _1 := 0xffffffffffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"LayerZeroMock: wrong nonce\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 192))\n mstore(add(headStart, 64), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value4, 0xffffffffffffffff))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes_calldata(value5, value6, tail_1)\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value7, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"LayerZeroMock: no send reentranc\")\n mstore(add(headStart, 96), \"y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"LayerZeroMock: incorrect remote \")\n mstore(add(headStart, 96), \"address size\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 55)\n mstore(add(headStart, 64), \"LayerZeroMock: destination Layer\")\n mstore(add(headStart, 96), \"Zero Endpoint not found\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"LayerZeroMock: not enough native\")\n mstore(add(headStart, 96), \" for fees\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"LayerZeroMock: failed to refund\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let _1 := not(0xffffffffffffffffffffffff)\n mstore(pos, and(shl(96, value0), _1))\n mstore(add(pos, 20), and(shl(96, value1), _1))\n end := add(pos, 40)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), sub(tail_1, headStart))\n tail := abi_encode_bytes(value5, tail_1)\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LayerZeroMock: dstNativeAmt too \")\n mstore(add(headStart, 96), \"large \")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_mul_t_uint128(x, y) -> product\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_div_t_uint128(x, y) -> r\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Invalid adapterParams\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unsupported txType\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 11)\n mstore(add(headStart, 64), \"Gas too low\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220384edda9ae8a264ade4ab6af65ffc5d1d0b63daa1521cc15633806bc2a19631664736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x4E 0xDD 0xA9 0xAE DUP11 0x26 0x4A 0xDE 0x4A 0xB6 0xAF PUSH6 0xFFC5D1D0B63D 0xAA ISZERO 0x21 0xCC ISZERO PUSH4 0x3806BC2A NOT PUSH4 0x1664736F PUSH13 0x634300080A0033000000000000 ","sourceMap":"817:15467:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:42;;;;;;;;;;-1:-1:-1;1144:42:6;;;;;;;;;;;;;188:25:25;;;244:2;229:18;;222:34;;;;161:18;1144:42:6;;;;;;;;11660:78;;;;;;;;;;-1:-1:-1;11660:78:6;;;;;:::i;:::-;;;;;11206:133;;;;;;;;;;-1:-1:-1;11206:133:6;;;;;:::i;:::-;-1:-1:-1;11331:1:6;;11206:133;;;;1182:6:25;1170:19;;;1152:38;;1140:2;1125:18;11206:133:6;1008:188:25;10246:228:6;;;;;;;;;;-1:-1:-1;10246:228:6;;;;;:::i;:::-;;:::i;:::-;;;2204:14:25;;2197:22;2179:41;;2167:2;2152:18;10246:228:6;2039:187:25;1846:73:6;;;;;;;;;;-1:-1:-1;1846:73:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13583:162::-;;;;;;;;;;-1:-1:-1;13583:162:6;;;;;:::i;:::-;13656:17;:34;;;;13700:26;:38;13583:162;1219:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13145:432::-;;;;;;;;;;-1:-1:-1;13145:432:6;;;;;:::i;:::-;-1:-1:-1;;;;;13303:47:6;;;-1:-1:-1;;;13360:53:6;;;;;;13303:16;13360:53;13423:32;:51;;;;;;-1:-1:-1;;;;;;13484:35:6;;;;;;;-1:-1:-1;;;;;13484:35:6;;;;;;;;;;-1:-1:-1;;;;;13529:41:6;-1:-1:-1;;;13529:41:6;;;;;;;;13145:432;9344:97;;;;;;;;;;-1:-1:-1;9423:11:6;;;;9344:97;;1047:26;;;;;;;;;;-1:-1:-1;1047:26:6;;;;;;;;;;;8645:693;;;;;;;;;;-1:-1:-1;8645:693:6;;;;;:::i;:::-;;:::i;11831:720::-;;;;;;;;;;-1:-1:-1;11831:720:6;;;;;:::i;:::-;;:::i;10604:121::-;;;;;;;;;;-1:-1:-1;10604:121:6;;;;;:::i;:::-;-1:-1:-1;10713:4:6;;10604:121;;;;-1:-1:-1;;;;;6855:32:25;;;6837:51;;6825:2;6810:18;10604:121:6;6691:203:25;1728:71:6;;;;;;;;;;-1:-1:-1;1728:71:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1728:71:6;;;-1:-1:-1;;;1728:71:6;;-1:-1:-1;;;;;1728:71:6;;;;;;;;-1:-1:-1;;;;;7514:31:25;;;7496:50;;-1:-1:-1;;;;;7582:32:25;;;7577:2;7562:18;;7555:60;7631:18;;;7624:34;7484:2;7469:18;1728:71:6;7296:368:25;8475:164:6;;;;;;;;;;-1:-1:-1;8475:164:6;;;;;:::i;:::-;8596:23;;;8571:6;8596:23;;;:13;:23;;;;;;;;-1:-1:-1;;;;;8596:36:6;;;;;;;;;;-1:-1:-1;;;;;8596:36:6;8475:164;;;;;;;;-1:-1:-1;;;;;8155:31:25;;;8137:50;;8125:2;8110:18;8475:164:6;7993:200:25;12679:173:6;;;;;;;;;;-1:-1:-1;12679:173:6;;;;;:::i;:::-;;:::i;:::-;;;8344:25:25;;;8332:2;8317:18;12679:173:6;8198:177:25;1098:40:6;;;;;;;;;;-1:-1:-1;1098:40:6;;;;;;-1:-1:-1;;;;;1098:40:6;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;;;-1:-1:-1;;;;;1098:40:6;;;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;-1:-1:-1;;;;;8706:15:25;;;8688:34;;8758:15;;;8753:2;8738:18;;8731:43;8810:15;;;;8790:18;;;8783:43;;;;-1:-1:-1;;;;;8899:15:25;;;8894:2;8879:18;;8872:43;8952:15;;;8946:3;8931:19;;8924:44;8622:3;8607:19;1098:40:6;8380:594:25;1345:63:6;;;;;;;;;;-1:-1:-1;1345:63:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1345:63:6;;;9447:793;;;;;;;;;;-1:-1:-1;9447:793:6;;;;;:::i;:::-;;:::i;1489:66::-;;;;;;;;;;-1:-1:-1;1489:66:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1489:66:6;;;13751:87;;;;;;;;;;-1:-1:-1;13751:87:6;;;;;:::i;:::-;13809:9;:22;13751:87;13001:138;;;;;;;;;;-1:-1:-1;13001:138:6;;;;;:::i;:::-;-1:-1:-1;;;;;13089:26:6;;;:16;:26;;;;;;;;;;:43;;-1:-1:-1;;;;;;13089:43:6;;;;;;;;13001:138;6031:2275;;;;;;;;;;-1:-1:-1;6031:2275:6;;;;;:::i;:::-;;:::i;4013:2012::-;;;;;;:::i;:::-;;:::i;958:51::-;;;;;;;;;;-1:-1:-1;958:51:6;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;958:51:6;;;10858:126;;;;;;;;;;;;10943:22;;;;;:34;:22;950:1;10943:34;;10858:126;11487:167;;;;;;;;;;-1:-1:-1;11487:167:6;;;;;:::i;:::-;11919:632;11831:720;;;;12924:71;;;;;;;;;;;;12984:4;12967:21;;-1:-1:-1;;12967:21:6;;;;;12924:71;1016:25;;;;;;;;;;-1:-1:-1;1016:25:6;;;;;;;;10731:121;;;;;;;;;;;;10814:19;;:31;:19;950:1;10814:31;;10731:121;10990:210;;;;;;;;;;-1:-1:-1;10990:210:6;;;;;:::i;:::-;11184:9;;;;;;;;;-1:-1:-1;11184:9:6;;10990:210;;;;;;;1192:21;;;;;;;;;;;;;;;;13844:125;;;;;;;;;;-1:-1:-1;13844:125:6;;;;;:::i;:::-;;:::i;8312:157::-;;;;;;;;;;-1:-1:-1;8312:157:6;;;;;:::i;:::-;;:::i;10246:228::-;10389:26;;;10346:4;10389:26;;;:13;:26;;;;;;:33;;10346:4;;10389:26;:33;;10416:5;;;;10389:33;:::i;:::-;;;;;;;;;;;;;;10439:14;;;:28;;;-1:-1:-1;;10246:228:6;;;;;;:::o;1846:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1846:73:6;;;-1:-1:-1;;;;1846:73:6;;;-1:-1:-1;;;;;1846:73:6;;-1:-1:-1;1846:73:6;;-1:-1:-1;1846:73:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1219:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8645:693::-;8802:14;8818:11;8841:26;8894:1;8870:14;:21;:25;:65;;8915:20;8870:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8898:14;8870:65;8841:94;;8969:15;8987:80;9002:11;9015:1;9018:16;9036:8;:15;9053:13;8987:14;:80::i;:::-;8969:98;;9103:16;9122:50;9139:9;9150:10;9162:9;;9122:16;:50::i;:::-;9103:69;;9182:9;:58;;9229:11;9217:23;;;9182:58;;;9203:11;9194:20;;;9182:58;-1:-1:-1;9322:9:6;;9297:22;9309:10;9297:9;:22;:::i;:::-;:34;;;;:::i;:::-;9285:46;;8831:507;;;8645:693;;;;;;;;:::o;11831:720::-;11956:26;;;11929:24;11956:26;;;:13;:26;;;;;;:33;;;;11983:5;;;;11956:33;:::i;:::-;;;;;;;;;;;;;;12085:14;;;;11956:33;;-1:-1:-1;12077:73:6;;;;-1:-1:-1;;;12077:73:6;;15069:2:25;12077:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;12077:73:6;;;;;;;;;12168:13;;-1:-1:-1;;;12168:13:6;;-1:-1:-1;;;;;12168:13:6;12185:10;12168:27;12160:69;;;;-1:-1:-1;;;12160:69:6;;15430:2:25;12160:69:6;;;15412:21:25;15469:2;15449:18;;;15442:30;15508:31;15488:18;;;15481:59;15557:18;;12160:69:6;15228:353:25;12160:69:6;12275:20;;-1:-1:-1;;;;;;12305:26:6;;;12294:1;12275:20;12341:14;;:27;12384:40;;;;;;12405:11;;12418:5;;;;12384:40;:::i;:::-;;;;;;;;12512:32;12525:11;12538:5;;12512:12;:32::i;12679:173::-;12799:26;;;12776:4;12799:26;;;:13;:26;;;;;;:39;;;;12826:11;;;;12799:39;:::i;:::-;;;;;;;;;;;;;;:46;;-1:-1:-1;12679:173:6;;;;;:::o;9447:793::-;9591:26;;;9564:24;9591:26;;;:13;:26;;;;;;:33;;;;9618:5;;;;9591:33;:::i;:::-;;;;;;;;;;;;;;9642:14;;;;9591:33;;-1:-1:-1;9634:73:6;;;;-1:-1:-1;;;9634:73:6;;15069:2:25;9634:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;9634:73:6;14867:356:25;9634:73:6;9744:16;;-1:-1:-1;;;;;9744:16:6;9725:35;;:76;;;;;9787:2;:14;;;9774:8;;9764:19;;;;;;;:::i;:::-;;;;;;;;:37;9725:76;9717:119;;;;-1:-1:-1;;;9717:119:6;;16390:2:25;9717:119:6;;;16372:21:25;16429:2;16409:18;;;16402:30;16468:32;16448:18;;;16441:60;16518:18;;9717:119:6;16188:354:25;9717:119:6;9868:13;;-1:-1:-1;;;;;;9956:26:6;;;;-1:-1:-1;;9992:14:6;;:27;;;10045:25;;;;;9868:13;10045:25;;;;;;:32;;-1:-1:-1;;;9868:13:6;;;-1:-1:-1;;;;;9868:13:6;;10045:32;;10071:5;;;;10045:32;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;10088:77:6;;-1:-1:-1;;;;;10045:32:6;;-1:-1:-1;;;;;;10088:40:6;;;;;:77;;10129:11;;10142:5;;;;10045:32;;10156:8;;;;10088:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10180:53;10195:11;10208:5;;10215;10222:10;10180:53;;;;;;;;;;:::i;:::-;;;;;;;;9554:686;;;9447:793;;;;;:::o;6031:2275::-;2823:22;;;;;:38;:22;908:1;2823:38;2815:87;;;;-1:-1:-1;;;2815:87:6;;17887:2:25;2815:87:6;;;17869:21:25;17926:2;17906:18;;;17899:30;17965:34;17945:18;;;17938:62;-1:-1:-1;;;18016:18:25;;;18009:34;18060:19;;2815:87:6;17685:400:25;2815:87:6;2912:22;:33;;-1:-1:-1;;2912:33:6;;;;;6249:26:::1;::::0;::::1;-1:-1:-1::0;6249:26:6;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6276:5;;;;6249:33:::1;:::i;:::-;;;;;;;;;;;;;6222:60;;6377:12;:25;6390:11;6377:25;;;;;;;;;;;;;;;6403:5;;6377:32;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;6375:34;;6377:32:::1;::::0;6375:34:::1;::::0;-1:-1:-1;;;;;6375:34:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6365:44:6::1;:6;-1:-1:-1::0;;;;;6365:44:6::1;;6357:83;;;::::0;-1:-1:-1;;;6357:83:6;;18506:2:25;6357:83:6::1;::::0;::::1;18488:21:25::0;18545:2;18525:18;;;18518:30;18584:28;18564:18;;;18557:56;18630:18;;6357:83:6::1;18304:350:25::0;6357:83:6::1;6578:14;::::0;::::1;::::0;:28;6574:1726:::1;;6653:26;::::0;::::1;6622:28;6653:26:::0;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6680:5;;;;6653:33:::1;:::i;:::-;;;;;;;;;;;;;6622:64;;6700:27;6730:44;;;;;;;;6744:11;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6757:6;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6765:8;;6730:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6730:44:6;;-1:-1:-1;6980:11:6;;6700:74;;-1:-1:-1;6980:15:6;6976:436:::1;;7051:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7051:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7051:17:6::1;-1:-1:-1::0;;;7051:17:6::1;-1:-1:-1::0;;;;;;7051:17:6;;;-1:-1:-1;;;;;7051:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7061:6;;7051:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;7146:6;7141:105;7162:11:::0;;:15:::1;::::0;7176:1:::1;::::0;7162:15:::1;:::i;:::-;7158:1;:19;7141:105;;;7220:4;7225:1;7220:7;;;;;;;;:::i;:::-;;;;;;;;;;;7206:4;7211:1;7215;7211:5;;;;:::i;:::-;7206:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21;;:11:::1;::::0;;::::1;;:21:::0;;-1:-1:-1;;;;;7206:21:6;;::::1;-1:-1:-1::0;;;;;;7206:21:6;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;7206:21:6;;;;-1:-1:-1;;;7206:21:6;;;::::1;-1:-1:-1::0;;;;;7206:21:6::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7206:21:6;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;:::i;:::-;;;;;7179:3;;;;;:::i;:::-;;;;7141:105;;;;7335:6;7325:4;7330:1;7325:7;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:16;;:7:::1;::::0;;::::1;;:16:::0;;;;::::1;::::0;-1:-1:-1;;;;;7325:16:6::1;-1:-1:-1::0;;;7325:16:6::1;-1:-1:-1::0;;;;;;7325:16:6;;;-1:-1:-1;;;;;7325:16:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:7;;:16:::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;;;;6976:436;;;7380:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7380:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7380:17:6::1;-1:-1:-1::0;;;7380:17:6::1;-1:-1:-1::0;;;;;;7380:17:6;;;-1:-1:-1;;;;;7380:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7390:6;;7380:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;6976:436;6608:814;;6574:1726;;;7432:14;::::0;;;::::1;;;7428:872;;;7498:72;;;;;;;;7519:8;;:15;;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7537:11;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7560:8;;7550:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7498:72;;;7462:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7489:5;;;;7462:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7462:108:6::1;-1:-1:-1::0;;;7462:108:6::1;-1:-1:-1::0;;;;;;7462:108:6;;;-1:-1:-1;;;;;7462:108:6;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;7654:9;;::::1;::::0;;7462:108:::1;7654:9:::0;;7589:75;;::::1;::::0;::::1;::::0;7603:11;;7616:5;;;;7623:11;;7636:6;;7644:8;;;;7462:33;7589:75:::1;:::i;:::-;;;;;;;;7752:14;:22:::0;;-1:-1:-1;;7752:22:6::1;::::0;;7428:872:::1;;;7809:95;::::0;-1:-1:-1;;;7809:95:6;;-1:-1:-1;;;;;7809:41:6;::::1;::::0;::::1;::::0;7856:9;;7809:95:::1;::::0;7867:11;;7880:5;;;;7887:6;;7895:8;;;;7809:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;7805:485;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:72;;;;;;;;8011:8;;:15;;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8029:11;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8052:8;;8042:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7990:72;;;7954:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7981:5;;;;7954:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7954:108:6::1;-1:-1:-1::0;;;7954:108:6::1;-1:-1:-1::0;;;;;;7954:108:6;;;-1:-1:-1;;;;;7954:108:6;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;8085:72:::1;::::0;::::1;::::0;8099:11;;8112:5;;;;8119:11;;8132:6;;8140:8;;;;8150:6;;8085:72:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;8253:14:6::1;:22:::0;;-1:-1:-1;;8253:22:6::1;::::0;;7805:485:::1;-1:-1:-1::0;;2966:22:6;:37;;-1:-1:-1;;2966:37:6;;;;;-1:-1:-1;;;;;;;6031:2275:6:o;4013:2012::-;2593:19;;:35;:19;908:1;2593:35;2585:81;;;;-1:-1:-1;;;2585:81:6;;20136:2:25;2585:81:6;;;20118:21:25;20175:2;20155:18;;;20148:30;20214:34;20194:18;;;20187:62;-1:-1:-1;;;20265:18:25;;;20258:31;20306:19;;2585:81:6;19934:397:25;2585:81:6;2676:19;:30;;-1:-1:-1;;2676:30:6;950:1;2676:30;;;4239:12;;4255:2:::1;4239:18;4231:75;;;::::0;-1:-1:-1;;;4231:75:6;;20538:2:25;4231:75:6::1;::::0;::::1;20520:21:25::0;20577:2;20557:18;;;20550:30;20616:34;20596:18;;;20589:62;-1:-1:-1;;;20667:18:25;;;20660:42;20719:19;;4231:75:6::1;20336:408:25::0;4231:75:6::1;4420:2;4409:14:::0;::::1;4403:21:::0;-1:-1:-1;;;;;4465:25:6;;::::1;4344:15;4465:25:::0;;;::::1;::::0;;;;;;;::::1;4508:24:::0;4500:92:::1;;;::::0;-1:-1:-1;;;4500:92:6;;20951:2:25;4500:92:6::1;::::0;::::1;20933:21:25::0;20990:2;20970:18;;;20963:30;21029:34;21009:18;;;21002:62;21100:25;21080:18;;;21073:53;21143:19;;4500:92:6::1;20749:419:25::0;4500:92:6::1;4635:26;4688:1:::0;4664:14:::1;:21;:25;:65;;4709:20;4664:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:14;4664:65;4635:94;;4740:14;4760:95;4773:8;4783:10;4795:8;;4760:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;4805:34:6;::::1;::::0;::::1;4841:13:::0;4760:12:::1;:95::i;:::-;4739:116;;;4886:9;4873;:22;;4865:76;;;::::0;-1:-1:-1;;;4865:76:6;;21375:2:25;4865:76:6::1;::::0;::::1;21357:21:25::0;21414:2;21394:18;;;21387:30;21453:34;21433:18;;;21426:62;-1:-1:-1;;;21504:18:25;;;21497:39;21553:19;;4865:76:6::1;21173:405:25::0;4865:76:6::1;4969:23;::::0;::::1;4952:12;4969:23:::0;;;:13:::1;:23;::::0;;;;;;;4993:10:::1;4969:35:::0;;;;;;;4967:37;;4952:12;;4967:37:::1;::::0;-1:-1:-1;;;;;4967:37:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;4952:52;;5055:11;5081:9;5069;:21;;;;:::i;:::-;5055:35:::0;-1:-1:-1;5104:10:6;;5100:163:::1;;5131:12;5149:14;-1:-1:-1::0;;;;;5149:19:6::1;5176:6;5149:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5130:57;;;5209:7;5201:51;;;::::0;-1:-1:-1;;;5201:51:6;;21995:2:25;5201:51:6::1;::::0;::::1;21977:21:25::0;22034:2;22014:18;;;22007:30;22073:33;22053:18;;;22046:61;22124:18;;5201:51:6::1;21793:355:25::0;5201:51:6::1;5116:147;5100:163;5420:13;5435:17:::0;5454:29:::1;5487:40;5513:13;5487:25;:40::i;:::-;5417:110:::0;;-1:-1:-1;5417:110:6;-1:-1:-1;5417:110:6;-1:-1:-1;;5541:16:6;;5537:222:::1;;5574:12;5592:13;-1:-1:-1::0;;;;;5592:18:6::1;5618:12;5592:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:62;;;5654:7;5649:100;;5686:48;::::0;5721:12;;-1:-1:-1;;;;;5686:48:6;::::1;::::0;::::1;::::0;;;::::1;5649:100;5559:200;5537:222;5797:37;::::0;-1:-1:-1;;5814:10:6::1;22380:2:25::0;22376:15;;;22372:24;;5797:37:6::1;::::0;::::1;22360::25::0;22431:15;;;22427:24;22413:12;;;22406:46;5769:25:6::1;::::0;22468:12:25;;5797:37:6::1;;;;;;;;;;;;5769:65;;5874:20;5897:8;;5874:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5930:10;-1:-1:-1::0;;;;;5915:41:6::1;;5957:11;;;;;;;;;;;5970:12;5984:7;5993:5;6000:8;6010:7;5915:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2727:19:6;:34;;-1:-1:-1;;2727:34:6;908:1;2727:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4013:2012:6:o;13844:125::-;13925:37;;;;:20;;:37;;;;;:::i;:::-;;13844:125;:::o;8312:157::-;8433:22;;;8408:6;8433:22;;;:12;:22;;;;;;:29;;;;8456:5;;;;8433:29;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;8433:29:6;;-1:-1:-1;8312:157:6;;;;;:::o;918:238:3:-;1114:35;;;-1:-1:-1;;;1114:35:3;;;23376:51:25;23443:11;;;;23436:27;;;;1114:35:3;;;;;;;;;;23479:12:25;;1114:35:3;;;918:238::o;14960:1322:6:-;15192:4;15209:13;15224;15239:17;15262:41;15288:14;15262:25;:41::i;:::-;15208:95;;;;;;;15313:21;15395:6;:11;;15405:1;15395:11;15391:187;;;15430:32;;-1:-1:-1;;;;;15430:32:6;:48;-1:-1:-1;15430:48:6;15422:99;;;;-1:-1:-1;;;15422:99:6;;23704:2:25;15422:99:6;;;23686:21:25;23743:2;23723:18;;;23716:30;23782:34;23762:18;;;23755:62;-1:-1:-1;;;23833:18:25;;;23826:36;23879:19;;15422:99:6;23502:402:25;15422:99:6;15535:32;15555:12;15535:32;;:::i;:::-;;;15391:187;15714:24;;15655:19;;15714:35;;15741:8;;-1:-1:-1;;;15714:24:6;;-1:-1:-1;;;;;15714:24:6;:35;:::i;:::-;15677:16;:33;:73;;;-1:-1:-1;;;15677:33:6;;-1:-1:-1;;;;;15677:33:6;:73;:::i;:::-;15655:95;-1:-1:-1;15760:34:6;15655:95;15760:34;;:::i;:::-;15959:16;:30;15760:34;;-1:-1:-1;15922:14:6;;15993:6;;15940:49;;-1:-1:-1;;;;;15959:30:6;15760:34;15940:49;:::i;:::-;15939:60;;;;:::i;:::-;16178:16;:30;16148:27;;15922:77;;-1:-1:-1;16091:17:6;;16212:6;;-1:-1:-1;;;;;16178:30:6;;;;16112:63;;-1:-1:-1;;;16148:27:6;;;-1:-1:-1;;;;;16148:27:6;;-1:-1:-1;;;16112:33:6;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16111:107;;;;:::i;:::-;-1:-1:-1;;;;;16091:127:6;;-1:-1:-1;16248:27:6;16091:127;16248:12;:27;:::i;:::-;16236:39;;:9;:39;:::i;:::-;16229:46;14960:1322;-1:-1:-1;;;;;;;;;;;;;14960:1322:6:o;14658:296::-;14758:4;14778:9;14774:174;;;-1:-1:-1;14810:17:6;:24;14803:31;;14774:174;14902:26;;14932:5;;14874:24;14888:10;14874:11;:24;:::i;:::-;14873:55;;;;:::i;:::-;14872:65;;;;:::i;:::-;14865:72;;;;14154:498;14268:26;;;14237:28;14268:26;;;:13;:26;;;;;;:33;;;;14295:5;;;;14268:33;:::i;:::-;;;;;;;;;;;;;14237:64;;14407:239;14414:11;;:15;14407:239;;14481:11;;14445:28;;14476:4;;14481:15;;14495:1;;14481:15;:::i;:::-;14476:21;;;;;;;;:::i;:::-;;;;;;;;;;14445:52;;;;;;;;14476:21;;;;;;;14445:52;;-1:-1:-1;;;;;14445:52:6;;;;-1:-1:-1;;;;;;;;14445:52:6;;;;;;;;;;;;;;;;;;14476:21;14445:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14530:7;:18;;;-1:-1:-1;;;;;14511:48:6;;14560:11;14573:5;;14580:7;:13;;;14595:7;:15;;;14511:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14625:4;:10;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;14625:10:6;;;;;;;;;-1:-1:-1;;;;;;14625:10:6;;;;;;;;;;:::i;:::-;;;;;14431:215;14407:239;;2036:715:3;2117:13;2132:10;2144:18;2164:30;2214:14;:21;2239:2;2214:27;:57;;;;2269:2;2245:14;:21;:26;2214:57;2206:91;;;;-1:-1:-1;;;2206:91:3;;25773:2:25;2206:91:3;;;25755:21:25;25812:2;25792:18;;;25785:30;-1:-1:-1;;;25831:18:25;;;25824:51;25892:18;;2206:91:3;25571:345:25;2206:91:3;2366:1;2350:14;2346:22;2340:29;2330:39;;2417:2;2401:14;2397:23;2391:30;2382:39;;2448:6;:11;;2458:1;2448:11;:26;;;;2463:6;:11;;2473:1;2463:11;2448:26;2440:57;;;;-1:-1:-1;;;2440:57:3;;26123:2:25;2440:57:3;;;26105:21:25;26162:2;26142:18;;;26135:30;-1:-1:-1;;;26181:18:25;;;26174:48;26239:18;;2440:57:3;25921:342:25;2440:57:3;2523:1;2515:5;:9;2507:33;;;;-1:-1:-1;;;2507:33:3;;26470:2:25;2507:33:3;;;26452:21:25;26509:2;26489:18;;;26482:30;-1:-1:-1;;;26528:18:25;;;26521:41;26579:18;;2507:33:3;26268:335:25;2507:33:3;2555:6;:11;;2565:1;2555:11;2551:194;;;-1:-1:-1;;2652:2:3;2632:23;;2626:30;2717:2;2697:23;;2691:30;2551:194;2036:715;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;267:159:25;334:20;;394:6;383:18;;373:29;;363:57;;416:1;413;406:12;363:57;267:159;;;:::o;431:184::-;489:6;542:2;530:9;521:7;517:23;513:32;510:52;;;558:1;555;548:12;510:52;581:28;599:9;581:28;:::i;620:131::-;-1:-1:-1;;;;;695:31:25;;685:42;;675:70;;741:1;738;731:12;756:247;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;923:9;910:23;942:31;967:5;942:31;:::i;1201:347::-;1252:8;1262:6;1316:3;1309:4;1301:6;1297:17;1293:27;1283:55;;1334:1;1331;1324:12;1283:55;-1:-1:-1;1357:20:25;;-1:-1:-1;;;;;1389:30:25;;1386:50;;;1432:1;1429;1422:12;1386:50;1469:4;1461:6;1457:17;1445:29;;1521:3;1514:4;1505:6;1497;1493:19;1489:30;1486:39;1483:59;;;1538:1;1535;1528:12;1483:59;1201:347;;;;;:::o;1553:481::-;1631:6;1639;1647;1700:2;1688:9;1679:7;1675:23;1671:32;1668:52;;;1716:1;1713;1706:12;1668:52;1739:28;1757:9;1739:28;:::i;:::-;1729:38;;1818:2;1807:9;1803:18;1790:32;-1:-1:-1;;;;;1837:6:25;1834:30;1831:50;;;1877:1;1874;1867:12;1831:50;1916:58;1966:7;1957:6;1946:9;1942:22;1916:58;:::i;:::-;1553:481;;1993:8;;-1:-1:-1;1890:84:25;;-1:-1:-1;;;;1553:481:25:o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:718;2405:5;2458:3;2451:4;2443:6;2439:17;2435:27;2425:55;;2476:1;2473;2466:12;2425:55;2512:6;2499:20;-1:-1:-1;;;;;2575:2:25;2571;2568:10;2565:36;;;2581:18;;:::i;:::-;2656:2;2650:9;2624:2;2710:13;;-1:-1:-1;;2706:22:25;;;2730:2;2702:31;2698:40;2686:53;;;2754:18;;;2774:22;;;2751:46;2748:72;;;2800:18;;:::i;:::-;2840:10;2836:2;2829:22;2875:2;2867:6;2860:18;2921:3;2914:4;2909:2;2901:6;2897:15;2893:26;2890:35;2887:55;;;2938:1;2935;2928:12;2887:55;3002:2;2995:4;2987:6;2983:17;2976:4;2968:6;2964:17;2951:54;3049:1;3042:4;3037:2;3029:6;3025:15;3021:26;3014:37;3069:6;3060:15;;;;;;2363:718;;;;:::o;3086:460::-;3171:6;3179;3187;3240:2;3228:9;3219:7;3215:23;3211:32;3208:52;;;3256:1;3253;3246:12;3208:52;3279:28;3297:9;3279:28;:::i;:::-;3269:38;;3358:2;3347:9;3343:18;3330:32;-1:-1:-1;;;;;3377:6:25;3374:30;3371:50;;;3417:1;3414;3407:12;3371:50;3440:49;3481:7;3472:6;3461:9;3457:22;3440:49;:::i;:::-;3430:59;;;3536:2;3525:9;3521:18;3508:32;3498:42;;3086:460;;;;;:::o;3551:471::-;3592:3;3630:5;3624:12;3657:6;3652:3;3645:19;3682:1;3692:162;3706:6;3703:1;3700:13;3692:162;;;3768:4;3824:13;;;3820:22;;3814:29;3796:11;;;3792:20;;3785:59;3721:12;3692:162;;;3872:6;3869:1;3866:13;3863:87;;;3938:1;3931:4;3922:6;3917:3;3913:16;3909:27;3902:38;3863:87;-1:-1:-1;4004:2:25;3983:15;-1:-1:-1;;3979:29:25;3970:39;;;;4011:4;3966:50;;3551:471;-1:-1:-1;;3551:471:25:o;4027:408::-;-1:-1:-1;;;;;4228:32:25;;4210:51;;-1:-1:-1;;;;;4297:31:25;;4292:2;4277:18;;4270:59;4365:2;4360;4345:18;;4338:30;;;-1:-1:-1;;4385:44:25;;4410:18;;4402:6;4385:44;:::i;:::-;4377:52;4027:408;-1:-1:-1;;;;;4027:408:25:o;4440:248::-;4508:6;4516;4569:2;4557:9;4548:7;4544:23;4540:32;4537:52;;;4585:1;4582;4575:12;4537:52;-1:-1:-1;;4608:23:25;;;4678:2;4663:18;;;4650:32;;-1:-1:-1;4440:248:25:o;4693:217::-;4840:2;4829:9;4822:21;4803:4;4860:44;4900:2;4889:9;4885:18;4877:6;4860:44;:::i;4915:188::-;4983:20;;-1:-1:-1;;;;;5032:46:25;;5022:57;;5012:85;;5093:1;5090;5083:12;5108:171;5175:20;;-1:-1:-1;;;;;5224:30:25;;5214:41;;5204:69;;5269:1;5266;5259:12;5284:480;5377:6;5385;5393;5401;5409;5462:3;5450:9;5441:7;5437:23;5433:33;5430:53;;;5479:1;5476;5469:12;5430:53;5502:29;5521:9;5502:29;:::i;:::-;5492:39;;5550:38;5584:2;5573:9;5569:18;5550:38;:::i;:::-;5540:48;;5607:38;5641:2;5630:9;5626:18;5607:38;:::i;:::-;5597:48;;5664:37;5697:2;5686:9;5682:18;5664:37;:::i;:::-;5654:47;;5720:38;5753:3;5742:9;5738:19;5720:38;:::i;:::-;5710:48;;5284:480;;;;;;;;:::o;5769:917::-;5878:6;5886;5894;5902;5910;5963:3;5951:9;5942:7;5938:23;5934:33;5931:53;;;5980:1;5977;5970:12;5931:53;6003:28;6021:9;6003:28;:::i;:::-;5993:38;;6081:2;6070:9;6066:18;6053:32;6094:31;6119:5;6094:31;:::i;:::-;6144:5;-1:-1:-1;6200:2:25;6185:18;;6172:32;-1:-1:-1;;;;;6253:14:25;;;6250:34;;;6280:1;6277;6270:12;6250:34;6303:49;6344:7;6335:6;6324:9;6320:22;6303:49;:::i;:::-;6293:59;;6404:2;6393:9;6389:18;6376:32;6361:47;;6453:7;6446:15;6439:23;6430:7;6427:36;6417:64;;6477:1;6474;6467:12;6417:64;6500:7;;-1:-1:-1;6560:3:25;6545:19;;6532:33;;6577:16;;;6574:36;;;6606:1;6603;6596:12;6574:36;;6629:51;6672:7;6661:8;6650:9;6646:24;6629:51;:::i;:::-;6619:61;;;5769:917;;;;;;;;:::o;6899:392::-;6975:6;6983;7036:2;7024:9;7015:7;7011:23;7007:32;7004:52;;;7052:1;7049;7042:12;7004:52;7075:28;7093:9;7075:28;:::i;:::-;7065:38;;7154:2;7143:9;7139:18;7126:32;-1:-1:-1;;;;;7173:6:25;7170:30;7167:50;;;7213:1;7210;7203:12;7167:50;7236:49;7277:7;7268:6;7257:9;7253:22;7236:49;:::i;:::-;7226:59;;;6899:392;;;;;:::o;7669:319::-;7736:6;7744;7797:2;7785:9;7776:7;7772:23;7768:32;7765:52;;;7813:1;7810;7803:12;7765:52;7836:28;7854:9;7836:28;:::i;:::-;7826:38;;7914:2;7903:9;7899:18;7886:32;7927:31;7952:5;7927:31;:::i;:::-;7977:5;7967:15;;;7669:319;;;;;:::o;8979:789::-;9077:6;9085;9093;9101;9109;9162:2;9150:9;9141:7;9137:23;9133:32;9130:52;;;9178:1;9175;9168:12;9130:52;9201:28;9219:9;9201:28;:::i;:::-;9191:38;;9280:2;9269:9;9265:18;9252:32;-1:-1:-1;;;;;9344:2:25;9336:6;9333:14;9330:34;;;9360:1;9357;9350:12;9330:34;9399:58;9449:7;9440:6;9429:9;9425:22;9399:58;:::i;:::-;9476:8;;-1:-1:-1;9373:84:25;-1:-1:-1;9564:2:25;9549:18;;9536:32;;-1:-1:-1;9580:16:25;;;9577:36;;;9609:1;9606;9599:12;9577:36;;9648:60;9700:7;9689:8;9678:9;9674:24;9648:60;:::i;:::-;8979:789;;;;-1:-1:-1;8979:789:25;;-1:-1:-1;9727:8:25;;9622:86;8979:789;-1:-1:-1;;;8979:789:25:o;9773:180::-;9832:6;9885:2;9873:9;9864:7;9860:23;9856:32;9853:52;;;9901:1;9898;9891:12;9853:52;-1:-1:-1;9924:23:25;;9773:180;-1:-1:-1;9773:180:25:o;9958:388::-;10026:6;10034;10087:2;10075:9;10066:7;10062:23;10058:32;10055:52;;;10103:1;10100;10093:12;10055:52;10142:9;10129:23;10161:31;10186:5;10161:31;:::i;10351:1067::-;10475:6;10483;10491;10499;10507;10515;10523;10531;10584:3;10572:9;10563:7;10559:23;10555:33;10552:53;;;10601:1;10598;10591:12;10552:53;10624:28;10642:9;10624:28;:::i;:::-;10614:38;;10703:2;10692:9;10688:18;10675:32;-1:-1:-1;;;;;10767:2:25;10759:6;10756:14;10753:34;;;10783:1;10780;10773:12;10753:34;10822:58;10872:7;10863:6;10852:9;10848:22;10822:58;:::i;:::-;10899:8;;-1:-1:-1;10796:84:25;-1:-1:-1;10984:2:25;10969:18;;10956:32;;-1:-1:-1;10997:31:25;10956:32;10997:31;:::i;:::-;11047:5;11037:15;;11071:37;11104:2;11093:9;11089:18;11071:37;:::i;:::-;11061:47;;11155:3;11144:9;11140:19;11127:33;11117:43;;11213:3;11202:9;11198:19;11185:33;11169:49;;11243:2;11233:8;11230:16;11227:36;;;11259:1;11256;11249:12;11227:36;;11298:60;11350:7;11339:8;11328:9;11324:24;11298:60;:::i;:::-;10351:1067;;;;-1:-1:-1;10351:1067:25;;-1:-1:-1;10351:1067:25;;;;;;11377:8;-1:-1:-1;;;10351:1067:25:o;11423:1185::-;11563:6;11571;11579;11587;11595;11603;11611;11664:3;11652:9;11643:7;11639:23;11635:33;11632:53;;;11681:1;11678;11671:12;11632:53;11704:28;11722:9;11704:28;:::i;:::-;11694:38;;11783:2;11772:9;11768:18;11755:32;-1:-1:-1;;;;;11847:2:25;11839:6;11836:14;11833:34;;;11863:1;11860;11853:12;11833:34;11886:49;11927:7;11918:6;11907:9;11903:22;11886:49;:::i;:::-;11876:59;;11988:2;11977:9;11973:18;11960:32;11944:48;;12017:2;12007:8;12004:16;12001:36;;;12033:1;12030;12023:12;12001:36;12072:60;12124:7;12113:8;12102:9;12098:24;12072:60;:::i;:::-;12151:8;;-1:-1:-1;12046:86:25;-1:-1:-1;12236:2:25;12221:18;;12208:32;;-1:-1:-1;12249:31:25;12208:32;12249:31;:::i;:::-;12299:5;;-1:-1:-1;12356:3:25;12341:19;;12328:33;;12370;12328;12370;:::i;:::-;12422:7;;-1:-1:-1;12482:3:25;12467:19;;12454:33;;12499:16;;;12496:36;;;12528:1;12525;12518:12;12496:36;;12551:51;12594:7;12583:8;12572:9;12568:24;12551:51;:::i;:::-;12541:61;;;11423:1185;;;;;;;;;;:::o;12613:533::-;12706:6;12714;12722;12730;12783:3;12771:9;12762:7;12758:23;12754:33;12751:53;;;12800:1;12797;12790:12;12751:53;12823:28;12841:9;12823:28;:::i;:::-;12813:38;;12870:37;12903:2;12892:9;12888:18;12870:37;:::i;:::-;12860:47;;12954:2;12943:9;12939:18;12926:32;12916:42;;13009:2;12998:9;12994:18;12981:32;-1:-1:-1;;;;;13028:6:25;13025:30;13022:50;;;13068:1;13065;13058:12;13022:50;13091:49;13132:7;13123:6;13112:9;13108:22;13091:49;:::i;:::-;13081:59;;;12613:533;;;;;;;:::o;13151:460::-;13235:6;13243;13251;13259;13312:3;13300:9;13291:7;13287:23;13283:33;13280:53;;;13329:1;13326;13319:12;13280:53;13352:28;13370:9;13352:28;:::i;:::-;13342:38;;13399:37;13432:2;13421:9;13417:18;13399:37;:::i;:::-;13389:47;;13486:2;13475:9;13471:18;13458:32;13499:31;13524:5;13499:31;:::i;:::-;13151:460;;;;-1:-1:-1;13549:5:25;;13601:2;13586:18;13573:32;;-1:-1:-1;;13151:460:25:o;13616:320::-;13684:6;13737:2;13725:9;13716:7;13712:23;13708:32;13705:52;;;13753:1;13750;13743:12;13705:52;13793:9;13780:23;-1:-1:-1;;;;;13818:6:25;13815:30;13812:50;;;13858:1;13855;13848:12;13812:50;13881:49;13922:7;13913:6;13902:9;13898:22;13881:49;:::i;:::-;13871:59;13616:320;-1:-1:-1;;;;13616:320:25:o;13941:271::-;14124:6;14116;14111:3;14098:33;14080:3;14150:16;;14175:13;;;14150:16;13941:271;-1:-1:-1;13941:271:25:o;14217:380::-;14296:1;14292:12;;;;14339;;;14360:61;;14414:4;14406:6;14402:17;14392:27;;14360:61;14467:2;14459:6;14456:14;14436:18;14433:38;14430:161;;;14513:10;14508:3;14504:20;14501:1;14494:31;14548:4;14545:1;14538:15;14576:4;14573:1;14566:15;14430:161;;14217:380;;;:::o;14602:127::-;14663:10;14658:3;14654:20;14651:1;14644:31;14694:4;14691:1;14684:15;14718:4;14715:1;14708:15;14734:128;14774:3;14805:1;14801:6;14798:1;14795:13;14792:39;;;14811:18;;:::i;:::-;-1:-1:-1;14847:9:25;;14734:128::o;15586:266::-;15674:6;15669:3;15662:19;15726:6;15719:5;15712:4;15707:3;15703:14;15690:43;-1:-1:-1;15778:1:25;15753:16;;;15771:4;15749:27;;;15742:38;;;;15834:2;15813:15;;;-1:-1:-1;;15809:29:25;15800:39;;;15796:50;;15586:266::o;15857:326::-;16052:6;16044;16040:19;16029:9;16022:38;16096:2;16091;16080:9;16076:18;16069:30;16003:4;16116:61;16173:2;16162:9;16158:18;16150:6;16142;16116:61;:::i;16547:609::-;16824:6;16816;16812:19;16801:9;16794:38;16868:3;16863:2;16852:9;16848:18;16841:31;16775:4;16895:62;16952:3;16941:9;16937:19;16929:6;16921;16895:62;:::i;:::-;-1:-1:-1;;;;;16997:6:25;16993:31;16988:2;16977:9;16973:18;16966:59;17073:9;17065:6;17061:22;17056:2;17045:9;17041:18;17034:50;17101:49;17143:6;17135;17127;17101:49;:::i;:::-;17093:57;16547:609;-1:-1:-1;;;;;;;;;16547:609:25:o;17161:519::-;17410:6;17402;17398:19;17387:9;17380:38;17454:3;17449:2;17438:9;17434:18;17427:31;17361:4;17475:62;17532:3;17521:9;17517:19;17509:6;17501;17475:62;:::i;:::-;-1:-1:-1;;;;;17573:31:25;;;;17568:2;17553:18;;17546:59;-1:-1:-1;;;;;;17641:32:25;;;;17636:2;17621:18;;;17614:60;17467:70;17161:519;-1:-1:-1;;;17161:519:25:o;18090:209::-;18128:3;-1:-1:-1;;;;;18209:2:25;18202:5;18198:14;18236:2;18227:7;18224:15;18221:41;;;18242:18;;:::i;:::-;18291:1;18278:15;;18090:209;-1:-1:-1;;;18090:209:25:o;18659:125::-;18699:4;18727:1;18724;18721:8;18718:34;;;18732:18;;:::i;:::-;-1:-1:-1;18769:9:25;;18659:125::o;18789:127::-;18850:10;18845:3;18841:20;18838:1;18831:31;18881:4;18878:1;18871:15;18905:4;18902:1;18895:15;18921:135;18960:3;-1:-1:-1;;18981:17:25;;18978:43;;;19001:18;;:::i;:::-;-1:-1:-1;19048:1:25;19037:13;;18921:135::o;19061:868::-;19412:6;19404;19400:19;19389:9;19382:38;19456:3;19451:2;19440:9;19436:18;19429:31;19363:4;19483:62;19540:3;19529:9;19525:19;19517:6;19509;19483:62;:::i;:::-;-1:-1:-1;;;;;19581:32:25;;19576:2;19561:18;;19554:60;-1:-1:-1;;;;;19650:31:25;;19645:2;19630:18;;19623:59;19719:22;;;19713:3;19698:19;;19691:51;19765:49;19723:6;19799;19791;19765:49;:::i;:::-;19751:63;;19863:9;19855:6;19851:22;19845:3;19834:9;19830:19;19823:51;19891:32;19916:6;19908;19891:32;:::i;:::-;19883:40;19061:868;-1:-1:-1;;;;;;;;;;;19061:868:25:o;22491:725::-;22804:6;22796;22792:19;22781:9;22774:38;22848:3;22843:2;22832:9;22828:18;22821:31;22755:4;22875:45;22915:3;22904:9;22900:19;22892:6;22875:45;:::i;:::-;-1:-1:-1;;;;;22956:32:25;;22951:2;22936:18;;22929:60;-1:-1:-1;;;;;23025:31:25;;23020:2;23005:18;;22998:59;23088:3;23073:19;;23066:35;;;23138:22;;;22976:3;23117:19;;23110:51;23178:32;23142:6;23195;23178:32;:::i;23909:168::-;23949:7;24015:1;24011;24007:6;24003:14;24000:1;23997:21;23992:1;23985:9;23978:17;23974:45;23971:71;;;24022:18;;:::i;:::-;-1:-1:-1;24062:9:25;;23909:168::o;24082:127::-;24143:10;24138:3;24134:20;24131:1;24124:31;24174:4;24171:1;24164:15;24198:4;24195:1;24188:15;24214:120;24254:1;24280;24270:35;;24285:18;;:::i;:::-;-1:-1:-1;24319:9:25;;24214:120::o;24339:287::-;24379:7;-1:-1:-1;;;;;24472:2:25;24469:1;24465:10;24502:2;24499:1;24495:10;24558:3;24554:2;24550:12;24545:3;24542:21;24535:3;24528:11;24521:19;24517:47;24514:73;;;24567:18;;:::i;:::-;24607:13;;24339:287;-1:-1:-1;;;;24339:287:25:o;24631:216::-;24671:1;-1:-1:-1;;;;;24758:2:25;24755:1;24751:10;24780:3;24770:37;;24787:18;;:::i;:::-;24825:10;;24821:20;;;;;24631:216;-1:-1:-1;;24631:216:25:o;24852:582::-;25119:6;25111;25107:19;25096:9;25089:38;25163:3;25158:2;25147:9;25143:18;25136:31;25070:4;25190:62;25247:3;25236:9;25232:19;25224:6;25216;25190:62;:::i;:::-;-1:-1:-1;;;;;25292:6:25;25288:31;25283:2;25272:9;25268:18;25261:59;25368:9;25360:6;25356:22;25351:2;25340:9;25336:18;25329:50;25396:32;25421:6;25413;25396:32;:::i;:::-;25388:40;24852:582;-1:-1:-1;;;;;;;;24852:582:25:o;25439:127::-;25500:10;25495:3;25491:20;25488:1;25481:31;25531:4;25528:1;25521:15;25555:4;25552:1;25545:15"},"gasEstimates":{"creation":{"codeDepositCost":"2369200","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24445","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2353","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"2842","getReceiveLibraryAddress(address)":"414","getReceiveVersion(address)":"469","getSendLibraryAddress(address)":"437","getSendVersion(address)":"449","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2369","isSendingPayload()":"2357","lzEndpointLookup(address)":"2688","mockChainId()":"2446","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2389","oracleFee()":"2383","outboundNonce(uint16,address)":"2831","protocolFeeConfig()":"4464","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"4807","retryPayload(uint16,bytes,bytes)":"infinite","send(uint16,bytes,bytes,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setDefaultAdapterParams(bytes)":"infinite","setDestLzEndpoint(address,address)":"infinite","setOracleFee(uint256)":"22357","setProtocolFee(uint256,uint256)":"44537","setReceiveVersion(uint16)":"326","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"349","storedPayload(uint16,bytes)":"infinite"},"internal":{"_clearMsgQue(uint16,bytes calldata)":"infinite","_getProtocolFees(bool,uint256,uint256)":"2392","_getRelayerFee(uint16,uint16,address,uint256,bytes memory)":"infinite"}},"methodIdentifiers":{"blockNextMsg()":"d23104f1","defaultAdapterParams()":"272bd384","estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getLengthOfQueue(uint16,bytes)":"7f6df8e6","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","inboundNonce(uint16,bytes)":"9924d33b","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","lzEndpointLookup(address)":"c81b383a","mockChainId()":"db14f305","msgsToDeliver(uint16,bytes,uint256)":"12a9ee6b","nextMsgBlocked()":"3e0dd83e","oracleFee()":"f9cd3ceb","outboundNonce(uint16,address)":"b2086499","protocolFeeConfig()":"07d3277f","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","relayerFeeConfig()":"907c5e7e","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setDefaultAdapterParams(bytes)":"fbba623b","setDestLzEndpoint(address,address)":"c08f15a1","setOracleFee(uint256)":"b6d9ef60","setProtocolFee(uint256,uint256)":"240de277","setReceiveVersion(uint16)":"10ddb137","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"2c365e25","setSendVersion(uint16)":"07e0db17","storedPayload(uint16,bytes)":"76a386dc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"}],\"name\":\"PayloadCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PayloadStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"UaForceResumeReceive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"ValueTransferFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockNextMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdapterParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getLengthOfQueue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lzEndpointLookup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"msgsToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextMsgBlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeBP\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerFeeConfig\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasPerByte\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"setDefaultAdapterParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpointAddr\",\"type\":\"address\"}],\"name\":\"setDestLzEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_oracleFee\",\"type\":\"uint256\"}],\"name\":\"setOracleFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nativeBP\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"_baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_gasPerByte\",\"type\":\"uint64\"}],\"name\":\"setRelayerPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"storedPayload\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"payloadLength\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":\"LZEndpointMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n uint8 internal constant _NOT_ENTERED = 1;\\n uint8 internal constant _ENTERED = 2;\\n\\n mapping(address => address) public lzEndpointLookup;\\n\\n uint16 public mockChainId;\\n bool public nextMsgBlocked;\\n\\n // fee config\\n RelayerFeeConfig public relayerFeeConfig;\\n ProtocolFeeConfig public protocolFeeConfig;\\n uint public oracleFee;\\n bytes public defaultAdapterParams;\\n\\n // path = remote addrss + local address\\n // inboundNonce = [srcChainId][path].\\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n //todo: this is a hack\\n // outboundNonce = [dstChainId][srcAddress]\\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n // // outboundNonce = [dstChainId][path].\\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n // storedPayload = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n // msgToDeliver = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n // reentrancy guard\\n uint8 internal _send_entered_state = 1;\\n uint8 internal _receive_entered_state = 1;\\n\\n struct ProtocolFeeConfig {\\n uint zroFee;\\n uint nativeBP;\\n }\\n\\n struct RelayerFeeConfig {\\n uint128 dstPriceRatio; // 10^10\\n uint128 dstGasPriceInWei;\\n uint128 dstNativeAmtCap;\\n uint64 baseGas;\\n uint64 gasPerByte;\\n }\\n\\n struct StoredPayload {\\n uint64 payloadLength;\\n address dstAddress;\\n bytes32 payloadHash;\\n }\\n\\n struct QueuedPayload {\\n address dstAddress;\\n uint64 nonce;\\n bytes payload;\\n }\\n\\n modifier sendNonReentrant() {\\n require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n _send_entered_state = _ENTERED;\\n _;\\n _send_entered_state = _NOT_ENTERED;\\n }\\n\\n modifier receiveNonReentrant() {\\n require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n _receive_entered_state = _ENTERED;\\n _;\\n _receive_entered_state = _NOT_ENTERED;\\n }\\n\\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n constructor(uint16 _chainId) {\\n mockChainId = _chainId;\\n\\n // init config\\n relayerFeeConfig = RelayerFeeConfig({\\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n dstGasPriceInWei: 1e10,\\n dstNativeAmtCap: 1e19,\\n baseGas: 100,\\n gasPerByte: 1\\n });\\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n oracleFee = 1e16;\\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n }\\n\\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\\n require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n address dstAddr;\\n assembly {\\n dstAddr := mload(add(_path, 20))\\n }\\n\\n address lzEndpoint = lzEndpointLookup[dstAddr];\\n require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n // not handle zro token\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n // refund if they send too much\\n uint amount = msg.value - nativeFee;\\n if (amount > 0) {\\n (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n require(success, \\\"LayerZeroMock: failed to refund\\\");\\n }\\n\\n // Mock the process of receiving msg on dst chain\\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n if (dstNativeAmt > 0) {\\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n if (!success) {\\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n }\\n }\\n\\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n bytes memory payload = _payload;\\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n }\\n\\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n // assert and increment the nonce. no message shuffling\\n require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n if (sp.payloadHash != bytes32(0)) {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n // shift all the msgs over so we can treat this like a fifo via array.pop()\\n if (msgs.length > 0) {\\n // extend the array\\n msgs.push(newMsg);\\n\\n // shift all the indexes up for pop()\\n for (uint i = 0; i < msgs.length - 1; i++) {\\n msgs[i + 1] = msgs[i];\\n }\\n\\n // put the newMsg at the bottom of the stack\\n msgs[0] = newMsg;\\n } else {\\n msgs.push(newMsg);\\n }\\n } else if (nextMsgBlocked) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n } else {\\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n }\\n }\\n }\\n\\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n return inboundNonce[_chainID][_path];\\n }\\n\\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n return outboundNonce[_chainID][_srcAddress];\\n }\\n\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n // Relayer Fee\\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n // LayerZero Fee\\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n // return the sum of fees\\n nativeFee = nativeFee + relayerFee + oracleFee;\\n }\\n\\n function getChainId() external view override returns (uint16) {\\n return mockChainId;\\n }\\n\\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n address dstAddress = sp.dstAddress;\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n }\\n\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n return sp.payloadHash != bytes32(0);\\n }\\n\\n function getSendLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function getReceiveLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function isSendingPayload() external view override returns (bool) {\\n return _send_entered_state == _ENTERED;\\n }\\n\\n function isReceivingPayload() external view override returns (bool) {\\n return _receive_entered_state == _ENTERED;\\n }\\n\\n function getConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n address, /*_ua*/\\n uint /*_configType*/\\n ) external pure override returns (bytes memory) {\\n return \\\"\\\";\\n }\\n\\n function getSendVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function getReceiveVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function setConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n uint, /*_configType*/\\n bytes memory /*_config*/\\n ) external override {}\\n\\n function setSendVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function setReceiveVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n // revert if no messages are cached. safeguard malicious UA behaviour\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n emit UaForceResumeReceive(_srcChainId, _path);\\n\\n // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n _clearMsgQue(_srcChainId, _path);\\n }\\n\\n // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n return msgsToDeliver[_srcChainId][_srcAddress].length;\\n }\\n\\n // used to simulate messages received get stored as a payload\\n function blockNextMsg() external {\\n nextMsgBlocked = true;\\n }\\n\\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n lzEndpointLookup[destAddr] = lzEndpointAddr;\\n }\\n\\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n relayerFeeConfig.baseGas = _baseGas;\\n relayerFeeConfig.gasPerByte = _gasPerByte;\\n }\\n\\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n protocolFeeConfig.zroFee = _zroFee;\\n protocolFeeConfig.nativeBP = _nativeBP;\\n }\\n\\n function setOracleFee(uint _oracleFee) external {\\n oracleFee = _oracleFee;\\n }\\n\\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n defaultAdapterParams = _adapterParams;\\n }\\n\\n // --------------------- Internal Functions ---------------------\\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n while (msgs.length > 0) {\\n QueuedPayload memory payload = msgs[msgs.length - 1];\\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n msgs.pop();\\n }\\n }\\n\\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\\n if (_payInZro) {\\n return protocolFeeConfig.zroFee;\\n } else {\\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n }\\n }\\n\\n function _getRelayerFee(\\n uint16, /* _dstChainId */\\n uint16, /* _outboundProofType */\\n address, /* _userApplication */\\n uint _payloadSize,\\n bytes memory _adapterParams\\n ) internal view returns (uint) {\\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n if (txType == 2) {\\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n totalRemoteToken += dstNativeAmt;\\n }\\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n totalRemoteToken += remoteGasTotal;\\n\\n // tokenConversionRate = dstPrice / localPrice\\n // basePrice = totalRemoteToken * tokenConversionRate\\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n return basePrice + _payloadSize * pricePerByte;\\n }\\n}\\n\",\"keccak256\":\"0xed3c937bc98dda9c5c4e05379b87629540e8fa628d0e62c4e3d01e25b47bbedf\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1154,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"lzEndpointLookup","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"},{"astId":1156,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"mockChainId","offset":0,"slot":"1","type":"t_uint16"},{"astId":1158,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nextMsgBlocked","offset":2,"slot":"1","type":"t_bool"},{"astId":1161,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"relayerFeeConfig","offset":0,"slot":"2","type":"t_struct(RelayerFeeConfig)1217_storage"},{"astId":1164,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"protocolFeeConfig","offset":0,"slot":"4","type":"t_struct(ProtocolFeeConfig)1206_storage"},{"astId":1166,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"oracleFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":1168,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"defaultAdapterParams","offset":0,"slot":"7","type":"t_bytes_storage"},{"astId":1174,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"inboundNonce","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))"},{"astId":1180,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"outboundNonce","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_mapping(t_address,t_uint64))"},{"astId":1187,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"storedPayload","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))"},{"astId":1195,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"msgsToDeliver","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))"},{"astId":1198,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_send_entered_state","offset":0,"slot":"12","type":"t_uint8"},{"astId":1201,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_receive_entered_state","offset":1,"slot":"12","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage":{"base":"t_struct(QueuedPayload)1231_storage","encoding":"dynamic_array","label":"struct LZEndpointMock.QueuedPayload[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_uint64)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])","numberOfBytes":"32","value":"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage"},"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.StoredPayload)","numberOfBytes":"32","value":"t_struct(StoredPayload)1224_storage"},"t_mapping(t_bytes_memory_ptr,t_uint64)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_uint16,t_mapping(t_address,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => uint64))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint64)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => uint64))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_uint64)"},"t_struct(ProtocolFeeConfig)1206_storage":{"encoding":"inplace","label":"struct LZEndpointMock.ProtocolFeeConfig","members":[{"astId":1203,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"zroFee","offset":0,"slot":"0","type":"t_uint256"},{"astId":1205,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nativeBP","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_struct(QueuedPayload)1231_storage":{"encoding":"inplace","label":"struct LZEndpointMock.QueuedPayload","members":[{"astId":1226,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":0,"slot":"0","type":"t_address"},{"astId":1228,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nonce","offset":20,"slot":"0","type":"t_uint64"},{"astId":1230,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"numberOfBytes":"64"},"t_struct(RelayerFeeConfig)1217_storage":{"encoding":"inplace","label":"struct LZEndpointMock.RelayerFeeConfig","members":[{"astId":1208,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstPriceRatio","offset":0,"slot":"0","type":"t_uint128"},{"astId":1210,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstGasPriceInWei","offset":16,"slot":"0","type":"t_uint128"},{"astId":1212,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstNativeAmtCap","offset":0,"slot":"1","type":"t_uint128"},{"astId":1214,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"baseGas","offset":16,"slot":"1","type":"t_uint64"},{"astId":1216,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"gasPerByte","offset":24,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_struct(StoredPayload)1224_storage":{"encoding":"inplace","label":"struct LZEndpointMock.StoredPayload","members":[{"astId":1219,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadLength","offset":0,"slot":"0","type":"t_uint64"},{"astId":1221,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":8,"slot":"0","type":"t_address"},{"astId":1223,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadHash","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"BytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c01b37cbd2e9bd6c98247907be889743b8c8fcb7c274624d7a76310c6b6bd0164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 ADD 0xB3 PUSH29 0xBD2E9BD6C98247907BE889743B8C8FCB7C274624D7A76310C6B6BD0164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"370:18108:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;370:18108:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c01b37cbd2e9bd6c98247907be889743b8c8fcb7c274624d7a76310c6b6bd0164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 ADD 0xB3 PUSH29 0xBD2E9BD6C98247907BE889743B8C8FCB7C274624D7A76310C6B6BD0164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"370:18108:7:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"concat(bytes memory,bytes memory)":"infinite","concatStorage(bytes storage pointer,bytes memory)":"infinite","equal(bytes memory,bytes memory)":"infinite","equalStorage(bytes storage pointer,bytes memory)":"infinite","slice(bytes memory,uint256,uint256)":"infinite","toAddress(bytes memory,uint256)":"infinite","toBytes32(bytes memory,uint256)":"infinite","toUint128(bytes memory,uint256)":"infinite","toUint16(bytes memory,uint256)":"infinite","toUint256(bytes memory,uint256)":"infinite","toUint32(bytes memory,uint256)":"infinite","toUint64(bytes memory,uint256)":"infinite","toUint8(bytes memory,uint256)":"infinite","toUint96(bytes memory,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"ExcessivelySafeCall":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e5af05bee3f9c673b3fd06a9db29ba2b01b924e99a9396efe99d79814b3753c164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 0xAF SDIV 0xBE 0xE3 0xF9 0xC6 PUSH20 0xB3FD06A9DB29BA2B01B924E99A9396EFE99D7981 0x4B CALLDATACOPY MSTORE8 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"72:5333:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72:5333:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e5af05bee3f9c673b3fd06a9db29ba2b01b924e99a9396efe99d79814b3753c164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 0xAF SDIV 0xBE 0xE3 0xF9 0xC6 PUSH20 0xB3FD06A9DB29BA2B01B924E99A9396EFE99D7981 0x4B CALLDATACOPY MSTORE8 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"72:5333:8:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"excessivelySafeCall(address,uint256,uint16,bytes memory)":"infinite","excessivelySafeStaticCall(address,uint256,uint16,bytes memory)":"infinite","swapSelector(bytes4,bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":\"ExcessivelySafeCall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.","kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":292,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":475,"id":null,"parameterSlots":2,"returnSlots":2},"extract_byte_array_length":{"entryPoint":581,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":270,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1985:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1658:325:25","statements":[{"nodeType":"YulAssignment","src":"1668:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1682:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1685:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1668:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1699:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1729:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"1735:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1725:3:25"},"nodeType":"YulFunctionCall","src":"1725:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1703:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1776:31:25","statements":[{"nodeType":"YulAssignment","src":"1778:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1792:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1800:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1788:3:25"},"nodeType":"YulFunctionCall","src":"1788:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1778:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1756:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:25"},"nodeType":"YulFunctionCall","src":"1749:26:25"},"nodeType":"YulIf","src":"1746:61:25"},{"body":{"nodeType":"YulBlock","src":"1866:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1887:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1894:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1899:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1890:3:25"},"nodeType":"YulFunctionCall","src":"1890:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:25"},"nodeType":"YulFunctionCall","src":"1880:31:25"},"nodeType":"YulExpressionStatement","src":"1880:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1934:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1924:6:25"},"nodeType":"YulFunctionCall","src":"1924:15:25"},"nodeType":"YulExpressionStatement","src":"1924:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1962:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1952:6:25"},"nodeType":"YulFunctionCall","src":"1952:15:25"},"nodeType":"YulExpressionStatement","src":"1952:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1822:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1845:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1842:2:25"},"nodeType":"YulFunctionCall","src":"1842:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1819:2:25"},"nodeType":"YulFunctionCall","src":"1819:38:25"},"nodeType":"YulIf","src":"1816:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1638:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1603:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000aef38038062000aef8339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000282565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b602082108114156200027c57634e487b7160e01b600052602260045260246000fd5b50919050565b61085d80620002926000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069a565b60405180910390f35b6100df6100da36600461070b565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610735565b61024a565b604051601281526020016100c3565b6100df61013136600461070b565b61026e565b6100f3610144366004610771565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461070b565b61029f565b6100df61018836600461070b565b61031f565b6100f361019b366004610793565b61032d565b6060600380546101af906107c6565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c6565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b9190610801565b610358565b6060600480546101af906107c6565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f0565b600060208083528351808285015260005b818110156106c7578581018301518582016040015282016106ab565b818111156106d9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461070657600080fd5b919050565b6000806040838503121561071e57600080fd5b610727836106ef565b946020939093013593505050565b60008060006060848603121561074a57600080fd5b610753846106ef565b9250610761602085016106ef565b9150604084013590509250925092565b60006020828403121561078357600080fd5b61078c826106ef565b9392505050565b600080604083850312156107a657600080fd5b6107af836106ef565b91506107bd602084016106ef565b90509250929050565b600181811c908216806107da57607f821691505b602082108114156107fb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561082257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220c93e0653d3466c26d2008803bbb9be73ca2adbd30ddd61dff70e9cba393ebf9464736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xAEF CODESIZE SUB DUP1 PUSH3 0xAEF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1DB JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x282 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x245 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x153 JUMPI PUSH3 0x153 PUSH3 0x10E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x17E JUMPI PUSH3 0x17E PUSH3 0x10E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1BF JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x1A0 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1D1 JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x215 DUP7 DUP4 DUP8 ADD PUSH3 0x124 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x22C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x23B DUP6 DUP3 DUP7 ADD PUSH3 0x124 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x25A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x27C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x85D DUP1 PUSH3 0x292 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x69A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x735 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x771 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x290 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x29F JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DB SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x358 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x258 DUP6 DUP3 DUP6 PUSH2 0x47C JUMP JUMPDEST PUSH2 0x263 DUP6 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x281 DUP4 DUP4 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x28B SWAP2 SWAP1 PUSH2 0x801 JUMP JUMPDEST PUSH2 0x358 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AD DUP3 DUP7 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x312 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x263 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x488 DUP5 DUP5 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F0 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x309 JUMP JUMPDEST PUSH2 0x4F0 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x634 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x6AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x727 DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x753 DUP5 PUSH2 0x6EF JUMP JUMPDEST SWAP3 POP PUSH2 0x761 PUSH1 0x20 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78C DUP3 PUSH2 0x6EF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7AF DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH2 0x7BD PUSH1 0x20 DUP5 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7DA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x7FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x822 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 RETURNDATACOPY MOD MSTORE8 0xD3 CHAINID PUSH13 0x26D2008803BBB9BE73CA2ADBD3 0xD 0xDD PUSH2 0xDFF7 0xE SWAP13 0xBA CODECOPY RETURNDATACOPY 0xBF SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"1401:11610:10:-:0;;;1976:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;1401:11610;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1401:11610:10;;;-1:-1:-1;1401:11610:10;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1603:380::-;1682:1;1678:12;;;;1725;;;1746:61;;1800:4;1792:6;1788:17;1778:27;;1746:61;1853:2;1845:6;1842:14;1822:18;1819:38;1816:161;;;1899:10;1894:3;1890:20;1887:1;1880:31;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1816:161;;1603:380;;;:::o;:::-;1401:11610:10;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":856,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1148,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1270,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":813,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":562,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":671,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":622,"id":3225,"parameterSlots":2,"returnSlots":1},"@name_3051":{"entryPoint":416,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":656,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":586,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":799,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1775,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1905,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1939,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1845,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1803,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1690,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2049,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":1990,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5806:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069a565b60405180910390f35b6100df6100da36600461070b565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610735565b61024a565b604051601281526020016100c3565b6100df61013136600461070b565b61026e565b6100f3610144366004610771565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461070b565b61029f565b6100df61018836600461070b565b61031f565b6100f361019b366004610793565b61032d565b6060600380546101af906107c6565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c6565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b9190610801565b610358565b6060600480546101af906107c6565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f0565b600060208083528351808285015260005b818110156106c7578581018301518582016040015282016106ab565b818111156106d9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461070657600080fd5b919050565b6000806040838503121561071e57600080fd5b610727836106ef565b946020939093013593505050565b60008060006060848603121561074a57600080fd5b610753846106ef565b9250610761602085016106ef565b9150604084013590509250925092565b60006020828403121561078357600080fd5b61078c826106ef565b9392505050565b600080604083850312156107a657600080fd5b6107af836106ef565b91506107bd602084016106ef565b90509250929050565b600181811c908216806107da57607f821691505b602082108114156107fb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561082257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220c93e0653d3466c26d2008803bbb9be73ca2adbd30ddd61dff70e9cba393ebf9464736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x69A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x735 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x771 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x290 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x29F JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DB SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x358 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x258 DUP6 DUP3 DUP6 PUSH2 0x47C JUMP JUMPDEST PUSH2 0x263 DUP6 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x281 DUP4 DUP4 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x28B SWAP2 SWAP1 PUSH2 0x801 JUMP JUMPDEST PUSH2 0x358 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AD DUP3 DUP7 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x312 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x263 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x488 DUP5 DUP5 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F0 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x309 JUMP JUMPDEST PUSH2 0x4F0 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x634 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x6AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x727 DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x753 DUP5 PUSH2 0x6EF JUMP JUMPDEST SWAP3 POP PUSH2 0x761 PUSH1 0x20 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78C DUP3 PUSH2 0x6EF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7AF DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH2 0x7BD PUSH1 0x20 DUP5 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7DA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x7FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x822 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 RETURNDATACOPY MOD MSTORE8 0xD3 CHAINID PUSH13 0x26D2008803BBB9BE73CA2ADBD3 0xD 0xDD PUSH2 0xDFF7 0xE SWAP13 0xBA CODECOPY RETURNDATACOPY 0xBF SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"1401:11610:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;3406:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;2365:102::-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;14:597:25;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"428200","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"26978","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"},"internal":{"_afterTokenTransfer(address,address,uint256)":"infinite","_approve(address,address,uint256)":"infinite","_beforeTokenTransfer(address,address,uint256)":"infinite","_burn(address,uint256)":"infinite","_mint(address,uint256)":"infinite","_spendAllowance(address,address,uint256)":"infinite","_transfer(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/OmniVotingEscrow.sol":{"OmniVotingEscrow":{"abi":[{"inputs":[{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_votingEscrowRemapper","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"dstChainId","type":"uint16"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"TotalSupplyToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"dstChainId","type":"uint16"},{"indexed":false,"internalType":"address","name":"localUser","type":"address"},{"indexed":false,"internalType":"address","name":"remoteUser","type":"address"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"userPoint","type":"tuple"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"UserBalToChain","type":"event"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendTotalSupply","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendUserBalance","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendTotalSupply","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendUserBalance","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingEscrowRemapper","outputs":[{"internalType":"contract IVotingEscrowRemapper","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_2907":{"entryPoint":null,"id":2907,"parameterSlots":0,"returnSlots":0},"@_3785":{"entryPoint":null,"id":3785,"parameterSlots":2,"returnSlots":0},"@_494":{"entryPoint":null,"id":494,"parameterSlots":1,"returnSlots":0},"@_935":{"entryPoint":null,"id":935,"parameterSlots":1,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2995":{"entryPoint":335,"id":2995,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":440,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory":{"entryPoint":503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_address":{"entryPoint":415,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1224:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:25"},"nodeType":"YulFunctionCall","src":"125:12:25"},"nodeType":"YulExpressionStatement","src":"125:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:25"},"nodeType":"YulFunctionCall","src":"104:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:25"},"nodeType":"YulFunctionCall","src":"100:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:25"},"nodeType":"YulFunctionCall","src":"89:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:25"},"nodeType":"YulFunctionCall","src":"79:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:25"},"nodeType":"YulFunctionCall","src":"72:50:25"},"nodeType":"YulIf","src":"69:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:25","type":""}],"src":"14:131:25"},{"body":{"nodeType":"YulBlock","src":"248:287:25","statements":[{"body":{"nodeType":"YulBlock","src":"294:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"303:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"306:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"296:6:25"},"nodeType":"YulFunctionCall","src":"296:12:25"},"nodeType":"YulExpressionStatement","src":"296:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"269:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"265:3:25"},"nodeType":"YulFunctionCall","src":"265:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"290:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"261:3:25"},"nodeType":"YulFunctionCall","src":"261:32:25"},"nodeType":"YulIf","src":"258:52:25"},{"nodeType":"YulVariableDeclaration","src":"319:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"338:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"332:5:25"},"nodeType":"YulFunctionCall","src":"332:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"323:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"382:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"357:24:25"},"nodeType":"YulFunctionCall","src":"357:31:25"},"nodeType":"YulExpressionStatement","src":"357:31:25"},{"nodeType":"YulAssignment","src":"397:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"407:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"397:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"421:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"446:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"457:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"442:3:25"},"nodeType":"YulFunctionCall","src":"442:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"436:5:25"},"nodeType":"YulFunctionCall","src":"436:25:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"425:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"495:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"470:24:25"},"nodeType":"YulFunctionCall","src":"470:33:25"},"nodeType":"YulExpressionStatement","src":"470:33:25"},{"nodeType":"YulAssignment","src":"512:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"522:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"512:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"206:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"217:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"229:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"237:6:25","type":""}],"src":"150:385:25"},{"body":{"nodeType":"YulBlock","src":"714:230:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"731:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"742:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"724:6:25"},"nodeType":"YulFunctionCall","src":"724:21:25"},"nodeType":"YulExpressionStatement","src":"724:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"776:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"781:2:25","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"754:6:25"},"nodeType":"YulFunctionCall","src":"754:30:25"},"nodeType":"YulExpressionStatement","src":"754:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"804:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"815:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"800:3:25"},"nodeType":"YulFunctionCall","src":"800:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f","kind":"string","nodeType":"YulLiteral","src":"820:34:25","type":"","value":"OmniVotingEscrow: remapper canno"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"793:6:25"},"nodeType":"YulFunctionCall","src":"793:62:25"},"nodeType":"YulExpressionStatement","src":"793:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"886:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"871:3:25"},"nodeType":"YulFunctionCall","src":"871:18:25"},{"hexValue":"7420626520307830","kind":"string","nodeType":"YulLiteral","src":"891:10:25","type":"","value":"t be 0x0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"864:6:25"},"nodeType":"YulFunctionCall","src":"864:38:25"},"nodeType":"YulExpressionStatement","src":"864:38:25"},{"nodeType":"YulAssignment","src":"911:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"934:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:25"},"nodeType":"YulFunctionCall","src":"919:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"911:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"691:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"705:4:25","type":""}],"src":"540:404:25"},{"body":{"nodeType":"YulBlock","src":"1052:170:25","statements":[{"body":{"nodeType":"YulBlock","src":"1098:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1107:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1110:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1100:6:25"},"nodeType":"YulFunctionCall","src":"1100:12:25"},"nodeType":"YulExpressionStatement","src":"1100:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1073:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1082:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1069:3:25"},"nodeType":"YulFunctionCall","src":"1069:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1094:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1065:3:25"},"nodeType":"YulFunctionCall","src":"1065:32:25"},"nodeType":"YulIf","src":"1062:52:25"},{"nodeType":"YulVariableDeclaration","src":"1123:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1142:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1136:5:25"},"nodeType":"YulFunctionCall","src":"1136:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1127:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1161:24:25"},"nodeType":"YulFunctionCall","src":"1161:31:25"},"nodeType":"YulExpressionStatement","src":"1161:31:25"},{"nodeType":"YulAssignment","src":"1201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"1211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1201:6:25"}]}]},"name":"abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1018:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1029:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1041:6:25","type":""}],"src":"949:273:25"}]},"contents":"{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"OmniVotingEscrow: remapper canno\")\n mstore(add(headStart, 96), \"t be 0x0\")\n tail := add(headStart, 128)\n }\n function abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e06040526005805463ffffffff1916620100001790553480156200002357600080fd5b5060405162002fef38038062002fef8339810160408190526200004691620001b8565b818062000053336200014f565b6001600160a01b03908116608052821615159050620000c95760405162461bcd60e51b815260206004820152602860248201527f4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f604482015267074206265203078360c41b606482015260840160405180910390fd5b6001600160a01b03811660c081905260408051630458184560e11b815290516308b0308a916004808201926020929091908290030181865afa15801562000114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013a9190620001f7565b6001600160a01b031660a052506200021e9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620001b557600080fd5b50565b60008060408385031215620001cc57600080fd5b8251620001d9816200019f565b6020840151909250620001ec816200019f565b809150509250929050565b6000602082840312156200020a57600080fd5b815162000217816200019f565b9392505050565b60805160a05160c051612d1c620002d360003960008181610269015261118901526000818161032b01528181610ad201528181610b7601528181610bf901528181610c6c01528181610d0501528181610eab01528181610f4601528181610fd80152818161104901526110ed0152600081816104f4015281816105ec0152818161083b015281816108c40152818161097401528181610e22015281816116ab01528181611adc0152611e100152612d1c6000f3fe6080604052600436106101b65760003560e01c80637533d788116100ec578063baf3292d1161008a578063df2a5b3b11610064578063df2a5b3b14610569578063eb8d72b714610589578063f2fde38b146105a9578063f5ecbdbc146105c957600080fd5b8063baf3292d14610516578063cbed8b9c14610536578063d1deba1f1461055657600080fd5b8063950c8a74116100c6578063950c8a74146104825780639f38369a146104a2578063a6c3d165146104c2578063b353aaa7146104e257600080fd5b80637533d788146103ff5780638cfd8f5c1461042c5780638da5cb5b1461046457600080fd5b806342d65a8d116101595780635b8c41e6116101335780635b8c41e61461034d57806365d092d0146103aa57806366ad5c8a146103ca578063715018a6146103ea57600080fd5b806342d65a8d146102e65780634a759489146103065780634f2bfe5b1461031957600080fd5b806316334c8f1161019557806316334c8f1461021d578063363bf0de146102575780633d8b38f6146102a3578063416b154a146102d357600080fd5b80621d3567146101bb57806307e0db17146101dd57806310ddb137146101fd575b600080fd5b3480156101c757600080fd5b506101db6101d636600461224e565b6105e9565b005b3480156101e957600080fd5b506101db6101f83660046122e1565b61081a565b34801561020957600080fd5b506101db6102183660046122e1565b6108a3565b34801561022957600080fd5b5061023d6102383660046122fc565b6108fb565b604080519283526020830191909152015b60405180910390f35b34801561026357600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024e565b3480156102af57600080fd5b506102c36102be366004612363565b610a01565b604051901515815260200161024e565b6101db6102e136600461248d565b610ace565b3480156102f257600080fd5b506101db610301366004612363565b610e03565b6101db6103143660046124ff565b610e89565b34801561032557600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b5061039c610368366004612584565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b60405190815260200161024e565b3480156103b657600080fd5b5061023d6103c53660046122fc565b6112a0565b3480156103d657600080fd5b506101db6103e536600461224e565b611303565b3480156103f657600080fd5b506101db6113df565b34801561040b57600080fd5b5061041f61041a3660046122e1565b6113f3565b60405161024e919061263d565b34801561043857600080fd5b5061039c610447366004612650565b600260209081526000928352604080842090915290825290205481565b34801561047057600080fd5b506000546001600160a01b031661028b565b34801561048e57600080fd5b5060035461028b906001600160a01b031681565b3480156104ae57600080fd5b5061041f6104bd3660046122e1565b61148d565b3480156104ce57600080fd5b506101db6104dd366004612363565b61159d565b3480156104ee57600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b506101db610531366004612683565b611630565b34801561054257600080fd5b506101db6105513660046126a0565b61168c565b6101db61056436600461224e565b611721565b34801561057557600080fd5b506101db61058436600461270e565b611926565b34801561059557600080fd5b506101db6105a4366004612363565b6119d8565b3480156105b557600080fd5b506101db6105c4366004612683565b611a32565b3480156105d557600080fd5b5061041f6105e436600461274a565b611aab565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461068490612797565b80601f01602080910402602001604051908101604052809291908181526020018280546106b090612797565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b50505050509050805186869050148015610718575060008151115b801561074057508051602082012060405161073690889088906127d2565b6040518091039020145b61079b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161065d565b6108118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b5c92505050565b50505050505050565b610822611c66565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050505050565b6108ab611c66565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161086e565b6000806000600560029054906101000a900461ffff1660405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525060405160200161094d92919061280e565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906109b3908a90309086908c908c908c9060040161284f565b6040805180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906128a5565b925092505094509492505050565b61ffff831660009081526001602052604081208054829190610a2290612797565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90612797565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b505050505090508383604051610ab29291906127d2565b60405180910390208180519060200120149150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be391906128f4565b9050610bf28160400151611cc0565b15610d7d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906128c9565b60405163d1febfb960e01b8152600481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1febfb9906024016080604051808303816000875af1158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906128f4565b90505b6000600560029054906101000a900461ffff1682604051602001610da292919061280e565b6040516020818303038152906040529050610dc1878288888834611cf1565b7fd76af77f4ffbd9969fdb15b1c1268d40cd4bf1093905e67639f369cb9f44c1728783604051610df292919061280e565b60405180910390a150505050505050565b610e0b611c66565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610e5b90869086908690600401612965565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610811573d6000803e3d6000fd5b60405163010ae75760e01b81526001600160a01b0386811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063010ae757906024016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906128c9565b6040516328d09d4760e01b81526001600160a01b038881166004830152602482018390529192506000917f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906044016080604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb391906128f4565b60405163adc6358960e01b81526001600160a01b0389811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063adc6358990602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128c9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a91906128f4565b6040516317b4eb8760e31b81526001600160a01b038c8116600483015261ffff8c1660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bda75c3890604401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612983565b905060006001600160a01b03821661120c578b61120e565b815b6005546040519192506000916112339161ffff1690849089908b9089906020016129a0565b60405160208183030381529060405290506112528c828d8d8d34611cf1565b7f3689d0fa90a175cc766502dc62c2abdee9ca4b276d4315adf98339a8354755808c8e848a886040516112899594939291906129e6565b60405180910390a150505050505050505050505050565b6005546040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052935190948594859461094d9461ffff9093169386938493909101612a16565b3330146113615760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161065d565b6113d78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611e8c92505050565b505050505050565b6113e7611c66565b6113f16000611ee4565b565b6001602052600090815260409020805461140c90612797565b80601f016020809104026020016040519081016040528092919081815260200182805461143890612797565b80156114855780601f1061145a57610100808354040283529160200191611485565b820191906000526020600020905b81548152906001019060200180831161146857829003601f168201915b505050505081565b61ffff81166000908152600160205260408120805460609291906114b090612797565b80601f01602080910402602001604051908101604052809291908181526020018280546114dc90612797565b80156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b505050505090508051600014156115825760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161065d565b610ac76000601483516115959190612a5d565b839190611f34565b6115a5611c66565b8181306040516020016115ba93929190612a74565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516115ef939192909101906120cb565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161162393929190612965565b60405180910390a1505050565b611638611c66565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b611694611c66565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116e89088908890889088908890600401612a9a565b600060405180830381600087803b15801561170257600080fd5b505af1158015611716573d6000803e3d6000fd5b505050505050505050565b61ffff8616600090815260046020526040808220905161174490889088906127d2565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806117c45760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161065d565b8083836040516117d59291906127d2565b6040518091039020146118345760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161065d565b61ffff8716600090815260046020526040808220905161185790899089906127d2565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526118ef918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611e8c92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051610df2959493929190612ad3565b61192e611c66565b600081116119765760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161065d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611623565b6119e0611c66565b61ffff831660009081526001602052604090206119fe90838361214f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161162393929190612965565b611a3a611c66565b6001600160a01b038116611a9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065d565b611aa881611ee4565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b539190810190612b0e565b95945050505050565b600080611bbf5a60966366ad5c8a60e01b89898989604051602401611b849493929190612b7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612041565b91509150816113d7578280519060200120600460008861ffff1661ffff16815260200190815260200160002086604051611bf99190612bb9565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611c569088908890889088908790612bd5565b60405180910390a1505050505050565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065d565b600042611cd062093a8084612c33565b611cdd9062093a80612c55565b611cea9062093a80612c74565b1092915050565b61ffff861660009081526001602052604081208054611d0f90612797565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3b90612797565b8015611d885780601f10611d5d57610100808354040283529160200191611d88565b820191906000526020600020905b815481529060010190602001808311611d6b57829003601f168201915b50505050509050805160001415611dfa5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161065d565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490611e51908b9086908c908c908c908c90600401612c8c565b6000604051808303818588803b158015611e6a57600080fd5b505af1158015611e7e573d6000803e3d6000fd5b505050505050505050505050565b60405162461bcd60e51b815260206004820152602760248201527f4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665604482015266206c7a4d73677360c81b606482015260840161065d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606081611f4281601f612c74565b1015611f815760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161065d565b611f8b8284612c74565b84511015611fcf5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161065d565b606082158015611fee5760405191506000825260208201604052612038565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561202757805183526020928301920161200f565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115612066576120666123ca565b6040519080825280601f01601f191660200182016040528015612090576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156120b2578692505b828152826000602083013e909890975095505050505050565b8280546120d790612797565b90600052602060002090601f0160209004810192826120f9576000855561213f565b82601f1061211257805160ff191683800117855561213f565b8280016001018555821561213f579182015b8281111561213f578251825591602001919060010190612124565b5061214b9291506121c3565b5090565b82805461215b90612797565b90600052602060002090601f01602090048101928261217d576000855561213f565b82601f106121965782800160ff1982351617855561213f565b8280016001018555821561213f579182015b8281111561213f5782358255916020019190600101906121a8565b5b8082111561214b57600081556001016121c4565b803561ffff811681146121ea57600080fd5b919050565b60008083601f84011261220157600080fd5b5081356001600160401b0381111561221857600080fd5b60208301915083602082850101111561223057600080fd5b9250929050565b80356001600160401b03811681146121ea57600080fd5b6000806000806000806080878903121561226757600080fd5b612270876121d8565b955060208701356001600160401b038082111561228c57600080fd5b6122988a838b016121ef565b90975095508591506122ac60408a01612237565b945060608901359150808211156122c257600080fd5b506122cf89828a016121ef565b979a9699509497509295939492505050565b6000602082840312156122f357600080fd5b610ac7826121d8565b6000806000806060858703121561231257600080fd5b61231b856121d8565b93506020850135801515811461233057600080fd5b925060408501356001600160401b0381111561234b57600080fd5b612357878288016121ef565b95989497509550505050565b60008060006040848603121561237857600080fd5b612381846121d8565b925060208401356001600160401b0381111561239c57600080fd5b6123a8868287016121ef565b9497909650939450505050565b6001600160a01b0381168114611aa857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612408576124086123ca565b604052919050565b60006001600160401b03821115612429576124296123ca565b50601f01601f191660200190565b600082601f83011261244857600080fd5b813561245b61245682612410565b6123e0565b81815284602083860101111561247057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156124a357600080fd5b6124ac856121d8565b935060208501356124bc816123b5565b925060408501356124cc816123b5565b915060608501356001600160401b038111156124e757600080fd5b6124f387828801612437565b91505092959194509250565b600080600080600060a0868803121561251757600080fd5b8535612522816123b5565b9450612530602087016121d8565b93506040860135612540816123b5565b92506060860135612550816123b5565b915060808601356001600160401b0381111561256b57600080fd5b61257788828901612437565b9150509295509295909350565b60008060006060848603121561259957600080fd5b6125a2846121d8565b925060208401356001600160401b038111156125bd57600080fd5b6125c986828701612437565b9250506125d860408501612237565b90509250925092565b60005b838110156125fc5781810151838201526020016125e4565b8381111561260b576000848401525b50505050565b600081518084526126298160208601602086016125e1565b601f01601f19169290920160200192915050565b602081526000610ac76020830184612611565b6000806040838503121561266357600080fd5b61266c836121d8565b915061267a602084016121d8565b90509250929050565b60006020828403121561269557600080fd5b8135610ac7816123b5565b6000806000806000608086880312156126b857600080fd5b6126c1866121d8565b94506126cf602087016121d8565b93506040860135925060608601356001600160401b038111156126f157600080fd5b6126fd888289016121ef565b969995985093965092949392505050565b60008060006060848603121561272357600080fd5b61272c846121d8565b925061273a602085016121d8565b9150604084013590509250925092565b6000806000806080858703121561276057600080fd5b612769856121d8565b9350612777602086016121d8565b92506040850135612787816123b5565b9396929550929360600135925050565b600181811c908216806127ab57607f821691505b602082108114156127cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b61ffff8316815260a08101610ac760208301846127e2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061287d90830187612611565b85151560608401528281036080840152612898818587612826565b9998505050505050505050565b600080604083850312156128b857600080fd5b505080516020909101519092909150565b6000602082840312156128db57600080fd5b5051919050565b8051600f81900b81146121ea57600080fd5b60006080828403121561290657600080fd5b604051608081018181106001600160401b0382111715612928576129286123ca565b604052612934836128e2565b8152612942602084016128e2565b602082015260408301516040820152606083015160608201528091505092915050565b61ffff84168152604060208201526000611b53604083018486612826565b60006020828403121561299557600080fd5b8151610ac7816123b5565b61ffff861681526001600160a01b03851660208201526040810184905261016081016129cf60608301856127e2565b6129dc60e08301846127e2565b9695505050505050565b61ffff861681526001600160a01b0385811660208301528416604082015261016081016129cf60608301856127e2565b61ffff861681526001600160a01b038516602082015260ff8416604082015261016081016129cf60608301856127e2565b634e487b7160e01b600052601160045260246000fd5b600082821015612a6f57612a6f612a47565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152612ac8608083018486612826565b979650505050505050565b61ffff86168152608060208201526000612af1608083018688612826565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215612b2057600080fd5b81516001600160401b03811115612b3657600080fd5b8201601f81018413612b4757600080fd5b8051612b5561245682612410565b818152856020838501011115612b6a57600080fd5b611b538260208301602086016125e1565b61ffff85168152608060208201526000612b986080830186612611565b6001600160401b03851660408401528281036060840152612ac88185612611565b60008251612bcb8184602087016125e1565b9190910192915050565b61ffff8616815260a060208201526000612bf260a0830187612611565b6001600160401b03861660408401528281036060840152612c138186612611565b90508281036080840152612c278185612611565b98975050505050505050565b600082612c5057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612c6f57612c6f612a47565b500290565b60008219821115612c8757612c87612a47565b500190565b61ffff8716815260c060208201526000612ca960c0830188612611565b8281036040840152612cbb8188612611565b6001600160a01b0387811660608601528616608085015283810360a08501529050612898818561261156fea2646970667358221220e47f09d33ae09484adc994fcf8df33273d0fc558e6365a0f984bf0fa387cd41664736f6c634300080a0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE PUSH1 0x5 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH3 0x10000 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2FEF CODESIZE SUB DUP1 PUSH3 0x2FEF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x46 SWAP2 PUSH3 0x1B8 JUMP JUMPDEST DUP2 DUP1 PUSH3 0x53 CALLER PUSH3 0x14F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x80 MSTORE DUP3 AND ISZERO ISZERO SWAP1 POP PUSH3 0xC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2072656D61707065722063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x742062652030783 PUSH1 0xC4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xC0 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x4581845 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH4 0x8B0308A SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x114 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x13A SWAP2 SWAP1 PUSH3 0x1F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH3 0x21E SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x1D9 DUP2 PUSH3 0x19F JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x1EC DUP2 PUSH3 0x19F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x217 DUP2 PUSH3 0x19F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x2D1C PUSH3 0x2D3 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x269 ADD MSTORE PUSH2 0x1189 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x32B ADD MSTORE DUP2 DUP2 PUSH2 0xAD2 ADD MSTORE DUP2 DUP2 PUSH2 0xB76 ADD MSTORE DUP2 DUP2 PUSH2 0xBF9 ADD MSTORE DUP2 DUP2 PUSH2 0xC6C ADD MSTORE DUP2 DUP2 PUSH2 0xD05 ADD MSTORE DUP2 DUP2 PUSH2 0xEAB ADD MSTORE DUP2 DUP2 PUSH2 0xF46 ADD MSTORE DUP2 DUP2 PUSH2 0xFD8 ADD MSTORE DUP2 DUP2 PUSH2 0x1049 ADD MSTORE PUSH2 0x10ED ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4F4 ADD MSTORE DUP2 DUP2 PUSH2 0x5EC ADD MSTORE DUP2 DUP2 PUSH2 0x83B ADD MSTORE DUP2 DUP2 PUSH2 0x8C4 ADD MSTORE DUP2 DUP2 PUSH2 0x974 ADD MSTORE DUP2 DUP2 PUSH2 0xE22 ADD MSTORE DUP2 DUP2 PUSH2 0x16AB ADD MSTORE DUP2 DUP2 PUSH2 0x1ADC ADD MSTORE PUSH2 0x1E10 ADD MSTORE PUSH2 0x2D1C PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBAF3292D GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDF2A5B3B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x589 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x516 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x536 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x482 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x65D092D0 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x4A759489 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x4F2BFE5B EQ PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x16334C8F GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x16334C8F EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x363BF0DE EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x416B154A EQ PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x1FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x8A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0x2BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x248D JUMP JUMPDEST PUSH2 0xACE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x301 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xE03 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x24FF JUMP JUMPDEST PUSH2 0xE89 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x2584 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x12A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1303 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x13DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x263D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x2650 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x28B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x28B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x4BD CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x4DD CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x159D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x531 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x26A0 JUMP JUMPDEST PUSH2 0x168C JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1721 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x584 CALLDATASIZE PUSH1 0x4 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x1926 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x19D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1A32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x5E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x274A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x684 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x718 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x740 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x736 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x79B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x811 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1B5C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x822 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x89C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AB PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x86E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x94D SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP3 MSTORE SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x9B3 SWAP1 DUP11 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x284F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9F3 SWAP2 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xA22 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA4E SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA9B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA9B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA7E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xAB2 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB52 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBE3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP PUSH2 0xBF2 DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x1CC0 JUMP JUMPDEST ISZERO PUSH2 0xD7D JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2C4C5C1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCEC SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD7A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xDC1 DUP8 DUP3 DUP9 DUP9 DUP9 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0xD76AF77F4FFBD9969FDB15B1C1268D40CD4BF1093905E67639F369CB9F44C172 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE0B PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xE5B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x811 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10AE757 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x10AE757 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF1A SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28D09D47 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0x28D09D47 SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xADC63589 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xADC63589 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1043 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C9 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1136 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x115A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x17B4EB87 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xBDA75C38 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11F4 SWAP2 SWAP1 PUSH2 0x2983 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x120C JUMPI DUP12 PUSH2 0x120E JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x1233 SWAP2 PUSH2 0xFFFF AND SWAP1 DUP5 SWAP1 DUP10 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x29A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1252 DUP13 DUP3 DUP14 DUP14 DUP14 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0x3689D0FA90A175CC766502DC62C2ABDEE9CA4B276D4315ADF98339A835475580 DUP13 DUP15 DUP5 DUP11 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1289 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP4 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE DUP6 MLOAD SWAP4 DUP5 ADD DUP7 MSTORE DUP3 DUP5 MSTORE DUP4 DUP3 ADD DUP4 SWAP1 MSTORE DUP4 DUP7 ADD DUP4 SWAP1 MSTORE DUP4 ADD DUP3 SWAP1 MSTORE SWAP4 MLOAD SWAP1 SWAP5 DUP6 SWAP5 DUP6 SWAP5 PUSH2 0x94D SWAP5 PUSH2 0xFFFF SWAP1 SWAP4 AND SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP1 SWAP2 ADD PUSH2 0x2A16 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x13D7 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13E7 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0x13F1 PUSH1 0x0 PUSH2 0x1EE4 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x140C SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1438 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1485 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x145A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1485 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1468 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x14B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x14DC SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1529 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x14FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1529 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x150C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1582 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xAC7 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1595 SWAP2 SWAP1 PUSH2 0x2A5D JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x15A5 PUSH2 0x1C66 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15BA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x15EF SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20CB JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1638 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x1694 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x16E8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2A9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1744 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x17C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x17D5 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1834 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1857 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x18EF SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2AD3 JUMP JUMPDEST PUSH2 0x192E PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1623 JUMP JUMPDEST PUSH2 0x19E0 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FE SWAP1 DUP4 DUP4 PUSH2 0x214F JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH2 0x1A3A PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A9F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1AA8 DUP2 PUSH2 0x1EE4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1B53 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B0E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BBF GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1B84 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2041 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x13D7 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1BF9 SWAP2 SWAP1 PUSH2 0x2BB9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x1C56 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2BD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH2 0x1CD0 PUSH3 0x93A80 DUP5 PUSH2 0x2C33 JUMP JUMPDEST PUSH2 0x1CDD SWAP1 PUSH3 0x93A80 PUSH2 0x2C55 JUMP JUMPDEST PUSH2 0x1CEA SWAP1 PUSH3 0x93A80 PUSH2 0x2C74 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1D0F SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D3B SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D88 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D5D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D88 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D6B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x1E51 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2063616E6E6F742072656365697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x206C7A4D736773 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1F42 DUP2 PUSH1 0x1F PUSH2 0x2C74 JUMP JUMPDEST LT ISZERO PUSH2 0x1F81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1F8B DUP3 DUP5 PUSH2 0x2C74 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1FCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1FEE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2027 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x200F JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2066 JUMPI PUSH2 0x2066 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x20B2 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x20D7 SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x20F9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2112 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2124 JUMP JUMPDEST POP PUSH2 0x214B SWAP3 SWAP2 POP PUSH2 0x21C3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x215B SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x217D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2196 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x214B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21C4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2270 DUP8 PUSH2 0x21D8 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2298 DUP11 DUP4 DUP12 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x22AC PUSH1 0x40 DUP11 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x22C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22CF DUP10 DUP3 DUP11 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC7 DUP3 PUSH2 0x21D8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x231B DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x234B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2357 DUP8 DUP3 DUP9 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2381 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x239C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23A8 DUP7 DUP3 DUP8 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2408 JUMPI PUSH2 0x2408 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2429 JUMPI PUSH2 0x2429 PUSH2 0x23CA JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x245B PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST PUSH2 0x23E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x24A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24AC DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x24BC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x24CC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP8 DUP3 DUP9 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2522 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP5 POP PUSH2 0x2530 PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2540 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0x2550 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x256B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2577 DUP9 DUP3 DUP10 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25A2 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x25BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25C9 DUP7 DUP3 DUP8 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x25D8 PUSH1 0x40 DUP6 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25FC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25E4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x260B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2629 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x266C DUP4 PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH2 0x267A PUSH1 0x20 DUP5 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26C1 DUP7 PUSH2 0x21D8 JUMP JUMPDEST SWAP5 POP PUSH2 0x26CF PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26FD DUP9 DUP3 DUP10 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x272C DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH2 0x273A PUSH1 0x20 DUP6 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2760 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2769 DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2777 PUSH1 0x20 DUP7 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2787 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x27CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x287D SWAP1 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2898 DUP2 DUP6 DUP8 PUSH2 0x2826 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE PUSH2 0x2934 DUP4 PUSH2 0x28E2 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2942 PUSH1 0x20 DUP5 ADD PUSH2 0x28E2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1B53 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0x29DC PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2A6F JUMPI PUSH2 0x2A6F PUSH2 0x2A47 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2AC8 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AF1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2B47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2B55 PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2B6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B53 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B98 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2AC8 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2BCB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x25E1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BF2 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C13 DUP2 DUP7 PUSH2 0x2611 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C27 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2C50 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2C6F JUMPI PUSH2 0x2C6F PUSH2 0x2A47 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2C87 JUMPI PUSH2 0x2C87 PUSH2 0x2A47 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CA9 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x2611 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2CBB DUP2 DUP9 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP7 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2898 DUP2 DUP6 PUSH2 0x2611 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE4 PUSH32 0x9D33AE09484ADC994FCF8DF33273D0FC558E6365A0F984BF0FA387CD4166473 PUSH16 0x6C634300080A00330000000000000000 ","sourceMap":"294:4343:14:-:0;;;518:18;;;-1:-1:-1;;582:16:14;;;;;869:342;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;950:11;;936:32:9;719:10:13;936:18:9;:32::i;:::-;-1:-1:-1;;;;;980:42:4;;;;;981:37:14;::::1;::::0;::::1;::::0;-1:-1:-1;973:90:14::1;;;::::0;-1:-1:-1;;;973:90:14;;742:2:25;973:90:14::1;::::0;::::1;724:21:25::0;781:2;761:18;;;754:30;820:34;800:18;;;793:62;-1:-1:-1;;;871:18:25;;;864:38;919:19;;973:90:14::1;;;;;;;;-1:-1:-1::0;;;;;1074:67:14;::::1;;::::0;;;1166:38:::1;::::0;;-1:-1:-1;;;1166:38:14;;;;:36:::1;::::0;:38:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;1074:67;1166:38:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1151:53:14::1;;::::0;-1:-1:-1;294:4343:14;;-1:-1:-1;294:4343:14;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:131:25:-;-1:-1:-1;;;;;89:31:25;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:385::-;229:6;237;290:2;278:9;269:7;265:23;261:32;258:52;;;306:1;303;296:12;258:52;338:9;332:16;357:31;382:5;357:31;:::i;:::-;457:2;442:18;;436:25;407:5;;-1:-1:-1;470:33:25;436:25;470:33;:::i;:::-;522:7;512:17;;;150:385;;;;;:::o;949:273::-;1041:6;1094:2;1082:9;1073:7;1069:23;1065:32;1062:52;;;1110:1;1107;1100:12;1062:52;1142:9;1136:16;1161:31;1186:5;1161:31;:::i;:::-;1211:5;949:273;-1:-1:-1;;;949:273:25:o;:::-;294:4343:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_blockingLzReceive_1026":{"entryPoint":7004,"id":1026,"parameterSlots":4,"returnSlots":0},"@_checkOwner_2938":{"entryPoint":7270,"id":2938,"parameterSlots":0,"returnSlots":0},"@_hasLastCheckpointExpired_4093":{"entryPoint":7360,"id":4093,"parameterSlots":1,"returnSlots":1},"@_lzSend_607":{"entryPoint":7409,"id":607,"parameterSlots":6,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_nonblockingLzReceive_3802":{"entryPoint":7820,"id":3802,"parameterSlots":4,"returnSlots":0},"@_transferOwnership_2995":{"entryPoint":7908,"id":2995,"parameterSlots":1,"returnSlots":0},"@estimateSendTotalSupply_3894":{"entryPoint":2299,"id":3894,"parameterSlots":4,"returnSlots":2},"@estimateSendUserBalance_3854":{"entryPoint":4768,"id":3854,"parameterSlots":4,"returnSlots":2},"@excessivelySafeCall_2826":{"entryPoint":8257,"id":2826,"parameterSlots":4,"returnSlots":2},"@failedMessages_943":{"entryPoint":null,"id":943,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_763":{"entryPoint":3587,"id":763,"parameterSlots":3,"returnSlots":0},"@getConfig_691":{"entryPoint":6827,"id":691,"parameterSlots":4,"returnSlots":1},"@getTrustedRemoteAddress_843":{"entryPoint":5261,"id":843,"parameterSlots":1,"returnSlots":1},"@isTrustedRemote_916":{"entryPoint":2561,"id":916,"parameterSlots":3,"returnSlots":1},"@lzEndpoint_446":{"entryPoint":null,"id":446,"parameterSlots":0,"returnSlots":0},"@lzReceive_553":{"entryPoint":1513,"id":553,"parameterSlots":6,"returnSlots":0},"@minDstGasLookup_456":{"entryPoint":null,"id":456,"parameterSlots":0,"returnSlots":0},"@nonblockingLzReceive_1056":{"entryPoint":4867,"id":1056,"parameterSlots":6,"returnSlots":0},"@owner_2924":{"entryPoint":null,"id":2924,"parameterSlots":0,"returnSlots":1},"@precrime_458":{"entryPoint":null,"id":458,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_2952":{"entryPoint":5087,"id":2952,"parameterSlots":0,"returnSlots":0},"@retryMessage_1135":{"entryPoint":5921,"id":1135,"parameterSlots":6,"returnSlots":0},"@sendTotalSupply_4073":{"entryPoint":2766,"id":4073,"parameterSlots":4,"returnSlots":0},"@sendUserBalance_3998":{"entryPoint":3721,"id":3998,"parameterSlots":5,"returnSlots":0},"@setConfig_715":{"entryPoint":5772,"id":715,"parameterSlots":5,"returnSlots":0},"@setMinDstGas_892":{"entryPoint":6438,"id":892,"parameterSlots":3,"returnSlots":0},"@setPrecrime_859":{"entryPoint":5680,"id":859,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_745":{"entryPoint":2211,"id":745,"parameterSlots":1,"returnSlots":0},"@setSendVersion_730":{"entryPoint":2074,"id":730,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_812":{"entryPoint":5533,"id":812,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_784":{"entryPoint":6616,"id":784,"parameterSlots":3,"returnSlots":0},"@slice_2517":{"entryPoint":7988,"id":2517,"parameterSlots":3,"returnSlots":1},"@transferOwnership_2975":{"entryPoint":6706,"id":2975,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_450":{"entryPoint":5107,"id":450,"parameterSlots":0,"returnSlots":0},"@votingEscrowRemapper_3725":{"entryPoint":null,"id":3725,"parameterSlots":0,"returnSlots":0},"@votingEscrow_3722":{"entryPoint":null,"id":3722,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9271,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":8687,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_int128_fromMemory":{"entryPoint":10466,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9859,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":10627,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":9471,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":11022,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":10484,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16":{"entryPoint":8929,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":9357,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr":{"entryPoint":8956,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9059,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":8782,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":9604,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":9808,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10058,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":9998,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":9888,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":10441,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":10405,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":8664,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":8759,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9745,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":10278,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_Point":{"entryPoint":10210,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10194,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":10868,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":11193,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9789,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10726,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10319,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10774,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10656,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10597,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":10963,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11404,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11131,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11221,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10254,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10906,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":9184,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":9232,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11380,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11315,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11349,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":10845,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":9697,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":10135,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10823,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9162,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address_payable":{"entryPoint":9141,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:28353:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"62:111:25","statements":[{"nodeType":"YulAssignment","src":"72:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"94:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"81:12:25"},"nodeType":"YulFunctionCall","src":"81:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"72:5:25"}]},{"body":{"nodeType":"YulBlock","src":"151:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"160:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"153:6:25"},"nodeType":"YulFunctionCall","src":"153:12:25"},"nodeType":"YulExpressionStatement","src":"153:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"123:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"134:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"141:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"130:3:25"},"nodeType":"YulFunctionCall","src":"130:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"120:2:25"},"nodeType":"YulFunctionCall","src":"120:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"113:6:25"},"nodeType":"YulFunctionCall","src":"113:37:25"},"nodeType":"YulIf","src":"110:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"41:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"52:5:25","type":""}],"src":"14:159:25"},{"body":{"nodeType":"YulBlock","src":"250:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"299:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"308:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"311:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"301:6:25"},"nodeType":"YulFunctionCall","src":"301:12:25"},"nodeType":"YulExpressionStatement","src":"301:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"278:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"286:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:25"},"nodeType":"YulFunctionCall","src":"274:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"293:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"270:3:25"},"nodeType":"YulFunctionCall","src":"270:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"263:6:25"},"nodeType":"YulFunctionCall","src":"263:35:25"},"nodeType":"YulIf","src":"260:55:25"},{"nodeType":"YulAssignment","src":"324:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"324:6:25"}]},{"body":{"nodeType":"YulBlock","src":"397:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"406:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"409:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"399:6:25"},"nodeType":"YulFunctionCall","src":"399:12:25"},"nodeType":"YulExpressionStatement","src":"399:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"369:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"377:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"366:2:25"},"nodeType":"YulFunctionCall","src":"366:30:25"},"nodeType":"YulIf","src":"363:50:25"},{"nodeType":"YulAssignment","src":"422:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"438:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"446:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:25"},"nodeType":"YulFunctionCall","src":"434:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"422:8:25"}]},{"body":{"nodeType":"YulBlock","src":"503:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"512:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"515:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"505:6:25"},"nodeType":"YulFunctionCall","src":"505:12:25"},"nodeType":"YulExpressionStatement","src":"505:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"474:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"482:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"470:3:25"},"nodeType":"YulFunctionCall","src":"470:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"491:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"498:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"463:2:25"},"nodeType":"YulFunctionCall","src":"463:39:25"},"nodeType":"YulIf","src":"460:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"213:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"221:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"229:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"239:6:25","type":""}],"src":"178:347:25"},{"body":{"nodeType":"YulBlock","src":"578:123:25","statements":[{"nodeType":"YulAssignment","src":"588:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"610:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"597:12:25"},"nodeType":"YulFunctionCall","src":"597:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"588:5:25"}]},{"body":{"nodeType":"YulBlock","src":"679:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"688:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"691:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"681:6:25"},"nodeType":"YulFunctionCall","src":"681:12:25"},"nodeType":"YulExpressionStatement","src":"681:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"639:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"650:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"657:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"646:3:25"},"nodeType":"YulFunctionCall","src":"646:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"636:2:25"},"nodeType":"YulFunctionCall","src":"636:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"629:6:25"},"nodeType":"YulFunctionCall","src":"629:49:25"},"nodeType":"YulIf","src":"626:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"557:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"568:5:25","type":""}],"src":"530:171:25"},{"body":{"nodeType":"YulBlock","src":"863:705:25","statements":[{"body":{"nodeType":"YulBlock","src":"910:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"919:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"912:6:25"},"nodeType":"YulFunctionCall","src":"912:12:25"},"nodeType":"YulExpressionStatement","src":"912:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"884:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"893:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"880:3:25"},"nodeType":"YulFunctionCall","src":"880:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"905:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"876:3:25"},"nodeType":"YulFunctionCall","src":"876:33:25"},"nodeType":"YulIf","src":"873:53:25"},{"nodeType":"YulAssignment","src":"935:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"963:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"945:17:25"},"nodeType":"YulFunctionCall","src":"945:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"935:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"982:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1024:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1009:3:25"},"nodeType":"YulFunctionCall","src":"1009:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"996:12:25"},"nodeType":"YulFunctionCall","src":"996:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"986:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1037:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"1047:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1041:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1092:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1101:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1104:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:25"},"nodeType":"YulFunctionCall","src":"1094:12:25"},"nodeType":"YulExpressionStatement","src":"1094:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1080:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1088:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1077:2:25"},"nodeType":"YulFunctionCall","src":"1077:14:25"},"nodeType":"YulIf","src":"1074:34:25"},{"nodeType":"YulVariableDeclaration","src":"1117:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1173:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1184:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1169:3:25"},"nodeType":"YulFunctionCall","src":"1169:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1193:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1143:25:25"},"nodeType":"YulFunctionCall","src":"1143:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1121:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1131:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1210:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1220:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1210:6:25"}]},{"nodeType":"YulAssignment","src":"1237:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1247:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1237:6:25"}]},{"nodeType":"YulAssignment","src":"1264:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1296:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1307:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1292:3:25"},"nodeType":"YulFunctionCall","src":"1292:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"1274:17:25"},"nodeType":"YulFunctionCall","src":"1274:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1264:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1320:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1353:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1364:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1349:3:25"},"nodeType":"YulFunctionCall","src":"1349:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1336:12:25"},"nodeType":"YulFunctionCall","src":"1336:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1324:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1397:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1406:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1409:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1399:6:25"},"nodeType":"YulFunctionCall","src":"1399:12:25"},"nodeType":"YulExpressionStatement","src":"1399:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1383:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1393:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1380:2:25"},"nodeType":"YulFunctionCall","src":"1380:16:25"},"nodeType":"YulIf","src":"1377:36:25"},{"nodeType":"YulVariableDeclaration","src":"1422:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1478:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1489:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1474:3:25"},"nodeType":"YulFunctionCall","src":"1474:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1500:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1448:25:25"},"nodeType":"YulFunctionCall","src":"1448:60:25"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"1426:8:25","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"1436:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1517:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"1527:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1517:6:25"}]},{"nodeType":"YulAssignment","src":"1544:18:25","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"1554:8:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1544:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"789:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"800:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"812:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"820:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"828:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"836:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"844:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"852:6:25","type":""}],"src":"706:862:25"},{"body":{"nodeType":"YulBlock","src":"1642:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"1688:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1697:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1700:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1690:6:25"},"nodeType":"YulFunctionCall","src":"1690:12:25"},"nodeType":"YulExpressionStatement","src":"1690:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1663:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1672:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1659:3:25"},"nodeType":"YulFunctionCall","src":"1659:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1684:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1655:3:25"},"nodeType":"YulFunctionCall","src":"1655:32:25"},"nodeType":"YulIf","src":"1652:52:25"},{"nodeType":"YulAssignment","src":"1713:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1741:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1723:17:25"},"nodeType":"YulFunctionCall","src":"1723:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1713:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""}],"src":"1573:184:25"},{"body":{"nodeType":"YulBlock","src":"1881:523:25","statements":[{"body":{"nodeType":"YulBlock","src":"1927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1929:6:25"},"nodeType":"YulFunctionCall","src":"1929:12:25"},"nodeType":"YulExpressionStatement","src":"1929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1898:3:25"},"nodeType":"YulFunctionCall","src":"1898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1923:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1894:3:25"},"nodeType":"YulFunctionCall","src":"1894:32:25"},"nodeType":"YulIf","src":"1891:52:25"},{"nodeType":"YulAssignment","src":"1952:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1980:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1962:17:25"},"nodeType":"YulFunctionCall","src":"1962:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1952:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1999:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2029:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2040:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2025:3:25"},"nodeType":"YulFunctionCall","src":"2025:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2012:12:25"},"nodeType":"YulFunctionCall","src":"2012:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2003:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2097:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2106:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2109:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2099:6:25"},"nodeType":"YulFunctionCall","src":"2099:12:25"},"nodeType":"YulExpressionStatement","src":"2099:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2066:5:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2087:5:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2080:6:25"},"nodeType":"YulFunctionCall","src":"2080:13:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2073:6:25"},"nodeType":"YulFunctionCall","src":"2073:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2063:2:25"},"nodeType":"YulFunctionCall","src":"2063:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2056:6:25"},"nodeType":"YulFunctionCall","src":"2056:40:25"},"nodeType":"YulIf","src":"2053:60:25"},{"nodeType":"YulAssignment","src":"2122:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"2132:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2122:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2146:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2177:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2188:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2173:3:25"},"nodeType":"YulFunctionCall","src":"2173:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2160:12:25"},"nodeType":"YulFunctionCall","src":"2160:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2150:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2235:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2244:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2247:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2237:6:25"},"nodeType":"YulFunctionCall","src":"2237:12:25"},"nodeType":"YulExpressionStatement","src":"2237:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2207:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2215:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2204:2:25"},"nodeType":"YulFunctionCall","src":"2204:30:25"},"nodeType":"YulIf","src":"2201:50:25"},{"nodeType":"YulVariableDeclaration","src":"2260:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2316:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"2327:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2312:3:25"},"nodeType":"YulFunctionCall","src":"2312:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2336:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2286:25:25"},"nodeType":"YulFunctionCall","src":"2286:58:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2264:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2274:8:25","type":""}]},{"nodeType":"YulAssignment","src":"2353:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2363:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2353:6:25"}]},{"nodeType":"YulAssignment","src":"2380:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2390:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2380:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1823:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1834:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1846:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1854:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1862:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1870:6:25","type":""}],"src":"1762:642:25"},{"body":{"nodeType":"YulBlock","src":"2538:119:25","statements":[{"nodeType":"YulAssignment","src":"2548:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2560:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2571:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2556:3:25"},"nodeType":"YulFunctionCall","src":"2556:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2548:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2590:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2601:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2583:6:25"},"nodeType":"YulFunctionCall","src":"2583:25:25"},"nodeType":"YulExpressionStatement","src":"2583:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2628:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2639:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2624:3:25"},"nodeType":"YulFunctionCall","src":"2624:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"2644:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2617:6:25"},"nodeType":"YulFunctionCall","src":"2617:34:25"},"nodeType":"YulExpressionStatement","src":"2617:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2499:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2529:4:25","type":""}],"src":"2409:248:25"},{"body":{"nodeType":"YulBlock","src":"2793:102:25","statements":[{"nodeType":"YulAssignment","src":"2803:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2815:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2826:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2811:3:25"},"nodeType":"YulFunctionCall","src":"2811:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2803:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2845:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2860:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2876:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2881:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2872:3:25"},"nodeType":"YulFunctionCall","src":"2872:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"2885:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2868:3:25"},"nodeType":"YulFunctionCall","src":"2868:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2856:3:25"},"nodeType":"YulFunctionCall","src":"2856:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2838:6:25"},"nodeType":"YulFunctionCall","src":"2838:51:25"},"nodeType":"YulExpressionStatement","src":"2838:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2762:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2773:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2784:4:25","type":""}],"src":"2662:233:25"},{"body":{"nodeType":"YulBlock","src":"3005:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"3051:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3060:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3063:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3053:6:25"},"nodeType":"YulFunctionCall","src":"3053:12:25"},"nodeType":"YulExpressionStatement","src":"3053:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3026:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3035:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3022:3:25"},"nodeType":"YulFunctionCall","src":"3022:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3047:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3018:3:25"},"nodeType":"YulFunctionCall","src":"3018:32:25"},"nodeType":"YulIf","src":"3015:52:25"},{"nodeType":"YulAssignment","src":"3076:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3104:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3086:17:25"},"nodeType":"YulFunctionCall","src":"3086:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3076:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3123:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3154:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3165:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3150:3:25"},"nodeType":"YulFunctionCall","src":"3150:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3137:12:25"},"nodeType":"YulFunctionCall","src":"3137:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3127:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3212:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3221:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3224:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3214:6:25"},"nodeType":"YulFunctionCall","src":"3214:12:25"},"nodeType":"YulExpressionStatement","src":"3214:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3184:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3192:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3181:2:25"},"nodeType":"YulFunctionCall","src":"3181:30:25"},"nodeType":"YulIf","src":"3178:50:25"},{"nodeType":"YulVariableDeclaration","src":"3237:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3293:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3304:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3289:3:25"},"nodeType":"YulFunctionCall","src":"3289:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3313:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3263:25:25"},"nodeType":"YulFunctionCall","src":"3263:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"3241:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"3251:8:25","type":""}]},{"nodeType":"YulAssignment","src":"3330:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3340:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3330:6:25"}]},{"nodeType":"YulAssignment","src":"3357:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3367:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3357:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2955:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2966:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2978:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2986:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2994:6:25","type":""}],"src":"2900:481:25"},{"body":{"nodeType":"YulBlock","src":"3481:92:25","statements":[{"nodeType":"YulAssignment","src":"3491:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3503:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3514:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3499:3:25"},"nodeType":"YulFunctionCall","src":"3499:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3491:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3533:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3558:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3551:6:25"},"nodeType":"YulFunctionCall","src":"3551:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3544:6:25"},"nodeType":"YulFunctionCall","src":"3544:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3526:6:25"},"nodeType":"YulFunctionCall","src":"3526:41:25"},"nodeType":"YulExpressionStatement","src":"3526:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3450:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3461:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3472:4:25","type":""}],"src":"3386:187:25"},{"body":{"nodeType":"YulBlock","src":"3631:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"3695:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3704:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3707:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3697:6:25"},"nodeType":"YulFunctionCall","src":"3697:12:25"},"nodeType":"YulExpressionStatement","src":"3697:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3654:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3665:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3680:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3685:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3676:3:25"},"nodeType":"YulFunctionCall","src":"3676:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"3689:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3672:3:25"},"nodeType":"YulFunctionCall","src":"3672:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3661:3:25"},"nodeType":"YulFunctionCall","src":"3661:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3651:2:25"},"nodeType":"YulFunctionCall","src":"3651:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3644:6:25"},"nodeType":"YulFunctionCall","src":"3644:50:25"},"nodeType":"YulIf","src":"3641:70:25"}]},"name":"validator_revert_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3620:5:25","type":""}],"src":"3578:139:25"},{"body":{"nodeType":"YulBlock","src":"3754:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3771:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3778:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3783:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3774:3:25"},"nodeType":"YulFunctionCall","src":"3774:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3764:6:25"},"nodeType":"YulFunctionCall","src":"3764:31:25"},"nodeType":"YulExpressionStatement","src":"3764:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3811:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3814:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3804:6:25"},"nodeType":"YulFunctionCall","src":"3804:15:25"},"nodeType":"YulExpressionStatement","src":"3804:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3835:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3838:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3828:6:25"},"nodeType":"YulFunctionCall","src":"3828:15:25"},"nodeType":"YulExpressionStatement","src":"3828:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3722:127:25"},{"body":{"nodeType":"YulBlock","src":"3899:230:25","statements":[{"nodeType":"YulAssignment","src":"3909:19:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3925:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3919:5:25"},"nodeType":"YulFunctionCall","src":"3919:9:25"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3909:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3937:58:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3959:6:25"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"3975:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"3981:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3971:3:25"},"nodeType":"YulFunctionCall","src":"3971:13:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3990:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3986:3:25"},"nodeType":"YulFunctionCall","src":"3986:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3967:3:25"},"nodeType":"YulFunctionCall","src":"3967:27:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3955:3:25"},"nodeType":"YulFunctionCall","src":"3955:40:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3941:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4070:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4072:16:25"},"nodeType":"YulFunctionCall","src":"4072:18:25"},"nodeType":"YulExpressionStatement","src":"4072:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4013:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"4025:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4010:2:25"},"nodeType":"YulFunctionCall","src":"4010:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4049:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4061:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4046:2:25"},"nodeType":"YulFunctionCall","src":"4046:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4007:2:25"},"nodeType":"YulFunctionCall","src":"4007:62:25"},"nodeType":"YulIf","src":"4004:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4108:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4112:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4101:6:25"},"nodeType":"YulFunctionCall","src":"4101:22:25"},"nodeType":"YulExpressionStatement","src":"4101:22:25"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"3879:4:25","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3888:6:25","type":""}],"src":"3854:275:25"},{"body":{"nodeType":"YulBlock","src":"4191:129:25","statements":[{"body":{"nodeType":"YulBlock","src":"4235:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4237:16:25"},"nodeType":"YulFunctionCall","src":"4237:18:25"},"nodeType":"YulExpressionStatement","src":"4237:18:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4207:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4215:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4204:2:25"},"nodeType":"YulFunctionCall","src":"4204:30:25"},"nodeType":"YulIf","src":"4201:56:25"},{"nodeType":"YulAssignment","src":"4266:48:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4286:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4282:3:25"},"nodeType":"YulFunctionCall","src":"4282:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4303:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4299:3:25"},"nodeType":"YulFunctionCall","src":"4299:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4278:3:25"},"nodeType":"YulFunctionCall","src":"4278:29:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4274:3:25"},"nodeType":"YulFunctionCall","src":"4274:40:25"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"4266:4:25"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"4171:6:25","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"4182:4:25","type":""}],"src":"4134:186:25"},{"body":{"nodeType":"YulBlock","src":"4377:410:25","statements":[{"body":{"nodeType":"YulBlock","src":"4426:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4435:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4438:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4428:6:25"},"nodeType":"YulFunctionCall","src":"4428:12:25"},"nodeType":"YulExpressionStatement","src":"4428:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4405:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4413:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4401:3:25"},"nodeType":"YulFunctionCall","src":"4401:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"4420:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4397:3:25"},"nodeType":"YulFunctionCall","src":"4397:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4390:6:25"},"nodeType":"YulFunctionCall","src":"4390:35:25"},"nodeType":"YulIf","src":"4387:55:25"},{"nodeType":"YulVariableDeclaration","src":"4451:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4474:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4461:12:25"},"nodeType":"YulFunctionCall","src":"4461:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4455:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4490:63:25","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4549:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"4521:27:25"},"nodeType":"YulFunctionCall","src":"4521:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4505:15:25"},"nodeType":"YulFunctionCall","src":"4505:48:25"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"4494:7:25","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4569:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4578:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4562:6:25"},"nodeType":"YulFunctionCall","src":"4562:19:25"},"nodeType":"YulExpressionStatement","src":"4562:19:25"},{"body":{"nodeType":"YulBlock","src":"4629:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4638:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4641:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4631:6:25"},"nodeType":"YulFunctionCall","src":"4631:12:25"},"nodeType":"YulExpressionStatement","src":"4631:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4604:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4612:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4600:3:25"},"nodeType":"YulFunctionCall","src":"4600:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"4617:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4596:3:25"},"nodeType":"YulFunctionCall","src":"4596:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"4624:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4593:2:25"},"nodeType":"YulFunctionCall","src":"4593:35:25"},"nodeType":"YulIf","src":"4590:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4671:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"4680:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4667:3:25"},"nodeType":"YulFunctionCall","src":"4667:18:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4691:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4699:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4687:3:25"},"nodeType":"YulFunctionCall","src":"4687:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4706:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4654:12:25"},"nodeType":"YulFunctionCall","src":"4654:55:25"},"nodeType":"YulExpressionStatement","src":"4654:55:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4733:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4742:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4729:3:25"},"nodeType":"YulFunctionCall","src":"4729:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"4747:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4725:3:25"},"nodeType":"YulFunctionCall","src":"4725:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"4754:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4718:6:25"},"nodeType":"YulFunctionCall","src":"4718:38:25"},"nodeType":"YulExpressionStatement","src":"4718:38:25"},{"nodeType":"YulAssignment","src":"4765:16:25","value":{"name":"array_1","nodeType":"YulIdentifier","src":"4774:7:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"4765:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4351:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"4359:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"4367:5:25","type":""}],"src":"4325:462:25"},{"body":{"nodeType":"YulBlock","src":"4929:556:25","statements":[{"body":{"nodeType":"YulBlock","src":"4976:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4985:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4988:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4978:6:25"},"nodeType":"YulFunctionCall","src":"4978:12:25"},"nodeType":"YulExpressionStatement","src":"4978:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4950:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4959:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4946:3:25"},"nodeType":"YulFunctionCall","src":"4946:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4971:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4942:3:25"},"nodeType":"YulFunctionCall","src":"4942:33:25"},"nodeType":"YulIf","src":"4939:53:25"},{"nodeType":"YulAssignment","src":"5001:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5029:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"5011:17:25"},"nodeType":"YulFunctionCall","src":"5011:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5001:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5048:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5078:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5089:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5074:3:25"},"nodeType":"YulFunctionCall","src":"5074:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5061:12:25"},"nodeType":"YulFunctionCall","src":"5061:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5052:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5135:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5102:32:25"},"nodeType":"YulFunctionCall","src":"5102:39:25"},"nodeType":"YulExpressionStatement","src":"5102:39:25"},{"nodeType":"YulAssignment","src":"5150:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5160:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5150:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5174:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5206:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5217:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5202:3:25"},"nodeType":"YulFunctionCall","src":"5202:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5189:12:25"},"nodeType":"YulFunctionCall","src":"5189:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5178:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5263:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5230:32:25"},"nodeType":"YulFunctionCall","src":"5230:41:25"},"nodeType":"YulExpressionStatement","src":"5230:41:25"},{"nodeType":"YulAssignment","src":"5280:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"5290:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5280:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5306:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5337:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5348:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5333:3:25"},"nodeType":"YulFunctionCall","src":"5333:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5320:12:25"},"nodeType":"YulFunctionCall","src":"5320:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5310:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"5395:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5404:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5407:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5397:6:25"},"nodeType":"YulFunctionCall","src":"5397:12:25"},"nodeType":"YulExpressionStatement","src":"5397:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5367:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"5375:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5364:2:25"},"nodeType":"YulFunctionCall","src":"5364:30:25"},"nodeType":"YulIf","src":"5361:50:25"},{"nodeType":"YulAssignment","src":"5420:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5451:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"5462:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5447:3:25"},"nodeType":"YulFunctionCall","src":"5447:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5471:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"5430:16:25"},"nodeType":"YulFunctionCall","src":"5430:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5420:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4871:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4882:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4894:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4902:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4910:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4918:6:25","type":""}],"src":"4792:693:25"},{"body":{"nodeType":"YulBlock","src":"5644:689:25","statements":[{"body":{"nodeType":"YulBlock","src":"5691:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5700:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5703:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5693:6:25"},"nodeType":"YulFunctionCall","src":"5693:12:25"},"nodeType":"YulExpressionStatement","src":"5693:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5665:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5674:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5661:3:25"},"nodeType":"YulFunctionCall","src":"5661:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5686:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5657:3:25"},"nodeType":"YulFunctionCall","src":"5657:33:25"},"nodeType":"YulIf","src":"5654:53:25"},{"nodeType":"YulVariableDeclaration","src":"5716:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5729:12:25"},"nodeType":"YulFunctionCall","src":"5729:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5720:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5794:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5761:32:25"},"nodeType":"YulFunctionCall","src":"5761:39:25"},"nodeType":"YulExpressionStatement","src":"5761:39:25"},{"nodeType":"YulAssignment","src":"5809:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5819:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5809:6:25"}]},{"nodeType":"YulAssignment","src":"5833:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5865:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5876:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5861:3:25"},"nodeType":"YulFunctionCall","src":"5861:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"5843:17:25"},"nodeType":"YulFunctionCall","src":"5843:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5833:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5889:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5921:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5932:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5917:3:25"},"nodeType":"YulFunctionCall","src":"5917:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5904:12:25"},"nodeType":"YulFunctionCall","src":"5904:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5893:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5978:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5945:32:25"},"nodeType":"YulFunctionCall","src":"5945:41:25"},"nodeType":"YulExpressionStatement","src":"5945:41:25"},{"nodeType":"YulAssignment","src":"5995:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6005:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5995:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6021:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6053:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6064:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6049:3:25"},"nodeType":"YulFunctionCall","src":"6049:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6036:12:25"},"nodeType":"YulFunctionCall","src":"6036:32:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"6025:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"6110:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"6077:32:25"},"nodeType":"YulFunctionCall","src":"6077:41:25"},"nodeType":"YulExpressionStatement","src":"6077:41:25"},{"nodeType":"YulAssignment","src":"6127:17:25","value":{"name":"value_2","nodeType":"YulIdentifier","src":"6137:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6127:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6153:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6184:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6195:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6180:3:25"},"nodeType":"YulFunctionCall","src":"6180:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6167:12:25"},"nodeType":"YulFunctionCall","src":"6167:33:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6157:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6243:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6252:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6255:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6245:6:25"},"nodeType":"YulFunctionCall","src":"6245:12:25"},"nodeType":"YulExpressionStatement","src":"6245:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6215:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6212:2:25"},"nodeType":"YulFunctionCall","src":"6212:30:25"},"nodeType":"YulIf","src":"6209:50:25"},{"nodeType":"YulAssignment","src":"6268:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6299:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6310:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6295:3:25"},"nodeType":"YulFunctionCall","src":"6295:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6319:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6278:16:25"},"nodeType":"YulFunctionCall","src":"6278:49:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6268:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5578:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5589:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5601:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5617:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5625:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5633:6:25","type":""}],"src":"5490:843:25"},{"body":{"nodeType":"YulBlock","src":"6461:102:25","statements":[{"nodeType":"YulAssignment","src":"6471:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6483:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6494:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6479:3:25"},"nodeType":"YulFunctionCall","src":"6479:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6471:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6513:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6528:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6544:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6549:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6540:3:25"},"nodeType":"YulFunctionCall","src":"6540:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6553:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6536:3:25"},"nodeType":"YulFunctionCall","src":"6536:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6524:3:25"},"nodeType":"YulFunctionCall","src":"6524:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6506:6:25"},"nodeType":"YulFunctionCall","src":"6506:51:25"},"nodeType":"YulExpressionStatement","src":"6506:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6430:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6441:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6452:4:25","type":""}],"src":"6338:225:25"},{"body":{"nodeType":"YulBlock","src":"6679:353:25","statements":[{"body":{"nodeType":"YulBlock","src":"6725:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6734:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6737:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6727:6:25"},"nodeType":"YulFunctionCall","src":"6727:12:25"},"nodeType":"YulExpressionStatement","src":"6727:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6700:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"6709:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6696:3:25"},"nodeType":"YulFunctionCall","src":"6696:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"6721:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6692:3:25"},"nodeType":"YulFunctionCall","src":"6692:32:25"},"nodeType":"YulIf","src":"6689:52:25"},{"nodeType":"YulAssignment","src":"6750:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6778:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6760:17:25"},"nodeType":"YulFunctionCall","src":"6760:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6750:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6797:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6828:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6839:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6824:3:25"},"nodeType":"YulFunctionCall","src":"6824:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6811:12:25"},"nodeType":"YulFunctionCall","src":"6811:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6801:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6886:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6895:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6898:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6888:6:25"},"nodeType":"YulFunctionCall","src":"6888:12:25"},"nodeType":"YulExpressionStatement","src":"6888:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6858:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6866:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6855:2:25"},"nodeType":"YulFunctionCall","src":"6855:30:25"},"nodeType":"YulIf","src":"6852:50:25"},{"nodeType":"YulAssignment","src":"6911:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6942:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6953:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6938:3:25"},"nodeType":"YulFunctionCall","src":"6938:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6962:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6921:16:25"},"nodeType":"YulFunctionCall","src":"6921:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6911:6:25"}]},{"nodeType":"YulAssignment","src":"6979:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7011:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7022:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"6989:17:25"},"nodeType":"YulFunctionCall","src":"6989:37:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6979:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6629:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6640:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6652:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6660:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6668:6:25","type":""}],"src":"6568:464:25"},{"body":{"nodeType":"YulBlock","src":"7138:76:25","statements":[{"nodeType":"YulAssignment","src":"7148:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7160:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7171:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:25"},"nodeType":"YulFunctionCall","src":"7156:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7148:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7190:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"7201:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7183:6:25"},"nodeType":"YulFunctionCall","src":"7183:25:25"},"nodeType":"YulExpressionStatement","src":"7183:25:25"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7107:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7118:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7129:4:25","type":""}],"src":"7037:177:25"},{"body":{"nodeType":"YulBlock","src":"7272:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"7282:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"7291:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7286:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7351:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7376:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"7381:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7372:3:25"},"nodeType":"YulFunctionCall","src":"7372:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7395:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"7400:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7391:3:25"},"nodeType":"YulFunctionCall","src":"7391:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7385:5:25"},"nodeType":"YulFunctionCall","src":"7385:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7365:6:25"},"nodeType":"YulFunctionCall","src":"7365:39:25"},"nodeType":"YulExpressionStatement","src":"7365:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7312:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"7315:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7309:2:25"},"nodeType":"YulFunctionCall","src":"7309:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7323:19:25","statements":[{"nodeType":"YulAssignment","src":"7325:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7334:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"7337:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7330:3:25"},"nodeType":"YulFunctionCall","src":"7330:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7325:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"7305:3:25","statements":[]},"src":"7301:113:25"},{"body":{"nodeType":"YulBlock","src":"7440:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7453:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"7458:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7449:3:25"},"nodeType":"YulFunctionCall","src":"7449:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"7467:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7442:6:25"},"nodeType":"YulFunctionCall","src":"7442:27:25"},"nodeType":"YulExpressionStatement","src":"7442:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7429:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"7432:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7426:2:25"},"nodeType":"YulFunctionCall","src":"7426:13:25"},"nodeType":"YulIf","src":"7423:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"7250:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"7255:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"7260:6:25","type":""}],"src":"7219:258:25"},{"body":{"nodeType":"YulBlock","src":"7531:208:25","statements":[{"nodeType":"YulVariableDeclaration","src":"7541:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7561:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7555:5:25"},"nodeType":"YulFunctionCall","src":"7555:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7545:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7583:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"7588:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7576:6:25"},"nodeType":"YulFunctionCall","src":"7576:19:25"},"nodeType":"YulExpressionStatement","src":"7576:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7630:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"7637:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7626:3:25"},"nodeType":"YulFunctionCall","src":"7626:16:25"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7648:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"7653:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7644:3:25"},"nodeType":"YulFunctionCall","src":"7644:14:25"},{"name":"length","nodeType":"YulIdentifier","src":"7660:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7604:21:25"},"nodeType":"YulFunctionCall","src":"7604:63:25"},"nodeType":"YulExpressionStatement","src":"7604:63:25"},{"nodeType":"YulAssignment","src":"7676:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7691:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7704:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7712:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7700:3:25"},"nodeType":"YulFunctionCall","src":"7700:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7721:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7717:3:25"},"nodeType":"YulFunctionCall","src":"7717:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7696:3:25"},"nodeType":"YulFunctionCall","src":"7696:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7687:3:25"},"nodeType":"YulFunctionCall","src":"7687:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"7728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7683:3:25"},"nodeType":"YulFunctionCall","src":"7683:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7676:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7508:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7515:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7523:3:25","type":""}],"src":"7482:257:25"},{"body":{"nodeType":"YulBlock","src":"7863:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7880:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7891:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7873:6:25"},"nodeType":"YulFunctionCall","src":"7873:21:25"},"nodeType":"YulExpressionStatement","src":"7873:21:25"},{"nodeType":"YulAssignment","src":"7903:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7928:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7951:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7936:3:25"},"nodeType":"YulFunctionCall","src":"7936:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7911:16:25"},"nodeType":"YulFunctionCall","src":"7911:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7903:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7832:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7843:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7854:4:25","type":""}],"src":"7744:217:25"},{"body":{"nodeType":"YulBlock","src":"8051:171:25","statements":[{"body":{"nodeType":"YulBlock","src":"8097:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8106:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8109:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8099:6:25"},"nodeType":"YulFunctionCall","src":"8099:12:25"},"nodeType":"YulExpressionStatement","src":"8099:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8072:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8081:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8068:3:25"},"nodeType":"YulFunctionCall","src":"8068:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8093:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8064:3:25"},"nodeType":"YulFunctionCall","src":"8064:32:25"},"nodeType":"YulIf","src":"8061:52:25"},{"nodeType":"YulAssignment","src":"8122:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8150:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"8132:17:25"},"nodeType":"YulFunctionCall","src":"8132:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8122:6:25"}]},{"nodeType":"YulAssignment","src":"8169:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8201:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8212:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8197:3:25"},"nodeType":"YulFunctionCall","src":"8197:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"8179:17:25"},"nodeType":"YulFunctionCall","src":"8179:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8169:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8009:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8020:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8032:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8040:6:25","type":""}],"src":"7966:256:25"},{"body":{"nodeType":"YulBlock","src":"8328:76:25","statements":[{"nodeType":"YulAssignment","src":"8338:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8350:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8361:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8346:3:25"},"nodeType":"YulFunctionCall","src":"8346:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8338:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8380:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8391:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8373:6:25"},"nodeType":"YulFunctionCall","src":"8373:25:25"},"nodeType":"YulExpressionStatement","src":"8373:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8297:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8308:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8319:4:25","type":""}],"src":"8227:177:25"},{"body":{"nodeType":"YulBlock","src":"8510:102:25","statements":[{"nodeType":"YulAssignment","src":"8520:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8543:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8528:3:25"},"nodeType":"YulFunctionCall","src":"8528:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8520:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8562:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8577:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8593:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8598:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8589:3:25"},"nodeType":"YulFunctionCall","src":"8589:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"8602:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8585:3:25"},"nodeType":"YulFunctionCall","src":"8585:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8573:3:25"},"nodeType":"YulFunctionCall","src":"8573:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8555:6:25"},"nodeType":"YulFunctionCall","src":"8555:51:25"},"nodeType":"YulExpressionStatement","src":"8555:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8479:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8490:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8501:4:25","type":""}],"src":"8409:203:25"},{"body":{"nodeType":"YulBlock","src":"8744:102:25","statements":[{"nodeType":"YulAssignment","src":"8754:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8777:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8762:3:25"},"nodeType":"YulFunctionCall","src":"8762:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8754:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8796:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8811:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8827:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8832:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8823:3:25"},"nodeType":"YulFunctionCall","src":"8823:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"8836:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8819:3:25"},"nodeType":"YulFunctionCall","src":"8819:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8807:3:25"},"nodeType":"YulFunctionCall","src":"8807:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8789:6:25"},"nodeType":"YulFunctionCall","src":"8789:51:25"},"nodeType":"YulExpressionStatement","src":"8789:51:25"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8713:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8724:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8735:4:25","type":""}],"src":"8617:229:25"},{"body":{"nodeType":"YulBlock","src":"8921:185:25","statements":[{"body":{"nodeType":"YulBlock","src":"8967:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8976:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8979:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8969:6:25"},"nodeType":"YulFunctionCall","src":"8969:12:25"},"nodeType":"YulExpressionStatement","src":"8969:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8938:3:25"},"nodeType":"YulFunctionCall","src":"8938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8963:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8934:3:25"},"nodeType":"YulFunctionCall","src":"8934:32:25"},"nodeType":"YulIf","src":"8931:52:25"},{"nodeType":"YulVariableDeclaration","src":"8992:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9018:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9005:12:25"},"nodeType":"YulFunctionCall","src":"9005:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8996:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9070:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"9037:32:25"},"nodeType":"YulFunctionCall","src":"9037:39:25"},"nodeType":"YulExpressionStatement","src":"9037:39:25"},{"nodeType":"YulAssignment","src":"9085:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"9095:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9085:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8887:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8898:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8910:6:25","type":""}],"src":"8851:255:25"},{"body":{"nodeType":"YulBlock","src":"9249:484:25","statements":[{"body":{"nodeType":"YulBlock","src":"9296:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9305:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9308:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9298:6:25"},"nodeType":"YulFunctionCall","src":"9298:12:25"},"nodeType":"YulExpressionStatement","src":"9298:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9270:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9279:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9266:3:25"},"nodeType":"YulFunctionCall","src":"9266:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9291:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9262:3:25"},"nodeType":"YulFunctionCall","src":"9262:33:25"},"nodeType":"YulIf","src":"9259:53:25"},{"nodeType":"YulAssignment","src":"9321:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9349:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9331:17:25"},"nodeType":"YulFunctionCall","src":"9331:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9321:6:25"}]},{"nodeType":"YulAssignment","src":"9368:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9411:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9396:3:25"},"nodeType":"YulFunctionCall","src":"9396:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9378:17:25"},"nodeType":"YulFunctionCall","src":"9378:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9368:6:25"}]},{"nodeType":"YulAssignment","src":"9424:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9451:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9462:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9447:3:25"},"nodeType":"YulFunctionCall","src":"9447:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9434:12:25"},"nodeType":"YulFunctionCall","src":"9434:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9424:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9475:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9506:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9517:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9502:3:25"},"nodeType":"YulFunctionCall","src":"9502:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9489:12:25"},"nodeType":"YulFunctionCall","src":"9489:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9479:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9564:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9576:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9566:6:25"},"nodeType":"YulFunctionCall","src":"9566:12:25"},"nodeType":"YulExpressionStatement","src":"9566:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9536:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"9544:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9533:2:25"},"nodeType":"YulFunctionCall","src":"9533:30:25"},"nodeType":"YulIf","src":"9530:50:25"},{"nodeType":"YulVariableDeclaration","src":"9589:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9645:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9656:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9641:3:25"},"nodeType":"YulFunctionCall","src":"9641:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9665:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9615:25:25"},"nodeType":"YulFunctionCall","src":"9615:58:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9593:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9603:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9682:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9692:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9682:6:25"}]},{"nodeType":"YulAssignment","src":"9709:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9719:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9709:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9183:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9194:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9206:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9214:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9222:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9230:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9238:6:25","type":""}],"src":"9111:622:25"},{"body":{"nodeType":"YulBlock","src":"9840:222:25","statements":[{"body":{"nodeType":"YulBlock","src":"9886:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9895:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9888:6:25"},"nodeType":"YulFunctionCall","src":"9888:12:25"},"nodeType":"YulExpressionStatement","src":"9888:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9861:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9870:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9857:3:25"},"nodeType":"YulFunctionCall","src":"9857:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9882:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9853:3:25"},"nodeType":"YulFunctionCall","src":"9853:32:25"},"nodeType":"YulIf","src":"9850:52:25"},{"nodeType":"YulAssignment","src":"9911:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9939:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9921:17:25"},"nodeType":"YulFunctionCall","src":"9921:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9911:6:25"}]},{"nodeType":"YulAssignment","src":"9958:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9990:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10001:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9986:3:25"},"nodeType":"YulFunctionCall","src":"9986:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9968:17:25"},"nodeType":"YulFunctionCall","src":"9968:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9958:6:25"}]},{"nodeType":"YulAssignment","src":"10014:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10041:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10052:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10037:3:25"},"nodeType":"YulFunctionCall","src":"10037:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10024:12:25"},"nodeType":"YulFunctionCall","src":"10024:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10014:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9790:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9801:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9813:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9821:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9829:6:25","type":""}],"src":"9738:324:25"},{"body":{"nodeType":"YulBlock","src":"10186:349:25","statements":[{"body":{"nodeType":"YulBlock","src":"10233:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10242:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10245:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10235:6:25"},"nodeType":"YulFunctionCall","src":"10235:12:25"},"nodeType":"YulExpressionStatement","src":"10235:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10207:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10216:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10203:3:25"},"nodeType":"YulFunctionCall","src":"10203:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10228:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10199:3:25"},"nodeType":"YulFunctionCall","src":"10199:33:25"},"nodeType":"YulIf","src":"10196:53:25"},{"nodeType":"YulAssignment","src":"10258:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10286:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10268:17:25"},"nodeType":"YulFunctionCall","src":"10268:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10258:6:25"}]},{"nodeType":"YulAssignment","src":"10305:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10337:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10348:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10333:3:25"},"nodeType":"YulFunctionCall","src":"10333:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10315:17:25"},"nodeType":"YulFunctionCall","src":"10315:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10305:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10361:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10391:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10402:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10387:3:25"},"nodeType":"YulFunctionCall","src":"10387:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10374:12:25"},"nodeType":"YulFunctionCall","src":"10374:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10365:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10448:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"10415:32:25"},"nodeType":"YulFunctionCall","src":"10415:39:25"},"nodeType":"YulExpressionStatement","src":"10415:39:25"},{"nodeType":"YulAssignment","src":"10463:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10473:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10463:6:25"}]},{"nodeType":"YulAssignment","src":"10487:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10514:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10525:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10510:3:25"},"nodeType":"YulFunctionCall","src":"10510:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10497:12:25"},"nodeType":"YulFunctionCall","src":"10497:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10487:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10128:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10139:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10151:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10159:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10167:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10175:6:25","type":""}],"src":"10067:468:25"},{"body":{"nodeType":"YulBlock","src":"10714:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10731:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10742:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10724:6:25"},"nodeType":"YulFunctionCall","src":"10724:21:25"},"nodeType":"YulExpressionStatement","src":"10724:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10776:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10761:3:25"},"nodeType":"YulFunctionCall","src":"10761:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"10781:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10754:6:25"},"nodeType":"YulFunctionCall","src":"10754:30:25"},"nodeType":"YulExpressionStatement","src":"10754:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10804:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10815:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10800:3:25"},"nodeType":"YulFunctionCall","src":"10800:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"10820:32:25","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10793:6:25"},"nodeType":"YulFunctionCall","src":"10793:60:25"},"nodeType":"YulExpressionStatement","src":"10793:60:25"},{"nodeType":"YulAssignment","src":"10862:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10874:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10885:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10870:3:25"},"nodeType":"YulFunctionCall","src":"10870:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10862:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10691:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10705:4:25","type":""}],"src":"10540:354:25"},{"body":{"nodeType":"YulBlock","src":"10954:325:25","statements":[{"nodeType":"YulAssignment","src":"10964:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10978:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"10981:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10974:3:25"},"nodeType":"YulFunctionCall","src":"10974:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10964:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10995:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"11025:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"11031:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11021:3:25"},"nodeType":"YulFunctionCall","src":"11021:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"10999:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11072:31:25","statements":[{"nodeType":"YulAssignment","src":"11074:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11088:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11096:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11084:3:25"},"nodeType":"YulFunctionCall","src":"11084:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"11074:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"11052:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11045:6:25"},"nodeType":"YulFunctionCall","src":"11045:26:25"},"nodeType":"YulIf","src":"11042:61:25"},{"body":{"nodeType":"YulBlock","src":"11162:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11183:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11190:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"11195:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11186:3:25"},"nodeType":"YulFunctionCall","src":"11186:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11176:6:25"},"nodeType":"YulFunctionCall","src":"11176:31:25"},"nodeType":"YulExpressionStatement","src":"11176:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11227:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11230:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11220:6:25"},"nodeType":"YulFunctionCall","src":"11220:15:25"},"nodeType":"YulExpressionStatement","src":"11220:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11255:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11258:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11248:6:25"},"nodeType":"YulFunctionCall","src":"11248:15:25"},"nodeType":"YulExpressionStatement","src":"11248:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"11118:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11141:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11149:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11138:2:25"},"nodeType":"YulFunctionCall","src":"11138:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11115:2:25"},"nodeType":"YulFunctionCall","src":"11115:38:25"},"nodeType":"YulIf","src":"11112:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10934:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10943:6:25","type":""}],"src":"10899:380:25"},{"body":{"nodeType":"YulBlock","src":"11431:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11454:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"11459:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"11467:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11441:12:25"},"nodeType":"YulFunctionCall","src":"11441:33:25"},"nodeType":"YulExpressionStatement","src":"11441:33:25"},{"nodeType":"YulVariableDeclaration","src":"11483:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11497:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"11502:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11493:3:25"},"nodeType":"YulFunctionCall","src":"11493:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11487:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11525:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"11529:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11518:6:25"},"nodeType":"YulFunctionCall","src":"11518:13:25"},"nodeType":"YulExpressionStatement","src":"11518:13:25"},{"nodeType":"YulAssignment","src":"11540:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"11547:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11540:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11399:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11404:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11412:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11423:3:25","type":""}],"src":"11284:271:25"},{"body":{"nodeType":"YulBlock","src":"11734:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11751:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11762:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11744:6:25"},"nodeType":"YulFunctionCall","src":"11744:21:25"},"nodeType":"YulExpressionStatement","src":"11744:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11785:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11796:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11781:3:25"},"nodeType":"YulFunctionCall","src":"11781:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11801:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11774:6:25"},"nodeType":"YulFunctionCall","src":"11774:30:25"},"nodeType":"YulExpressionStatement","src":"11774:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11824:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11835:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11820:3:25"},"nodeType":"YulFunctionCall","src":"11820:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nodeType":"YulLiteral","src":"11840:34:25","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11813:6:25"},"nodeType":"YulFunctionCall","src":"11813:62:25"},"nodeType":"YulExpressionStatement","src":"11813:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11906:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11891:3:25"},"nodeType":"YulFunctionCall","src":"11891:18:25"},{"hexValue":"6e7472616374","kind":"string","nodeType":"YulLiteral","src":"11911:8:25","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11884:6:25"},"nodeType":"YulFunctionCall","src":"11884:36:25"},"nodeType":"YulExpressionStatement","src":"11884:36:25"},{"nodeType":"YulAssignment","src":"11929:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11937:3:25"},"nodeType":"YulFunctionCall","src":"11937:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11929:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11711:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11725:4:25","type":""}],"src":"11560:402:25"},{"body":{"nodeType":"YulBlock","src":"12066:89:25","statements":[{"nodeType":"YulAssignment","src":"12076:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12088:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12099:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12084:3:25"},"nodeType":"YulFunctionCall","src":"12084:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12076:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12118:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12133:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"12141:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12129:3:25"},"nodeType":"YulFunctionCall","src":"12129:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12111:6:25"},"nodeType":"YulFunctionCall","src":"12111:38:25"},"nodeType":"YulExpressionStatement","src":"12111:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12035:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12046:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12057:4:25","type":""}],"src":"11967:188:25"},{"body":{"nodeType":"YulBlock","src":"12209:241:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12226:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12242:2:25","type":"","value":"15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12252:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12246:5:25"},"nodeType":"YulFunctionCall","src":"12246:12:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"12231:10:25"},"nodeType":"YulFunctionCall","src":"12231:28:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12219:6:25"},"nodeType":"YulFunctionCall","src":"12219:41:25"},"nodeType":"YulExpressionStatement","src":"12219:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12280:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12285:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12276:3:25"},"nodeType":"YulFunctionCall","src":"12276:14:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12303:2:25","type":"","value":"15"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12317:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12324:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12313:3:25"},"nodeType":"YulFunctionCall","src":"12313:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12307:5:25"},"nodeType":"YulFunctionCall","src":"12307:23:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"12292:10:25"},"nodeType":"YulFunctionCall","src":"12292:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12269:6:25"},"nodeType":"YulFunctionCall","src":"12269:63:25"},"nodeType":"YulExpressionStatement","src":"12269:63:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12352:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12357:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12348:3:25"},"nodeType":"YulFunctionCall","src":"12348:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12374:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12381:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12370:3:25"},"nodeType":"YulFunctionCall","src":"12370:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12364:5:25"},"nodeType":"YulFunctionCall","src":"12364:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12341:6:25"},"nodeType":"YulFunctionCall","src":"12341:47:25"},"nodeType":"YulExpressionStatement","src":"12341:47:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12408:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12413:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12404:3:25"},"nodeType":"YulFunctionCall","src":"12404:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12430:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12437:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12426:3:25"},"nodeType":"YulFunctionCall","src":"12426:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12420:5:25"},"nodeType":"YulFunctionCall","src":"12420:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12397:6:25"},"nodeType":"YulFunctionCall","src":"12397:47:25"},"nodeType":"YulExpressionStatement","src":"12397:47:25"}]},"name":"abi_encode_struct_Point","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12193:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12200:3:25","type":""}],"src":"12160:290:25"},{"body":{"nodeType":"YulBlock","src":"12628:150:25","statements":[{"nodeType":"YulAssignment","src":"12638:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12650:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12661:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12646:3:25"},"nodeType":"YulFunctionCall","src":"12646:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12638:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12681:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12696:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"12704:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12692:3:25"},"nodeType":"YulFunctionCall","src":"12692:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12674:6:25"},"nodeType":"YulFunctionCall","src":"12674:38:25"},"nodeType":"YulExpressionStatement","src":"12674:38:25"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12745:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12757:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12768:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12753:3:25"},"nodeType":"YulFunctionCall","src":"12753:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"12721:23:25"},"nodeType":"YulFunctionCall","src":"12721:51:25"},"nodeType":"YulExpressionStatement","src":"12721:51:25"}]},"name":"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12589:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12600:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12608:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12619:4:25","type":""}],"src":"12455:323:25"},{"body":{"nodeType":"YulBlock","src":"12849:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12866:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12871:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12859:6:25"},"nodeType":"YulFunctionCall","src":"12859:19:25"},"nodeType":"YulExpressionStatement","src":"12859:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12904:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12909:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12900:3:25"},"nodeType":"YulFunctionCall","src":"12900:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"12916:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"12923:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"12887:12:25"},"nodeType":"YulFunctionCall","src":"12887:43:25"},"nodeType":"YulExpressionStatement","src":"12887:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12954:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12959:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12950:3:25"},"nodeType":"YulFunctionCall","src":"12950:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"12968:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12946:3:25"},"nodeType":"YulFunctionCall","src":"12946:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"12975:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12939:6:25"},"nodeType":"YulFunctionCall","src":"12939:38:25"},"nodeType":"YulExpressionStatement","src":"12939:38:25"},{"nodeType":"YulAssignment","src":"12986:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13001:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13014:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13022:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13010:3:25"},"nodeType":"YulFunctionCall","src":"13010:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13031:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13027:3:25"},"nodeType":"YulFunctionCall","src":"13027:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13006:3:25"},"nodeType":"YulFunctionCall","src":"13006:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12997:3:25"},"nodeType":"YulFunctionCall","src":"12997:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"13038:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12993:3:25"},"nodeType":"YulFunctionCall","src":"12993:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12986:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"12818:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"12825:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12833:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12841:3:25","type":""}],"src":"12783:266:25"},{"body":{"nodeType":"YulBlock","src":"13305:416:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13322:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13337:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13345:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13333:3:25"},"nodeType":"YulFunctionCall","src":"13333:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13315:6:25"},"nodeType":"YulFunctionCall","src":"13315:38:25"},"nodeType":"YulExpressionStatement","src":"13315:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13373:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13384:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13369:3:25"},"nodeType":"YulFunctionCall","src":"13369:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13393:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13409:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13414:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13405:3:25"},"nodeType":"YulFunctionCall","src":"13405:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"13418:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13401:3:25"},"nodeType":"YulFunctionCall","src":"13401:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13389:3:25"},"nodeType":"YulFunctionCall","src":"13389:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13362:6:25"},"nodeType":"YulFunctionCall","src":"13362:60:25"},"nodeType":"YulExpressionStatement","src":"13362:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13442:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13453:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13438:3:25"},"nodeType":"YulFunctionCall","src":"13438:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13458:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13431:6:25"},"nodeType":"YulFunctionCall","src":"13431:31:25"},"nodeType":"YulExpressionStatement","src":"13431:31:25"},{"nodeType":"YulVariableDeclaration","src":"13471:59:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13502:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13514:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13525:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13510:3:25"},"nodeType":"YulFunctionCall","src":"13510:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13485:16:25"},"nodeType":"YulFunctionCall","src":"13485:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"13475:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13550:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13561:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13546:3:25"},"nodeType":"YulFunctionCall","src":"13546:18:25"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13580:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13573:6:25"},"nodeType":"YulFunctionCall","src":"13573:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13566:6:25"},"nodeType":"YulFunctionCall","src":"13566:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13539:6:25"},"nodeType":"YulFunctionCall","src":"13539:50:25"},"nodeType":"YulExpressionStatement","src":"13539:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13609:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13620:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13605:3:25"},"nodeType":"YulFunctionCall","src":"13605:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13630:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13638:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13626:3:25"},"nodeType":"YulFunctionCall","src":"13626:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13598:6:25"},"nodeType":"YulFunctionCall","src":"13598:51:25"},"nodeType":"YulExpressionStatement","src":"13598:51:25"},{"nodeType":"YulAssignment","src":"13658:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"13692:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"13700:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"13708:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13666:25:25"},"nodeType":"YulFunctionCall","src":"13666:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13658:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13234:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13245:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13253:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13261:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13269:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13277:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13285:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13296:4:25","type":""}],"src":"13054:667:25"},{"body":{"nodeType":"YulBlock","src":"13824:147:25","statements":[{"body":{"nodeType":"YulBlock","src":"13870:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13879:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13882:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13872:6:25"},"nodeType":"YulFunctionCall","src":"13872:12:25"},"nodeType":"YulExpressionStatement","src":"13872:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13845:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13854:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13841:3:25"},"nodeType":"YulFunctionCall","src":"13841:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13866:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13837:3:25"},"nodeType":"YulFunctionCall","src":"13837:32:25"},"nodeType":"YulIf","src":"13834:52:25"},{"nodeType":"YulAssignment","src":"13895:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13911:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13905:5:25"},"nodeType":"YulFunctionCall","src":"13905:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13895:6:25"}]},{"nodeType":"YulAssignment","src":"13930:35:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13950:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13961:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13946:3:25"},"nodeType":"YulFunctionCall","src":"13946:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13940:5:25"},"nodeType":"YulFunctionCall","src":"13940:25:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13930:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13782:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13793:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13805:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13813:6:25","type":""}],"src":"13726:245:25"},{"body":{"nodeType":"YulBlock","src":"14057:103:25","statements":[{"body":{"nodeType":"YulBlock","src":"14103:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14112:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14115:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14105:6:25"},"nodeType":"YulFunctionCall","src":"14105:12:25"},"nodeType":"YulExpressionStatement","src":"14105:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14078:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"14087:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14074:3:25"},"nodeType":"YulFunctionCall","src":"14074:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"14099:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14070:3:25"},"nodeType":"YulFunctionCall","src":"14070:32:25"},"nodeType":"YulIf","src":"14067:52:25"},{"nodeType":"YulAssignment","src":"14128:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14144:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14138:5:25"},"nodeType":"YulFunctionCall","src":"14138:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14128:6:25"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14023:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14034:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14046:6:25","type":""}],"src":"13976:184:25"},{"body":{"nodeType":"YulBlock","src":"14224:107:25","statements":[{"nodeType":"YulAssignment","src":"14234:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14249:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14243:5:25"},"nodeType":"YulFunctionCall","src":"14243:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14234:5:25"}]},{"body":{"nodeType":"YulBlock","src":"14309:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14318:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14321:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14311:6:25"},"nodeType":"YulFunctionCall","src":"14311:12:25"},"nodeType":"YulExpressionStatement","src":"14311:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14278:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:2:25","type":"","value":"15"},{"name":"value","nodeType":"YulIdentifier","src":"14300:5:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"14285:10:25"},"nodeType":"YulFunctionCall","src":"14285:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14275:2:25"},"nodeType":"YulFunctionCall","src":"14275:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14268:6:25"},"nodeType":"YulFunctionCall","src":"14268:40:25"},"nodeType":"YulIf","src":"14265:60:25"}]},"name":"abi_decode_int128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"14203:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"14214:5:25","type":""}],"src":"14165:166:25"},{"body":{"nodeType":"YulBlock","src":"14440:561:25","statements":[{"body":{"nodeType":"YulBlock","src":"14487:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14496:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14499:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14489:6:25"},"nodeType":"YulFunctionCall","src":"14489:12:25"},"nodeType":"YulExpressionStatement","src":"14489:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14461:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"14470:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14457:3:25"},"nodeType":"YulFunctionCall","src":"14457:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"14482:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14453:3:25"},"nodeType":"YulFunctionCall","src":"14453:33:25"},"nodeType":"YulIf","src":"14450:53:25"},{"nodeType":"YulVariableDeclaration","src":"14512:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14532:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14526:5:25"},"nodeType":"YulFunctionCall","src":"14526:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"14516:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14544:34:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14566:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14574:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14562:3:25"},"nodeType":"YulFunctionCall","src":"14562:16:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"14548:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14653:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"14655:16:25"},"nodeType":"YulFunctionCall","src":"14655:18:25"},"nodeType":"YulExpressionStatement","src":"14655:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14596:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"14608:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14593:2:25"},"nodeType":"YulFunctionCall","src":"14593:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14632:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"14644:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14629:2:25"},"nodeType":"YulFunctionCall","src":"14629:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"14590:2:25"},"nodeType":"YulFunctionCall","src":"14590:62:25"},"nodeType":"YulIf","src":"14587:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14695:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:22:25"},"nodeType":"YulExpressionStatement","src":"14684:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14722:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14759:9:25"}],"functionName":{"name":"abi_decode_int128_fromMemory","nodeType":"YulIdentifier","src":"14730:28:25"},"nodeType":"YulFunctionCall","src":"14730:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14715:6:25"},"nodeType":"YulFunctionCall","src":"14715:55:25"},"nodeType":"YulExpressionStatement","src":"14715:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14790:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14798:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14786:3:25"},"nodeType":"YulFunctionCall","src":"14786:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14836:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14847:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14832:3:25"},"nodeType":"YulFunctionCall","src":"14832:18:25"}],"functionName":{"name":"abi_decode_int128_fromMemory","nodeType":"YulIdentifier","src":"14803:28:25"},"nodeType":"YulFunctionCall","src":"14803:48:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14779:6:25"},"nodeType":"YulFunctionCall","src":"14779:73:25"},"nodeType":"YulExpressionStatement","src":"14779:73:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14872:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14880:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14868:3:25"},"nodeType":"YulFunctionCall","src":"14868:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14906:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14891:3:25"},"nodeType":"YulFunctionCall","src":"14891:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14885:5:25"},"nodeType":"YulFunctionCall","src":"14885:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14861:6:25"},"nodeType":"YulFunctionCall","src":"14861:50:25"},"nodeType":"YulExpressionStatement","src":"14861:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14931:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14939:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14927:3:25"},"nodeType":"YulFunctionCall","src":"14927:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14954:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14965:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14950:3:25"},"nodeType":"YulFunctionCall","src":"14950:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14944:5:25"},"nodeType":"YulFunctionCall","src":"14944:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14920:6:25"},"nodeType":"YulFunctionCall","src":"14920:50:25"},"nodeType":"YulExpressionStatement","src":"14920:50:25"},{"nodeType":"YulAssignment","src":"14979:16:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"14989:6:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14979:6:25"}]}]},"name":"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14406:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14417:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14429:6:25","type":""}],"src":"14336:665:25"},{"body":{"nodeType":"YulBlock","src":"15161:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15178:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15193:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15201:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15189:3:25"},"nodeType":"YulFunctionCall","src":"15189:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15171:6:25"},"nodeType":"YulFunctionCall","src":"15171:38:25"},"nodeType":"YulExpressionStatement","src":"15171:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15229:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15240:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15225:3:25"},"nodeType":"YulFunctionCall","src":"15225:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15245:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15218:6:25"},"nodeType":"YulFunctionCall","src":"15218:30:25"},"nodeType":"YulExpressionStatement","src":"15218:30:25"},{"nodeType":"YulAssignment","src":"15257:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15291:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15299:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15311:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15322:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15307:3:25"},"nodeType":"YulFunctionCall","src":"15307:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15265:25:25"},"nodeType":"YulFunctionCall","src":"15265:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15257:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15114:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15125:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15133:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15141:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15152:4:25","type":""}],"src":"15006:326:25"},{"body":{"nodeType":"YulBlock","src":"15466:145:25","statements":[{"nodeType":"YulAssignment","src":"15476:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15488:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15499:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15484:3:25"},"nodeType":"YulFunctionCall","src":"15484:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15476:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15518:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15533:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15549:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15554:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15545:3:25"},"nodeType":"YulFunctionCall","src":"15545:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"15558:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15541:3:25"},"nodeType":"YulFunctionCall","src":"15541:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15529:3:25"},"nodeType":"YulFunctionCall","src":"15529:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15511:6:25"},"nodeType":"YulFunctionCall","src":"15511:51:25"},"nodeType":"YulExpressionStatement","src":"15511:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15582:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15593:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15578:3:25"},"nodeType":"YulFunctionCall","src":"15578:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"15598:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15571:6:25"},"nodeType":"YulFunctionCall","src":"15571:34:25"},"nodeType":"YulExpressionStatement","src":"15571:34:25"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15427:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15438:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15446:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15457:4:25","type":""}],"src":"15337:274:25"},{"body":{"nodeType":"YulBlock","src":"15743:158:25","statements":[{"nodeType":"YulAssignment","src":"15753:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15776:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15761:3:25"},"nodeType":"YulFunctionCall","src":"15761:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15753:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15795:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15810:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15826:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15831:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15822:3:25"},"nodeType":"YulFunctionCall","src":"15822:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"15835:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15818:3:25"},"nodeType":"YulFunctionCall","src":"15818:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15806:3:25"},"nodeType":"YulFunctionCall","src":"15806:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15788:6:25"},"nodeType":"YulFunctionCall","src":"15788:51:25"},"nodeType":"YulExpressionStatement","src":"15788:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15859:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15870:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15855:3:25"},"nodeType":"YulFunctionCall","src":"15855:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15879:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15887:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15875:3:25"},"nodeType":"YulFunctionCall","src":"15875:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15848:6:25"},"nodeType":"YulFunctionCall","src":"15848:47:25"},"nodeType":"YulExpressionStatement","src":"15848:47:25"}]},"name":"abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15704:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15715:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15723:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15734:4:25","type":""}],"src":"15616:285:25"},{"body":{"nodeType":"YulBlock","src":"15987:178:25","statements":[{"body":{"nodeType":"YulBlock","src":"16033:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16042:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16045:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16035:6:25"},"nodeType":"YulFunctionCall","src":"16035:12:25"},"nodeType":"YulExpressionStatement","src":"16035:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16008:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"16017:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16004:3:25"},"nodeType":"YulFunctionCall","src":"16004:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"16029:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16000:3:25"},"nodeType":"YulFunctionCall","src":"16000:32:25"},"nodeType":"YulIf","src":"15997:52:25"},{"nodeType":"YulVariableDeclaration","src":"16058:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16077:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16071:5:25"},"nodeType":"YulFunctionCall","src":"16071:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16062:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16129:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"16096:32:25"},"nodeType":"YulFunctionCall","src":"16096:39:25"},"nodeType":"YulExpressionStatement","src":"16096:39:25"},{"nodeType":"YulAssignment","src":"16144:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"16154:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16144:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15953:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15964:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15976:6:25","type":""}],"src":"15906:259:25"},{"body":{"nodeType":"YulBlock","src":"16473:323:25","statements":[{"nodeType":"YulAssignment","src":"16483:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16506:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16491:3:25"},"nodeType":"YulFunctionCall","src":"16491:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16483:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16526:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16541:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16549:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16537:3:25"},"nodeType":"YulFunctionCall","src":"16537:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16519:6:25"},"nodeType":"YulFunctionCall","src":"16519:38:25"},"nodeType":"YulExpressionStatement","src":"16519:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16577:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16588:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16573:3:25"},"nodeType":"YulFunctionCall","src":"16573:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16597:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16613:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16618:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16609:3:25"},"nodeType":"YulFunctionCall","src":"16609:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"16622:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16605:3:25"},"nodeType":"YulFunctionCall","src":"16605:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16593:3:25"},"nodeType":"YulFunctionCall","src":"16593:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16566:6:25"},"nodeType":"YulFunctionCall","src":"16566:60:25"},"nodeType":"YulExpressionStatement","src":"16566:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16646:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16657:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16642:3:25"},"nodeType":"YulFunctionCall","src":"16642:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16662:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16635:6:25"},"nodeType":"YulFunctionCall","src":"16635:34:25"},"nodeType":"YulExpressionStatement","src":"16635:34:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16702:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16714:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16725:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16710:3:25"},"nodeType":"YulFunctionCall","src":"16710:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"16678:23:25"},"nodeType":"YulFunctionCall","src":"16678:51:25"},"nodeType":"YulExpressionStatement","src":"16678:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"16762:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16774:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16785:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16770:3:25"},"nodeType":"YulFunctionCall","src":"16770:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"16738:23:25"},"nodeType":"YulFunctionCall","src":"16738:52:25"},"nodeType":"YulExpressionStatement","src":"16738:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16410:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16421:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16429:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16437:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16445:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16453:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16464:4:25","type":""}],"src":"16170:626:25"},{"body":{"nodeType":"YulBlock","src":"17104:353:25","statements":[{"nodeType":"YulAssignment","src":"17114:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17126:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17137:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17122:3:25"},"nodeType":"YulFunctionCall","src":"17122:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17114:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17157:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17172:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17180:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17168:3:25"},"nodeType":"YulFunctionCall","src":"17168:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17150:6:25"},"nodeType":"YulFunctionCall","src":"17150:38:25"},"nodeType":"YulExpressionStatement","src":"17150:38:25"},{"nodeType":"YulVariableDeclaration","src":"17197:29:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17215:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17220:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17211:3:25"},"nodeType":"YulFunctionCall","src":"17211:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17224:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17207:3:25"},"nodeType":"YulFunctionCall","src":"17207:19:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17201:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17246:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17257:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17242:3:25"},"nodeType":"YulFunctionCall","src":"17242:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17266:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"17274:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17262:3:25"},"nodeType":"YulFunctionCall","src":"17262:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17235:6:25"},"nodeType":"YulFunctionCall","src":"17235:43:25"},"nodeType":"YulExpressionStatement","src":"17235:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17298:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17309:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17294:3:25"},"nodeType":"YulFunctionCall","src":"17294:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17318:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"17326:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17314:3:25"},"nodeType":"YulFunctionCall","src":"17314:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17287:6:25"},"nodeType":"YulFunctionCall","src":"17287:43:25"},"nodeType":"YulExpressionStatement","src":"17287:43:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17363:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17375:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17386:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17371:3:25"},"nodeType":"YulFunctionCall","src":"17371:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17339:23:25"},"nodeType":"YulFunctionCall","src":"17339:51:25"},"nodeType":"YulExpressionStatement","src":"17339:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17423:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17435:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17446:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17431:3:25"},"nodeType":"YulFunctionCall","src":"17431:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17399:23:25"},"nodeType":"YulFunctionCall","src":"17399:52:25"},"nodeType":"YulExpressionStatement","src":"17399:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17041:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17052:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17060:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17068:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17076:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17084:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17095:4:25","type":""}],"src":"16801:656:25"},{"body":{"nodeType":"YulBlock","src":"17771:334:25","statements":[{"nodeType":"YulAssignment","src":"17781:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17804:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17789:3:25"},"nodeType":"YulFunctionCall","src":"17789:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17781:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17824:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17839:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17847:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17835:3:25"},"nodeType":"YulFunctionCall","src":"17835:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17817:6:25"},"nodeType":"YulFunctionCall","src":"17817:38:25"},"nodeType":"YulExpressionStatement","src":"17817:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17886:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17871:3:25"},"nodeType":"YulFunctionCall","src":"17871:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17895:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17911:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17916:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17907:3:25"},"nodeType":"YulFunctionCall","src":"17907:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17920:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17903:3:25"},"nodeType":"YulFunctionCall","src":"17903:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17891:3:25"},"nodeType":"YulFunctionCall","src":"17891:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17864:6:25"},"nodeType":"YulFunctionCall","src":"17864:60:25"},"nodeType":"YulExpressionStatement","src":"17864:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17944:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17955:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17940:3:25"},"nodeType":"YulFunctionCall","src":"17940:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17964:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17972:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17960:3:25"},"nodeType":"YulFunctionCall","src":"17960:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17933:6:25"},"nodeType":"YulFunctionCall","src":"17933:45:25"},"nodeType":"YulExpressionStatement","src":"17933:45:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18011:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18023:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18034:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18019:3:25"},"nodeType":"YulFunctionCall","src":"18019:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17987:23:25"},"nodeType":"YulFunctionCall","src":"17987:51:25"},"nodeType":"YulExpressionStatement","src":"17987:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"18071:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18083:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18094:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18079:3:25"},"nodeType":"YulFunctionCall","src":"18079:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"18047:23:25"},"nodeType":"YulFunctionCall","src":"18047:52:25"},"nodeType":"YulExpressionStatement","src":"18047:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17708:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17719:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17727:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17735:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17743:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17751:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17762:4:25","type":""}],"src":"17462:643:25"},{"body":{"nodeType":"YulBlock","src":"18284:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18301:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18312:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18294:6:25"},"nodeType":"YulFunctionCall","src":"18294:21:25"},"nodeType":"YulExpressionStatement","src":"18294:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18335:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18346:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18331:3:25"},"nodeType":"YulFunctionCall","src":"18331:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18351:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18324:6:25"},"nodeType":"YulFunctionCall","src":"18324:30:25"},"nodeType":"YulExpressionStatement","src":"18324:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18374:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18385:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18370:3:25"},"nodeType":"YulFunctionCall","src":"18370:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nodeType":"YulLiteral","src":"18390:34:25","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18363:6:25"},"nodeType":"YulFunctionCall","src":"18363:62:25"},"nodeType":"YulExpressionStatement","src":"18363:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18445:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18456:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18441:3:25"},"nodeType":"YulFunctionCall","src":"18441:18:25"},{"hexValue":"204c7a417070","kind":"string","nodeType":"YulLiteral","src":"18461:8:25","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18434:6:25"},"nodeType":"YulFunctionCall","src":"18434:36:25"},"nodeType":"YulExpressionStatement","src":"18434:36:25"},{"nodeType":"YulAssignment","src":"18479:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18491:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18502:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18487:3:25"},"nodeType":"YulFunctionCall","src":"18487:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18479:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18261:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18275:4:25","type":""}],"src":"18110:402:25"},{"body":{"nodeType":"YulBlock","src":"18691:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18708:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18719:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18701:6:25"},"nodeType":"YulFunctionCall","src":"18701:21:25"},"nodeType":"YulExpressionStatement","src":"18701:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18738:3:25"},"nodeType":"YulFunctionCall","src":"18738:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18758:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18731:6:25"},"nodeType":"YulFunctionCall","src":"18731:30:25"},"nodeType":"YulExpressionStatement","src":"18731:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18781:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18792:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18777:3:25"},"nodeType":"YulFunctionCall","src":"18777:18:25"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nodeType":"YulLiteral","src":"18797:31:25","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18770:6:25"},"nodeType":"YulFunctionCall","src":"18770:59:25"},"nodeType":"YulExpressionStatement","src":"18770:59:25"},{"nodeType":"YulAssignment","src":"18838:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18850:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18861:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18846:3:25"},"nodeType":"YulFunctionCall","src":"18846:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18838:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18668:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18682:4:25","type":""}],"src":"18517:353:25"},{"body":{"nodeType":"YulBlock","src":"18907:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18924:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18931:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18936:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18927:3:25"},"nodeType":"YulFunctionCall","src":"18927:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18917:6:25"},"nodeType":"YulFunctionCall","src":"18917:31:25"},"nodeType":"YulExpressionStatement","src":"18917:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18964:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18967:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18957:6:25"},"nodeType":"YulFunctionCall","src":"18957:15:25"},"nodeType":"YulExpressionStatement","src":"18957:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18988:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18991:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18981:6:25"},"nodeType":"YulFunctionCall","src":"18981:15:25"},"nodeType":"YulExpressionStatement","src":"18981:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"18875:127:25"},{"body":{"nodeType":"YulBlock","src":"19056:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"19078:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19080:16:25"},"nodeType":"YulFunctionCall","src":"19080:18:25"},"nodeType":"YulExpressionStatement","src":"19080:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19072:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"19075:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19069:2:25"},"nodeType":"YulFunctionCall","src":"19069:8:25"},"nodeType":"YulIf","src":"19066:34:25"},{"nodeType":"YulAssignment","src":"19109:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19121:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"19124:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19117:3:25"},"nodeType":"YulFunctionCall","src":"19117:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19109:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19038:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"19041:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19047:4:25","type":""}],"src":"19007:125:25"},{"body":{"nodeType":"YulBlock","src":"19312:207:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19335:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"19340:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"19348:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"19322:12:25"},"nodeType":"YulFunctionCall","src":"19322:33:25"},"nodeType":"YulExpressionStatement","src":"19322:33:25"},{"nodeType":"YulVariableDeclaration","src":"19364:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19378:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"19383:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19374:3:25"},"nodeType":"YulFunctionCall","src":"19374:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19368:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19406:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"19410:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19399:6:25"},"nodeType":"YulFunctionCall","src":"19399:13:25"},"nodeType":"YulExpressionStatement","src":"19399:13:25"},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19428:2:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19440:2:25","type":"","value":"96"},{"name":"value2","nodeType":"YulIdentifier","src":"19444:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19457:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19453:3:25"},"nodeType":"YulFunctionCall","src":"19453:31:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19432:3:25"},"nodeType":"YulFunctionCall","src":"19432:53:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19421:6:25"},"nodeType":"YulFunctionCall","src":"19421:65:25"},"nodeType":"YulExpressionStatement","src":"19421:65:25"},{"nodeType":"YulAssignment","src":"19495:18:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19506:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"19510:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19502:3:25"},"nodeType":"YulFunctionCall","src":"19502:11:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19495:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19272:3:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19277:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19285:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19293:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19304:3:25","type":""}],"src":"19137:382:25"},{"body":{"nodeType":"YulBlock","src":"19733:289:25","statements":[{"nodeType":"YulVariableDeclaration","src":"19743:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"19753:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19747:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19775:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19790:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"19798:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19786:3:25"},"nodeType":"YulFunctionCall","src":"19786:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19768:6:25"},"nodeType":"YulFunctionCall","src":"19768:34:25"},"nodeType":"YulExpressionStatement","src":"19768:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19822:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19833:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19818:3:25"},"nodeType":"YulFunctionCall","src":"19818:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19842:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"19850:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19838:3:25"},"nodeType":"YulFunctionCall","src":"19838:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19811:6:25"},"nodeType":"YulFunctionCall","src":"19811:43:25"},"nodeType":"YulExpressionStatement","src":"19811:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19874:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19885:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19870:3:25"},"nodeType":"YulFunctionCall","src":"19870:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19890:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19863:6:25"},"nodeType":"YulFunctionCall","src":"19863:34:25"},"nodeType":"YulExpressionStatement","src":"19863:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19917:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19928:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19913:3:25"},"nodeType":"YulFunctionCall","src":"19913:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19933:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19906:6:25"},"nodeType":"YulFunctionCall","src":"19906:31:25"},"nodeType":"YulExpressionStatement","src":"19906:31:25"},{"nodeType":"YulAssignment","src":"19946:70:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19980:6:25"},{"name":"value4","nodeType":"YulIdentifier","src":"19988:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20011:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19996:3:25"},"nodeType":"YulFunctionCall","src":"19996:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19954:25:25"},"nodeType":"YulFunctionCall","src":"19954:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19946:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19670:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19681:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19689:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19697:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19705:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19713:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19724:4:25","type":""}],"src":"19524:498:25"},{"body":{"nodeType":"YulBlock","src":"20201:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20218:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20229:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20211:6:25"},"nodeType":"YulFunctionCall","src":"20211:21:25"},"nodeType":"YulExpressionStatement","src":"20211:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20252:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20263:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20248:3:25"},"nodeType":"YulFunctionCall","src":"20248:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20268:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20241:6:25"},"nodeType":"YulFunctionCall","src":"20241:30:25"},"nodeType":"YulExpressionStatement","src":"20241:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20291:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20302:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20287:3:25"},"nodeType":"YulFunctionCall","src":"20287:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nodeType":"YulLiteral","src":"20307:34:25","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20280:6:25"},"nodeType":"YulFunctionCall","src":"20280:62:25"},"nodeType":"YulExpressionStatement","src":"20280:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20362:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20373:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20358:3:25"},"nodeType":"YulFunctionCall","src":"20358:18:25"},{"hexValue":"616765","kind":"string","nodeType":"YulLiteral","src":"20378:5:25","type":"","value":"age"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20351:6:25"},"nodeType":"YulFunctionCall","src":"20351:33:25"},"nodeType":"YulExpressionStatement","src":"20351:33:25"},{"nodeType":"YulAssignment","src":"20393:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20405:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20416:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20401:3:25"},"nodeType":"YulFunctionCall","src":"20401:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20393:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20178:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20192:4:25","type":""}],"src":"20027:399:25"},{"body":{"nodeType":"YulBlock","src":"20605:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20622:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20633:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20615:6:25"},"nodeType":"YulFunctionCall","src":"20615:21:25"},"nodeType":"YulExpressionStatement","src":"20615:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20656:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20667:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20652:3:25"},"nodeType":"YulFunctionCall","src":"20652:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20672:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20645:6:25"},"nodeType":"YulFunctionCall","src":"20645:30:25"},"nodeType":"YulExpressionStatement","src":"20645:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20695:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20706:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20691:3:25"},"nodeType":"YulFunctionCall","src":"20691:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nodeType":"YulLiteral","src":"20711:34:25","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20684:6:25"},"nodeType":"YulFunctionCall","src":"20684:62:25"},"nodeType":"YulExpressionStatement","src":"20684:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20777:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20762:3:25"},"nodeType":"YulFunctionCall","src":"20762:18:25"},{"hexValue":"64","kind":"string","nodeType":"YulLiteral","src":"20782:3:25","type":"","value":"d"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20755:6:25"},"nodeType":"YulFunctionCall","src":"20755:31:25"},"nodeType":"YulExpressionStatement","src":"20755:31:25"},{"nodeType":"YulAssignment","src":"20795:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20818:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20803:3:25"},"nodeType":"YulFunctionCall","src":"20803:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20795:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20582:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20596:4:25","type":""}],"src":"20431:397:25"},{"body":{"nodeType":"YulBlock","src":"21042:284:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21059:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21074:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21082:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21070:3:25"},"nodeType":"YulFunctionCall","src":"21070:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21052:6:25"},"nodeType":"YulFunctionCall","src":"21052:38:25"},"nodeType":"YulExpressionStatement","src":"21052:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21110:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21121:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21106:3:25"},"nodeType":"YulFunctionCall","src":"21106:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21126:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21099:6:25"},"nodeType":"YulFunctionCall","src":"21099:31:25"},"nodeType":"YulExpressionStatement","src":"21099:31:25"},{"nodeType":"YulAssignment","src":"21139:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21173:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"21181:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21193:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21204:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21189:3:25"},"nodeType":"YulFunctionCall","src":"21189:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"21147:25:25"},"nodeType":"YulFunctionCall","src":"21147:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21139:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21229:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21240:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21225:3:25"},"nodeType":"YulFunctionCall","src":"21225:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"21249:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21257:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21245:3:25"},"nodeType":"YulFunctionCall","src":"21245:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21218:6:25"},"nodeType":"YulFunctionCall","src":"21218:59:25"},"nodeType":"YulExpressionStatement","src":"21218:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21297:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21308:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21293:3:25"},"nodeType":"YulFunctionCall","src":"21293:18:25"},{"name":"value4","nodeType":"YulIdentifier","src":"21313:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21286:6:25"},"nodeType":"YulFunctionCall","src":"21286:34:25"},"nodeType":"YulExpressionStatement","src":"21286:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20979:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"20990:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20998:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21006:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21014:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21022:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21033:4:25","type":""}],"src":"20833:493:25"},{"body":{"nodeType":"YulBlock","src":"21505:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21533:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21515:6:25"},"nodeType":"YulFunctionCall","src":"21515:21:25"},"nodeType":"YulExpressionStatement","src":"21515:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21556:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21567:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21552:3:25"},"nodeType":"YulFunctionCall","src":"21552:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21572:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21545:6:25"},"nodeType":"YulFunctionCall","src":"21545:30:25"},"nodeType":"YulExpressionStatement","src":"21545:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21595:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21606:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21591:3:25"},"nodeType":"YulFunctionCall","src":"21591:18:25"},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","kind":"string","nodeType":"YulLiteral","src":"21611:23:25","type":"","value":"LzApp: invalid minGas"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21584:6:25"},"nodeType":"YulFunctionCall","src":"21584:51:25"},"nodeType":"YulExpressionStatement","src":"21584:51:25"},{"nodeType":"YulAssignment","src":"21644:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21656:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21667:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21652:3:25"},"nodeType":"YulFunctionCall","src":"21652:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21644:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21482:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21496:4:25","type":""}],"src":"21331:345:25"},{"body":{"nodeType":"YulBlock","src":"21834:205:25","statements":[{"nodeType":"YulAssignment","src":"21844:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21867:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21852:3:25"},"nodeType":"YulFunctionCall","src":"21852:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21844:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"21879:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"21889:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21883:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21911:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21926:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"21934:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21922:3:25"},"nodeType":"YulFunctionCall","src":"21922:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21904:6:25"},"nodeType":"YulFunctionCall","src":"21904:34:25"},"nodeType":"YulExpressionStatement","src":"21904:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21958:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21969:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21954:3:25"},"nodeType":"YulFunctionCall","src":"21954:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21978:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"21986:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21974:3:25"},"nodeType":"YulFunctionCall","src":"21974:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21947:6:25"},"nodeType":"YulFunctionCall","src":"21947:43:25"},"nodeType":"YulExpressionStatement","src":"21947:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22010:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22021:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22006:3:25"},"nodeType":"YulFunctionCall","src":"22006:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"22026:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21999:6:25"},"nodeType":"YulFunctionCall","src":"21999:34:25"},"nodeType":"YulExpressionStatement","src":"21999:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21787:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21798:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21806:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21814:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21825:4:25","type":""}],"src":"21681:358:25"},{"body":{"nodeType":"YulBlock","src":"22218:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22235:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22246:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22228:6:25"},"nodeType":"YulFunctionCall","src":"22228:21:25"},"nodeType":"YulExpressionStatement","src":"22228:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22265:3:25"},"nodeType":"YulFunctionCall","src":"22265:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22285:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22258:6:25"},"nodeType":"YulFunctionCall","src":"22258:30:25"},"nodeType":"YulExpressionStatement","src":"22258:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22308:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22319:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22304:3:25"},"nodeType":"YulFunctionCall","src":"22304:18:25"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"22324:34:25","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22297:6:25"},"nodeType":"YulFunctionCall","src":"22297:62:25"},"nodeType":"YulExpressionStatement","src":"22297:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22390:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22375:3:25"},"nodeType":"YulFunctionCall","src":"22375:18:25"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"22395:8:25","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22368:6:25"},"nodeType":"YulFunctionCall","src":"22368:36:25"},"nodeType":"YulExpressionStatement","src":"22368:36:25"},{"nodeType":"YulAssignment","src":"22413:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22436:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22421:3:25"},"nodeType":"YulFunctionCall","src":"22421:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22413:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22195:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22209:4:25","type":""}],"src":"22044:402:25"},{"body":{"nodeType":"YulBlock","src":"22632:275:25","statements":[{"nodeType":"YulAssignment","src":"22642:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22654:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22665:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22650:3:25"},"nodeType":"YulFunctionCall","src":"22650:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22642:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"22678:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"22688:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22682:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22710:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22725:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22733:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22721:3:25"},"nodeType":"YulFunctionCall","src":"22721:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22703:6:25"},"nodeType":"YulFunctionCall","src":"22703:34:25"},"nodeType":"YulExpressionStatement","src":"22703:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22757:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22768:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22753:3:25"},"nodeType":"YulFunctionCall","src":"22753:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22777:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22785:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22773:3:25"},"nodeType":"YulFunctionCall","src":"22773:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22746:6:25"},"nodeType":"YulFunctionCall","src":"22746:43:25"},"nodeType":"YulExpressionStatement","src":"22746:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22809:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22820:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22805:3:25"},"nodeType":"YulFunctionCall","src":"22805:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22829:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22845:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22850:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22841:3:25"},"nodeType":"YulFunctionCall","src":"22841:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22854:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22837:3:25"},"nodeType":"YulFunctionCall","src":"22837:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22825:3:25"},"nodeType":"YulFunctionCall","src":"22825:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22798:6:25"},"nodeType":"YulFunctionCall","src":"22798:60:25"},"nodeType":"YulExpressionStatement","src":"22798:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22878:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22889:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22874:3:25"},"nodeType":"YulFunctionCall","src":"22874:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"22894:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22867:6:25"},"nodeType":"YulFunctionCall","src":"22867:34:25"},"nodeType":"YulExpressionStatement","src":"22867:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22577:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22588:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22596:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22604:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22612:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22623:4:25","type":""}],"src":"22451:456:25"},{"body":{"nodeType":"YulBlock","src":"23002:544:25","statements":[{"body":{"nodeType":"YulBlock","src":"23048:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23057:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23060:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23050:6:25"},"nodeType":"YulFunctionCall","src":"23050:12:25"},"nodeType":"YulExpressionStatement","src":"23050:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"23023:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23032:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23019:3:25"},"nodeType":"YulFunctionCall","src":"23019:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"23044:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23015:3:25"},"nodeType":"YulFunctionCall","src":"23015:32:25"},"nodeType":"YulIf","src":"23012:52:25"},{"nodeType":"YulVariableDeclaration","src":"23073:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23093:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23087:5:25"},"nodeType":"YulFunctionCall","src":"23087:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"23077:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"23146:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23155:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23158:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23148:6:25"},"nodeType":"YulFunctionCall","src":"23148:12:25"},"nodeType":"YulExpressionStatement","src":"23148:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"23118:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23126:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23115:2:25"},"nodeType":"YulFunctionCall","src":"23115:30:25"},"nodeType":"YulIf","src":"23112:50:25"},{"nodeType":"YulVariableDeclaration","src":"23171:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23185:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"23196:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23181:3:25"},"nodeType":"YulFunctionCall","src":"23181:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"23175:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"23251:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23260:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23263:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23253:6:25"},"nodeType":"YulFunctionCall","src":"23253:12:25"},"nodeType":"YulExpressionStatement","src":"23253:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23230:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"23234:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23226:3:25"},"nodeType":"YulFunctionCall","src":"23226:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23241:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23222:3:25"},"nodeType":"YulFunctionCall","src":"23222:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23215:6:25"},"nodeType":"YulFunctionCall","src":"23215:35:25"},"nodeType":"YulIf","src":"23212:55:25"},{"nodeType":"YulVariableDeclaration","src":"23276:19:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23292:2:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23286:5:25"},"nodeType":"YulFunctionCall","src":"23286:9:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"23280:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23304:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"23361:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"23333:27:25"},"nodeType":"YulFunctionCall","src":"23333:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"23317:15:25"},"nodeType":"YulFunctionCall","src":"23317:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"23308:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"23381:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23388:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23374:6:25"},"nodeType":"YulFunctionCall","src":"23374:17:25"},"nodeType":"YulExpressionStatement","src":"23374:17:25"},{"body":{"nodeType":"YulBlock","src":"23437:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23446:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23449:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23439:6:25"},"nodeType":"YulFunctionCall","src":"23439:12:25"},"nodeType":"YulExpressionStatement","src":"23439:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23414:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23418:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"23423:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23406:3:25"},"nodeType":"YulFunctionCall","src":"23406:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23428:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23403:2:25"},"nodeType":"YulFunctionCall","src":"23403:33:25"},"nodeType":"YulIf","src":"23400:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23488:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"23492:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23484:3:25"},"nodeType":"YulFunctionCall","src":"23484:11:25"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"23501:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23508:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23497:3:25"},"nodeType":"YulFunctionCall","src":"23497:14:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23513:2:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"23462:21:25"},"nodeType":"YulFunctionCall","src":"23462:54:25"},"nodeType":"YulExpressionStatement","src":"23462:54:25"},{"nodeType":"YulAssignment","src":"23525:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"23535:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"23525:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22968:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"22979:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"22991:6:25","type":""}],"src":"22912:634:25"},{"body":{"nodeType":"YulBlock","src":"23768:338:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23785:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23800:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23808:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23796:3:25"},"nodeType":"YulFunctionCall","src":"23796:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23778:6:25"},"nodeType":"YulFunctionCall","src":"23778:38:25"},"nodeType":"YulExpressionStatement","src":"23778:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23836:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23847:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23832:3:25"},"nodeType":"YulFunctionCall","src":"23832:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23852:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23825:6:25"},"nodeType":"YulFunctionCall","src":"23825:31:25"},"nodeType":"YulExpressionStatement","src":"23825:31:25"},{"nodeType":"YulVariableDeclaration","src":"23865:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23896:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23908:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23919:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23904:3:25"},"nodeType":"YulFunctionCall","src":"23904:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23879:16:25"},"nodeType":"YulFunctionCall","src":"23879:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"23869:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23944:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23955:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23940:3:25"},"nodeType":"YulFunctionCall","src":"23940:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23964:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23972:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23960:3:25"},"nodeType":"YulFunctionCall","src":"23960:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23933:6:25"},"nodeType":"YulFunctionCall","src":"23933:59:25"},"nodeType":"YulExpressionStatement","src":"23933:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24012:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24023:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24008:3:25"},"nodeType":"YulFunctionCall","src":"24008:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"24032:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24040:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24028:3:25"},"nodeType":"YulFunctionCall","src":"24028:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24001:6:25"},"nodeType":"YulFunctionCall","src":"24001:50:25"},"nodeType":"YulExpressionStatement","src":"24001:50:25"},{"nodeType":"YulAssignment","src":"24060:40:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"24085:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"24093:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24068:16:25"},"nodeType":"YulFunctionCall","src":"24068:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24060:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23713:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23724:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23732:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23740:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23748:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23759:4:25","type":""}],"src":"23551:555:25"},{"body":{"nodeType":"YulBlock","src":"24248:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24258:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24278:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24272:5:25"},"nodeType":"YulFunctionCall","src":"24272:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"24262:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24320:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24328:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24316:3:25"},"nodeType":"YulFunctionCall","src":"24316:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"24335:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"24340:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"24294:21:25"},"nodeType":"YulFunctionCall","src":"24294:53:25"},"nodeType":"YulExpressionStatement","src":"24294:53:25"},{"nodeType":"YulAssignment","src":"24356:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"24367:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"24372:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24363:3:25"},"nodeType":"YulFunctionCall","src":"24363:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"24356:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"24224:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24229:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"24240:3:25","type":""}],"src":"24111:274:25"},{"body":{"nodeType":"YulBlock","src":"24653:453:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24670:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24693:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24681:3:25"},"nodeType":"YulFunctionCall","src":"24681:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24663:6:25"},"nodeType":"YulFunctionCall","src":"24663:38:25"},"nodeType":"YulExpressionStatement","src":"24663:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24721:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24732:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24717:3:25"},"nodeType":"YulFunctionCall","src":"24717:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"24737:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24710:6:25"},"nodeType":"YulFunctionCall","src":"24710:31:25"},"nodeType":"YulExpressionStatement","src":"24710:31:25"},{"nodeType":"YulVariableDeclaration","src":"24750:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24781:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24804:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24789:3:25"},"nodeType":"YulFunctionCall","src":"24789:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24764:16:25"},"nodeType":"YulFunctionCall","src":"24764:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"24754:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24840:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"24849:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24857:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24845:3:25"},"nodeType":"YulFunctionCall","src":"24845:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24818:6:25"},"nodeType":"YulFunctionCall","src":"24818:59:25"},"nodeType":"YulExpressionStatement","src":"24818:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24897:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24908:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24893:3:25"},"nodeType":"YulFunctionCall","src":"24893:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"24917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24913:3:25"},"nodeType":"YulFunctionCall","src":"24913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24886:6:25"},"nodeType":"YulFunctionCall","src":"24886:50:25"},"nodeType":"YulExpressionStatement","src":"24886:50:25"},{"nodeType":"YulVariableDeclaration","src":"24945:46:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"24976:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"24984:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24959:16:25"},"nodeType":"YulFunctionCall","src":"24959:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"24949:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25011:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25022:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25007:3:25"},"nodeType":"YulFunctionCall","src":"25007:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"25032:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25040:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25028:3:25"},"nodeType":"YulFunctionCall","src":"25028:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25000:6:25"},"nodeType":"YulFunctionCall","src":"25000:51:25"},"nodeType":"YulExpressionStatement","src":"25000:51:25"},{"nodeType":"YulAssignment","src":"25060:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25085:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"25093:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25068:16:25"},"nodeType":"YulFunctionCall","src":"25068:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25060:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24590:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"24601:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"24609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"24617:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24625:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24633:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24644:4:25","type":""}],"src":"24390:716:25"},{"body":{"nodeType":"YulBlock","src":"25285:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25302:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25313:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25295:6:25"},"nodeType":"YulFunctionCall","src":"25295:21:25"},"nodeType":"YulExpressionStatement","src":"25295:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25336:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25347:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25332:3:25"},"nodeType":"YulFunctionCall","src":"25332:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25352:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25325:6:25"},"nodeType":"YulFunctionCall","src":"25325:30:25"},"nodeType":"YulExpressionStatement","src":"25325:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25375:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25386:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25371:3:25"},"nodeType":"YulFunctionCall","src":"25371:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"25391:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25364:6:25"},"nodeType":"YulFunctionCall","src":"25364:62:25"},"nodeType":"YulExpressionStatement","src":"25364:62:25"},{"nodeType":"YulAssignment","src":"25435:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25447:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25458:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25443:3:25"},"nodeType":"YulFunctionCall","src":"25443:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25435:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25262:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25276:4:25","type":""}],"src":"25111:356:25"},{"body":{"nodeType":"YulBlock","src":"25518:171:25","statements":[{"body":{"nodeType":"YulBlock","src":"25549:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25570:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25577:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25582:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25573:3:25"},"nodeType":"YulFunctionCall","src":"25573:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25563:6:25"},"nodeType":"YulFunctionCall","src":"25563:31:25"},"nodeType":"YulExpressionStatement","src":"25563:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25614:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25617:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25607:6:25"},"nodeType":"YulFunctionCall","src":"25607:15:25"},"nodeType":"YulExpressionStatement","src":"25607:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25642:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25645:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25635:6:25"},"nodeType":"YulFunctionCall","src":"25635:15:25"},"nodeType":"YulExpressionStatement","src":"25635:15:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25538:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25531:6:25"},"nodeType":"YulFunctionCall","src":"25531:9:25"},"nodeType":"YulIf","src":"25528:132:25"},{"nodeType":"YulAssignment","src":"25669:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25678:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25681:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25674:3:25"},"nodeType":"YulFunctionCall","src":"25674:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"25669:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25503:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25506:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"25512:1:25","type":""}],"src":"25472:217:25"},{"body":{"nodeType":"YulBlock","src":"25746:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"25805:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25807:16:25"},"nodeType":"YulFunctionCall","src":"25807:18:25"},"nodeType":"YulExpressionStatement","src":"25807:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25777:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25770:6:25"},"nodeType":"YulFunctionCall","src":"25770:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25763:6:25"},"nodeType":"YulFunctionCall","src":"25763:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25785:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25796:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"25800:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25788:3:25"},"nodeType":"YulFunctionCall","src":"25788:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25782:2:25"},"nodeType":"YulFunctionCall","src":"25782:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25759:3:25"},"nodeType":"YulFunctionCall","src":"25759:45:25"},"nodeType":"YulIf","src":"25756:71:25"},{"nodeType":"YulAssignment","src":"25836:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25854:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"25847:3:25"},"nodeType":"YulFunctionCall","src":"25847:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"25836:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25725:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25728:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"25734:7:25","type":""}],"src":"25694:168:25"},{"body":{"nodeType":"YulBlock","src":"25915:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"25942:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25944:16:25"},"nodeType":"YulFunctionCall","src":"25944:18:25"},"nodeType":"YulExpressionStatement","src":"25944:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25931:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25938:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25934:3:25"},"nodeType":"YulFunctionCall","src":"25934:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25928:2:25"},"nodeType":"YulFunctionCall","src":"25928:13:25"},"nodeType":"YulIf","src":"25925:39:25"},{"nodeType":"YulAssignment","src":"25973:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25984:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25987:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25980:3:25"},"nodeType":"YulFunctionCall","src":"25980:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"25973:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25898:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25901:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"25907:3:25","type":""}],"src":"25867:128:25"},{"body":{"nodeType":"YulBlock","src":"26174:238:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26191:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26202:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26184:6:25"},"nodeType":"YulFunctionCall","src":"26184:21:25"},"nodeType":"YulExpressionStatement","src":"26184:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26236:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26221:3:25"},"nodeType":"YulFunctionCall","src":"26221:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26241:2:25","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26214:6:25"},"nodeType":"YulFunctionCall","src":"26214:30:25"},"nodeType":"YulExpressionStatement","src":"26214:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26264:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26275:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26260:3:25"},"nodeType":"YulFunctionCall","src":"26260:18:25"},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f7420","kind":"string","nodeType":"YulLiteral","src":"26280:34:25","type":"","value":"LzApp: destination chain is not "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26253:6:25"},"nodeType":"YulFunctionCall","src":"26253:62:25"},"nodeType":"YulExpressionStatement","src":"26253:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26335:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26346:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26331:3:25"},"nodeType":"YulFunctionCall","src":"26331:18:25"},{"hexValue":"61207472757374656420736f75726365","kind":"string","nodeType":"YulLiteral","src":"26351:18:25","type":"","value":"a trusted source"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26324:6:25"},"nodeType":"YulFunctionCall","src":"26324:46:25"},"nodeType":"YulExpressionStatement","src":"26324:46:25"},{"nodeType":"YulAssignment","src":"26379:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26391:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26402:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26387:3:25"},"nodeType":"YulFunctionCall","src":"26387:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26379:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26151:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26165:4:25","type":""}],"src":"26000:412:25"},{"body":{"nodeType":"YulBlock","src":"26726:528:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26743:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26758:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"26766:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26754:3:25"},"nodeType":"YulFunctionCall","src":"26754:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26736:6:25"},"nodeType":"YulFunctionCall","src":"26736:38:25"},"nodeType":"YulExpressionStatement","src":"26736:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26805:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26790:3:25"},"nodeType":"YulFunctionCall","src":"26790:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26810:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26783:6:25"},"nodeType":"YulFunctionCall","src":"26783:31:25"},"nodeType":"YulExpressionStatement","src":"26783:31:25"},{"nodeType":"YulVariableDeclaration","src":"26823:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"26854:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26866:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26877:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26862:3:25"},"nodeType":"YulFunctionCall","src":"26862:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"26837:16:25"},"nodeType":"YulFunctionCall","src":"26837:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"26827:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26902:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26913:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26898:3:25"},"nodeType":"YulFunctionCall","src":"26898:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"26922:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"26930:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26918:3:25"},"nodeType":"YulFunctionCall","src":"26918:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26891:6:25"},"nodeType":"YulFunctionCall","src":"26891:50:25"},"nodeType":"YulExpressionStatement","src":"26891:50:25"},{"nodeType":"YulVariableDeclaration","src":"26950:46:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"26981:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"26989:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"26964:16:25"},"nodeType":"YulFunctionCall","src":"26964:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"26954:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27005:29:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27023:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"27028:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27019:3:25"},"nodeType":"YulFunctionCall","src":"27019:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"27032:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27015:3:25"},"nodeType":"YulFunctionCall","src":"27015:19:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"27009:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27054:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27065:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27050:3:25"},"nodeType":"YulFunctionCall","src":"27050:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"27074:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"27082:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27070:3:25"},"nodeType":"YulFunctionCall","src":"27070:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27043:6:25"},"nodeType":"YulFunctionCall","src":"27043:43:25"},"nodeType":"YulExpressionStatement","src":"27043:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27106:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27117:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27102:3:25"},"nodeType":"YulFunctionCall","src":"27102:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"27127:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"27135:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27123:3:25"},"nodeType":"YulFunctionCall","src":"27123:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27095:6:25"},"nodeType":"YulFunctionCall","src":"27095:44:25"},"nodeType":"YulExpressionStatement","src":"27095:44:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27170:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27155:3:25"},"nodeType":"YulFunctionCall","src":"27155:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"27180:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"27188:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27176:3:25"},"nodeType":"YulFunctionCall","src":"27176:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27148:6:25"},"nodeType":"YulFunctionCall","src":"27148:51:25"},"nodeType":"YulExpressionStatement","src":"27148:51:25"},{"nodeType":"YulAssignment","src":"27208:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"27233:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"27241:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"27216:16:25"},"nodeType":"YulFunctionCall","src":"27216:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27208:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26655:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"26666:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"26674:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"26682:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"26690:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26698:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26706:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26717:4:25","type":""}],"src":"26417:837:25"},{"body":{"nodeType":"YulBlock","src":"27433:229:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27461:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27443:6:25"},"nodeType":"YulFunctionCall","src":"27443:21:25"},"nodeType":"YulExpressionStatement","src":"27443:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27484:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27495:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27480:3:25"},"nodeType":"YulFunctionCall","src":"27480:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"27500:2:25","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27473:6:25"},"nodeType":"YulFunctionCall","src":"27473:30:25"},"nodeType":"YulExpressionStatement","src":"27473:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27523:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27534:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27519:3:25"},"nodeType":"YulFunctionCall","src":"27519:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665","kind":"string","nodeType":"YulLiteral","src":"27539:34:25","type":"","value":"OmniVotingEscrow: cannot receive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27512:6:25"},"nodeType":"YulFunctionCall","src":"27512:62:25"},"nodeType":"YulExpressionStatement","src":"27512:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27594:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27605:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27590:3:25"},"nodeType":"YulFunctionCall","src":"27590:18:25"},{"hexValue":"206c7a4d736773","kind":"string","nodeType":"YulLiteral","src":"27610:9:25","type":"","value":" lzMsgs"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27583:6:25"},"nodeType":"YulFunctionCall","src":"27583:37:25"},"nodeType":"YulExpressionStatement","src":"27583:37:25"},{"nodeType":"YulAssignment","src":"27629:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27641:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27652:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27637:3:25"},"nodeType":"YulFunctionCall","src":"27637:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27629:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27410:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27424:4:25","type":""}],"src":"27259:403:25"},{"body":{"nodeType":"YulBlock","src":"27841:164:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27858:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27869:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27851:6:25"},"nodeType":"YulFunctionCall","src":"27851:21:25"},"nodeType":"YulExpressionStatement","src":"27851:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27888:3:25"},"nodeType":"YulFunctionCall","src":"27888:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"27908:2:25","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27881:6:25"},"nodeType":"YulFunctionCall","src":"27881:30:25"},"nodeType":"YulExpressionStatement","src":"27881:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27931:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27942:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27927:3:25"},"nodeType":"YulFunctionCall","src":"27927:18:25"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"27947:16:25","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27920:6:25"},"nodeType":"YulFunctionCall","src":"27920:44:25"},"nodeType":"YulExpressionStatement","src":"27920:44:25"},{"nodeType":"YulAssignment","src":"27973:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27985:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27996:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27981:3:25"},"nodeType":"YulFunctionCall","src":"27981:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27973:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27818:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27832:4:25","type":""}],"src":"27667:338:25"},{"body":{"nodeType":"YulBlock","src":"28184:167:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28201:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28212:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28194:6:25"},"nodeType":"YulFunctionCall","src":"28194:21:25"},"nodeType":"YulExpressionStatement","src":"28194:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28235:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28246:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28231:3:25"},"nodeType":"YulFunctionCall","src":"28231:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"28251:2:25","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28224:6:25"},"nodeType":"YulFunctionCall","src":"28224:30:25"},"nodeType":"YulExpressionStatement","src":"28224:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28274:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28285:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28270:3:25"},"nodeType":"YulFunctionCall","src":"28270:18:25"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nodeType":"YulLiteral","src":"28290:19:25","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28263:6:25"},"nodeType":"YulFunctionCall","src":"28263:47:25"},"nodeType":"YulExpressionStatement","src":"28263:47:25"},{"nodeType":"YulAssignment","src":"28319:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28331:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28342:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28327:3:25"},"nodeType":"YulFunctionCall","src":"28327:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28319:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28161:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28175:4:25","type":""}],"src":"28010:341:25"}]},"contents":"{\n { }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n value3 := abi_decode_uint64(add(headStart, 64))\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(0, 0) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value1 := value\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function validator_revert_address_payable(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address_payable(value)\n value1 := value\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address_payable(value_1)\n value2 := value_1\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n value1 := abi_decode_uint16(add(headStart, 32))\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address_payable(value_1)\n value2 := value_1\n let value_2 := calldataload(add(headStart, 96))\n validator_revert_address_payable(value_2)\n value3 := value_2\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := abi_decode_uint64(add(headStart, 64))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address_payable(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LzApp: invalid endpoint caller\")\n tail := add(headStart, 96)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LzApp: invalid source sending co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_encode_struct_Point(value, pos)\n {\n mstore(pos, signextend(15, mload(value)))\n mstore(add(pos, 0x20), signextend(15, mload(add(value, 0x20))))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n }\n function abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, and(value0, 0xffff))\n abi_encode_struct_Point(value1, add(headStart, 32))\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), 160)\n let tail_1 := abi_encode_bytes(value2, add(headStart, 160))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_decode_int128_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, signextend(15, value))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 128)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, abi_decode_int128_fromMemory(headStart))\n mstore(add(memPtr, 32), abi_decode_int128_fromMemory(add(headStart, 32)))\n mstore(add(memPtr, 64), mload(add(headStart, 64)))\n mstore(add(memPtr, 96), mload(add(headStart, 96)))\n value0 := memPtr\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffff))\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, 0xff))\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"NonblockingLzApp: caller must be\")\n mstore(add(headStart, 96), \" LzApp\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LzApp: no trusted path record\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n mstore(_1, and(shl(96, value2), not(0xffffffffffffffffffffffff)))\n end := add(_1, 20)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"NonblockingLzApp: no stored mess\")\n mstore(add(headStart, 96), \"age\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"NonblockingLzApp: invalid payloa\")\n mstore(add(headStart, 96), \"d\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), value4)\n }\n function abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"LzApp: invalid minGas\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value3, tail_1)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value3, tail_1)\n mstore(add(headStart, 128), sub(tail_2, headStart))\n tail := abi_encode_bytes(value4, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"LzApp: destination chain is not \")\n mstore(add(headStart, 96), \"a trusted source\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value2, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value5, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"OmniVotingEscrow: cannot receive\")\n mstore(add(headStart, 96), \" lzMsgs\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"slice_overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"slice_outOfBounds\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"446":[{"length":32,"start":1268},{"length":32,"start":1516},{"length":32,"start":2107},{"length":32,"start":2244},{"length":32,"start":2420},{"length":32,"start":3618},{"length":32,"start":5803},{"length":32,"start":6876},{"length":32,"start":7696}],"3722":[{"length":32,"start":811},{"length":32,"start":2770},{"length":32,"start":2934},{"length":32,"start":3065},{"length":32,"start":3180},{"length":32,"start":3333},{"length":32,"start":3755},{"length":32,"start":3910},{"length":32,"start":4056},{"length":32,"start":4169},{"length":32,"start":4333}],"3725":[{"length":32,"start":617},{"length":32,"start":4489}]},"linkReferences":{},"object":"6080604052600436106101b65760003560e01c80637533d788116100ec578063baf3292d1161008a578063df2a5b3b11610064578063df2a5b3b14610569578063eb8d72b714610589578063f2fde38b146105a9578063f5ecbdbc146105c957600080fd5b8063baf3292d14610516578063cbed8b9c14610536578063d1deba1f1461055657600080fd5b8063950c8a74116100c6578063950c8a74146104825780639f38369a146104a2578063a6c3d165146104c2578063b353aaa7146104e257600080fd5b80637533d788146103ff5780638cfd8f5c1461042c5780638da5cb5b1461046457600080fd5b806342d65a8d116101595780635b8c41e6116101335780635b8c41e61461034d57806365d092d0146103aa57806366ad5c8a146103ca578063715018a6146103ea57600080fd5b806342d65a8d146102e65780634a759489146103065780634f2bfe5b1461031957600080fd5b806316334c8f1161019557806316334c8f1461021d578063363bf0de146102575780633d8b38f6146102a3578063416b154a146102d357600080fd5b80621d3567146101bb57806307e0db17146101dd57806310ddb137146101fd575b600080fd5b3480156101c757600080fd5b506101db6101d636600461224e565b6105e9565b005b3480156101e957600080fd5b506101db6101f83660046122e1565b61081a565b34801561020957600080fd5b506101db6102183660046122e1565b6108a3565b34801561022957600080fd5b5061023d6102383660046122fc565b6108fb565b604080519283526020830191909152015b60405180910390f35b34801561026357600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024e565b3480156102af57600080fd5b506102c36102be366004612363565b610a01565b604051901515815260200161024e565b6101db6102e136600461248d565b610ace565b3480156102f257600080fd5b506101db610301366004612363565b610e03565b6101db6103143660046124ff565b610e89565b34801561032557600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b5061039c610368366004612584565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b60405190815260200161024e565b3480156103b657600080fd5b5061023d6103c53660046122fc565b6112a0565b3480156103d657600080fd5b506101db6103e536600461224e565b611303565b3480156103f657600080fd5b506101db6113df565b34801561040b57600080fd5b5061041f61041a3660046122e1565b6113f3565b60405161024e919061263d565b34801561043857600080fd5b5061039c610447366004612650565b600260209081526000928352604080842090915290825290205481565b34801561047057600080fd5b506000546001600160a01b031661028b565b34801561048e57600080fd5b5060035461028b906001600160a01b031681565b3480156104ae57600080fd5b5061041f6104bd3660046122e1565b61148d565b3480156104ce57600080fd5b506101db6104dd366004612363565b61159d565b3480156104ee57600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b506101db610531366004612683565b611630565b34801561054257600080fd5b506101db6105513660046126a0565b61168c565b6101db61056436600461224e565b611721565b34801561057557600080fd5b506101db61058436600461270e565b611926565b34801561059557600080fd5b506101db6105a4366004612363565b6119d8565b3480156105b557600080fd5b506101db6105c4366004612683565b611a32565b3480156105d557600080fd5b5061041f6105e436600461274a565b611aab565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461068490612797565b80601f01602080910402602001604051908101604052809291908181526020018280546106b090612797565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b50505050509050805186869050148015610718575060008151115b801561074057508051602082012060405161073690889088906127d2565b6040518091039020145b61079b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161065d565b6108118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b5c92505050565b50505050505050565b610822611c66565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050505050565b6108ab611c66565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161086e565b6000806000600560029054906101000a900461ffff1660405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525060405160200161094d92919061280e565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906109b3908a90309086908c908c908c9060040161284f565b6040805180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906128a5565b925092505094509492505050565b61ffff831660009081526001602052604081208054829190610a2290612797565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90612797565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b505050505090508383604051610ab29291906127d2565b60405180910390208180519060200120149150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be391906128f4565b9050610bf28160400151611cc0565b15610d7d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906128c9565b60405163d1febfb960e01b8152600481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1febfb9906024016080604051808303816000875af1158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906128f4565b90505b6000600560029054906101000a900461ffff1682604051602001610da292919061280e565b6040516020818303038152906040529050610dc1878288888834611cf1565b7fd76af77f4ffbd9969fdb15b1c1268d40cd4bf1093905e67639f369cb9f44c1728783604051610df292919061280e565b60405180910390a150505050505050565b610e0b611c66565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610e5b90869086908690600401612965565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610811573d6000803e3d6000fd5b60405163010ae75760e01b81526001600160a01b0386811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063010ae757906024016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906128c9565b6040516328d09d4760e01b81526001600160a01b038881166004830152602482018390529192506000917f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906044016080604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb391906128f4565b60405163adc6358960e01b81526001600160a01b0389811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063adc6358990602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128c9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a91906128f4565b6040516317b4eb8760e31b81526001600160a01b038c8116600483015261ffff8c1660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bda75c3890604401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612983565b905060006001600160a01b03821661120c578b61120e565b815b6005546040519192506000916112339161ffff1690849089908b9089906020016129a0565b60405160208183030381529060405290506112528c828d8d8d34611cf1565b7f3689d0fa90a175cc766502dc62c2abdee9ca4b276d4315adf98339a8354755808c8e848a886040516112899594939291906129e6565b60405180910390a150505050505050505050505050565b6005546040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052935190948594859461094d9461ffff9093169386938493909101612a16565b3330146113615760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161065d565b6113d78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611e8c92505050565b505050505050565b6113e7611c66565b6113f16000611ee4565b565b6001602052600090815260409020805461140c90612797565b80601f016020809104026020016040519081016040528092919081815260200182805461143890612797565b80156114855780601f1061145a57610100808354040283529160200191611485565b820191906000526020600020905b81548152906001019060200180831161146857829003601f168201915b505050505081565b61ffff81166000908152600160205260408120805460609291906114b090612797565b80601f01602080910402602001604051908101604052809291908181526020018280546114dc90612797565b80156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b505050505090508051600014156115825760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161065d565b610ac76000601483516115959190612a5d565b839190611f34565b6115a5611c66565b8181306040516020016115ba93929190612a74565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516115ef939192909101906120cb565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161162393929190612965565b60405180910390a1505050565b611638611c66565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b611694611c66565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116e89088908890889088908890600401612a9a565b600060405180830381600087803b15801561170257600080fd5b505af1158015611716573d6000803e3d6000fd5b505050505050505050565b61ffff8616600090815260046020526040808220905161174490889088906127d2565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806117c45760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161065d565b8083836040516117d59291906127d2565b6040518091039020146118345760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161065d565b61ffff8716600090815260046020526040808220905161185790899089906127d2565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526118ef918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611e8c92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051610df2959493929190612ad3565b61192e611c66565b600081116119765760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161065d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611623565b6119e0611c66565b61ffff831660009081526001602052604090206119fe90838361214f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161162393929190612965565b611a3a611c66565b6001600160a01b038116611a9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065d565b611aa881611ee4565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b539190810190612b0e565b95945050505050565b600080611bbf5a60966366ad5c8a60e01b89898989604051602401611b849493929190612b7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612041565b91509150816113d7578280519060200120600460008861ffff1661ffff16815260200190815260200160002086604051611bf99190612bb9565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611c569088908890889088908790612bd5565b60405180910390a1505050505050565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065d565b600042611cd062093a8084612c33565b611cdd9062093a80612c55565b611cea9062093a80612c74565b1092915050565b61ffff861660009081526001602052604081208054611d0f90612797565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3b90612797565b8015611d885780601f10611d5d57610100808354040283529160200191611d88565b820191906000526020600020905b815481529060010190602001808311611d6b57829003601f168201915b50505050509050805160001415611dfa5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161065d565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490611e51908b9086908c908c908c908c90600401612c8c565b6000604051808303818588803b158015611e6a57600080fd5b505af1158015611e7e573d6000803e3d6000fd5b505050505050505050505050565b60405162461bcd60e51b815260206004820152602760248201527f4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665604482015266206c7a4d73677360c81b606482015260840161065d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606081611f4281601f612c74565b1015611f815760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161065d565b611f8b8284612c74565b84511015611fcf5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161065d565b606082158015611fee5760405191506000825260208201604052612038565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561202757805183526020928301920161200f565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115612066576120666123ca565b6040519080825280601f01601f191660200182016040528015612090576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156120b2578692505b828152826000602083013e909890975095505050505050565b8280546120d790612797565b90600052602060002090601f0160209004810192826120f9576000855561213f565b82601f1061211257805160ff191683800117855561213f565b8280016001018555821561213f579182015b8281111561213f578251825591602001919060010190612124565b5061214b9291506121c3565b5090565b82805461215b90612797565b90600052602060002090601f01602090048101928261217d576000855561213f565b82601f106121965782800160ff1982351617855561213f565b8280016001018555821561213f579182015b8281111561213f5782358255916020019190600101906121a8565b5b8082111561214b57600081556001016121c4565b803561ffff811681146121ea57600080fd5b919050565b60008083601f84011261220157600080fd5b5081356001600160401b0381111561221857600080fd5b60208301915083602082850101111561223057600080fd5b9250929050565b80356001600160401b03811681146121ea57600080fd5b6000806000806000806080878903121561226757600080fd5b612270876121d8565b955060208701356001600160401b038082111561228c57600080fd5b6122988a838b016121ef565b90975095508591506122ac60408a01612237565b945060608901359150808211156122c257600080fd5b506122cf89828a016121ef565b979a9699509497509295939492505050565b6000602082840312156122f357600080fd5b610ac7826121d8565b6000806000806060858703121561231257600080fd5b61231b856121d8565b93506020850135801515811461233057600080fd5b925060408501356001600160401b0381111561234b57600080fd5b612357878288016121ef565b95989497509550505050565b60008060006040848603121561237857600080fd5b612381846121d8565b925060208401356001600160401b0381111561239c57600080fd5b6123a8868287016121ef565b9497909650939450505050565b6001600160a01b0381168114611aa857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612408576124086123ca565b604052919050565b60006001600160401b03821115612429576124296123ca565b50601f01601f191660200190565b600082601f83011261244857600080fd5b813561245b61245682612410565b6123e0565b81815284602083860101111561247057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156124a357600080fd5b6124ac856121d8565b935060208501356124bc816123b5565b925060408501356124cc816123b5565b915060608501356001600160401b038111156124e757600080fd5b6124f387828801612437565b91505092959194509250565b600080600080600060a0868803121561251757600080fd5b8535612522816123b5565b9450612530602087016121d8565b93506040860135612540816123b5565b92506060860135612550816123b5565b915060808601356001600160401b0381111561256b57600080fd5b61257788828901612437565b9150509295509295909350565b60008060006060848603121561259957600080fd5b6125a2846121d8565b925060208401356001600160401b038111156125bd57600080fd5b6125c986828701612437565b9250506125d860408501612237565b90509250925092565b60005b838110156125fc5781810151838201526020016125e4565b8381111561260b576000848401525b50505050565b600081518084526126298160208601602086016125e1565b601f01601f19169290920160200192915050565b602081526000610ac76020830184612611565b6000806040838503121561266357600080fd5b61266c836121d8565b915061267a602084016121d8565b90509250929050565b60006020828403121561269557600080fd5b8135610ac7816123b5565b6000806000806000608086880312156126b857600080fd5b6126c1866121d8565b94506126cf602087016121d8565b93506040860135925060608601356001600160401b038111156126f157600080fd5b6126fd888289016121ef565b969995985093965092949392505050565b60008060006060848603121561272357600080fd5b61272c846121d8565b925061273a602085016121d8565b9150604084013590509250925092565b6000806000806080858703121561276057600080fd5b612769856121d8565b9350612777602086016121d8565b92506040850135612787816123b5565b9396929550929360600135925050565b600181811c908216806127ab57607f821691505b602082108114156127cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b61ffff8316815260a08101610ac760208301846127e2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061287d90830187612611565b85151560608401528281036080840152612898818587612826565b9998505050505050505050565b600080604083850312156128b857600080fd5b505080516020909101519092909150565b6000602082840312156128db57600080fd5b5051919050565b8051600f81900b81146121ea57600080fd5b60006080828403121561290657600080fd5b604051608081018181106001600160401b0382111715612928576129286123ca565b604052612934836128e2565b8152612942602084016128e2565b602082015260408301516040820152606083015160608201528091505092915050565b61ffff84168152604060208201526000611b53604083018486612826565b60006020828403121561299557600080fd5b8151610ac7816123b5565b61ffff861681526001600160a01b03851660208201526040810184905261016081016129cf60608301856127e2565b6129dc60e08301846127e2565b9695505050505050565b61ffff861681526001600160a01b0385811660208301528416604082015261016081016129cf60608301856127e2565b61ffff861681526001600160a01b038516602082015260ff8416604082015261016081016129cf60608301856127e2565b634e487b7160e01b600052601160045260246000fd5b600082821015612a6f57612a6f612a47565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152612ac8608083018486612826565b979650505050505050565b61ffff86168152608060208201526000612af1608083018688612826565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215612b2057600080fd5b81516001600160401b03811115612b3657600080fd5b8201601f81018413612b4757600080fd5b8051612b5561245682612410565b818152856020838501011115612b6a57600080fd5b611b538260208301602086016125e1565b61ffff85168152608060208201526000612b986080830186612611565b6001600160401b03851660408401528281036060840152612ac88185612611565b60008251612bcb8184602087016125e1565b9190910192915050565b61ffff8616815260a060208201526000612bf260a0830187612611565b6001600160401b03861660408401528281036060840152612c138186612611565b90508281036080840152612c278185612611565b98975050505050505050565b600082612c5057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612c6f57612c6f612a47565b500290565b60008219821115612c8757612c87612a47565b500190565b61ffff8716815260c060208201526000612ca960c0830188612611565b8281036040840152612cbb8188612611565b6001600160a01b0387811660608601528616608085015283810360a08501529050612898818561261156fea2646970667358221220e47f09d33ae09484adc994fcf8df33273d0fc558e6365a0f984bf0fa387cd41664736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBAF3292D GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDF2A5B3B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x589 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x516 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x536 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x482 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x65D092D0 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x4A759489 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x4F2BFE5B EQ PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x16334C8F GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x16334C8F EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x363BF0DE EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x416B154A EQ PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x1FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x8A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0x2BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x248D JUMP JUMPDEST PUSH2 0xACE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x301 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xE03 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x24FF JUMP JUMPDEST PUSH2 0xE89 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x2584 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x12A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1303 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x13DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x263D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x2650 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x28B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x28B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x4BD CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x4DD CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x159D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x531 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x26A0 JUMP JUMPDEST PUSH2 0x168C JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1721 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x584 CALLDATASIZE PUSH1 0x4 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x1926 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x19D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1A32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x5E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x274A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x684 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x718 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x740 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x736 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x79B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x811 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1B5C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x822 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x89C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AB PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x86E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x94D SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP3 MSTORE SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x9B3 SWAP1 DUP11 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x284F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9F3 SWAP2 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xA22 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA4E SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA9B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA9B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA7E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xAB2 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB52 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBE3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP PUSH2 0xBF2 DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x1CC0 JUMP JUMPDEST ISZERO PUSH2 0xD7D JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2C4C5C1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCEC SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD7A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xDC1 DUP8 DUP3 DUP9 DUP9 DUP9 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0xD76AF77F4FFBD9969FDB15B1C1268D40CD4BF1093905E67639F369CB9F44C172 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE0B PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xE5B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x811 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10AE757 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x10AE757 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF1A SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28D09D47 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0x28D09D47 SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xADC63589 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xADC63589 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1043 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C9 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1136 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x115A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x17B4EB87 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xBDA75C38 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11F4 SWAP2 SWAP1 PUSH2 0x2983 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x120C JUMPI DUP12 PUSH2 0x120E JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x1233 SWAP2 PUSH2 0xFFFF AND SWAP1 DUP5 SWAP1 DUP10 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x29A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1252 DUP13 DUP3 DUP14 DUP14 DUP14 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0x3689D0FA90A175CC766502DC62C2ABDEE9CA4B276D4315ADF98339A835475580 DUP13 DUP15 DUP5 DUP11 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1289 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP4 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE DUP6 MLOAD SWAP4 DUP5 ADD DUP7 MSTORE DUP3 DUP5 MSTORE DUP4 DUP3 ADD DUP4 SWAP1 MSTORE DUP4 DUP7 ADD DUP4 SWAP1 MSTORE DUP4 ADD DUP3 SWAP1 MSTORE SWAP4 MLOAD SWAP1 SWAP5 DUP6 SWAP5 DUP6 SWAP5 PUSH2 0x94D SWAP5 PUSH2 0xFFFF SWAP1 SWAP4 AND SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP1 SWAP2 ADD PUSH2 0x2A16 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x13D7 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13E7 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0x13F1 PUSH1 0x0 PUSH2 0x1EE4 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x140C SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1438 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1485 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x145A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1485 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1468 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x14B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x14DC SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1529 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x14FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1529 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x150C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1582 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xAC7 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1595 SWAP2 SWAP1 PUSH2 0x2A5D JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x15A5 PUSH2 0x1C66 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15BA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x15EF SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20CB JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1638 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x1694 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x16E8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2A9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1744 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x17C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x17D5 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1834 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1857 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x18EF SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2AD3 JUMP JUMPDEST PUSH2 0x192E PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1623 JUMP JUMPDEST PUSH2 0x19E0 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FE SWAP1 DUP4 DUP4 PUSH2 0x214F JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH2 0x1A3A PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A9F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1AA8 DUP2 PUSH2 0x1EE4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1B53 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B0E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BBF GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1B84 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2041 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x13D7 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1BF9 SWAP2 SWAP1 PUSH2 0x2BB9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x1C56 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2BD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH2 0x1CD0 PUSH3 0x93A80 DUP5 PUSH2 0x2C33 JUMP JUMPDEST PUSH2 0x1CDD SWAP1 PUSH3 0x93A80 PUSH2 0x2C55 JUMP JUMPDEST PUSH2 0x1CEA SWAP1 PUSH3 0x93A80 PUSH2 0x2C74 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1D0F SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D3B SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D88 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D5D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D88 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D6B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x1E51 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2063616E6E6F742072656365697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x206C7A4D736773 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1F42 DUP2 PUSH1 0x1F PUSH2 0x2C74 JUMP JUMPDEST LT ISZERO PUSH2 0x1F81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1F8B DUP3 DUP5 PUSH2 0x2C74 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1FCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1FEE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2027 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x200F JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2066 JUMPI PUSH2 0x2066 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x20B2 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x20D7 SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x20F9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2112 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2124 JUMP JUMPDEST POP PUSH2 0x214B SWAP3 SWAP2 POP PUSH2 0x21C3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x215B SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x217D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2196 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x214B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21C4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2270 DUP8 PUSH2 0x21D8 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2298 DUP11 DUP4 DUP12 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x22AC PUSH1 0x40 DUP11 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x22C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22CF DUP10 DUP3 DUP11 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC7 DUP3 PUSH2 0x21D8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x231B DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x234B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2357 DUP8 DUP3 DUP9 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2381 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x239C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23A8 DUP7 DUP3 DUP8 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2408 JUMPI PUSH2 0x2408 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2429 JUMPI PUSH2 0x2429 PUSH2 0x23CA JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x245B PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST PUSH2 0x23E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x24A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24AC DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x24BC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x24CC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP8 DUP3 DUP9 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2522 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP5 POP PUSH2 0x2530 PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2540 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0x2550 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x256B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2577 DUP9 DUP3 DUP10 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25A2 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x25BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25C9 DUP7 DUP3 DUP8 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x25D8 PUSH1 0x40 DUP6 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25FC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25E4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x260B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2629 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x266C DUP4 PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH2 0x267A PUSH1 0x20 DUP5 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26C1 DUP7 PUSH2 0x21D8 JUMP JUMPDEST SWAP5 POP PUSH2 0x26CF PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26FD DUP9 DUP3 DUP10 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x272C DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH2 0x273A PUSH1 0x20 DUP6 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2760 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2769 DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2777 PUSH1 0x20 DUP7 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2787 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x27CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x287D SWAP1 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2898 DUP2 DUP6 DUP8 PUSH2 0x2826 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE PUSH2 0x2934 DUP4 PUSH2 0x28E2 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2942 PUSH1 0x20 DUP5 ADD PUSH2 0x28E2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1B53 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0x29DC PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2A6F JUMPI PUSH2 0x2A6F PUSH2 0x2A47 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2AC8 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AF1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2B47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2B55 PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2B6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B53 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B98 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2AC8 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2BCB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x25E1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BF2 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C13 DUP2 DUP7 PUSH2 0x2611 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C27 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2C50 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2C6F JUMPI PUSH2 0x2C6F PUSH2 0x2A47 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2C87 JUMPI PUSH2 0x2C87 PUSH2 0x2A47 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CA9 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x2611 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2CBB DUP2 DUP9 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP7 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2898 DUP2 DUP6 PUSH2 0x2611 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE4 PUSH32 0x9D33AE09484ADC994FCF8DF33273D0FC558E6365A0F984BF0FA387CD4166473 PUSH16 0x6C634300080A00330000000000000000 ","sourceMap":"294:4343:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:753:4;;;;;;;;;;-1:-1:-1;1035:753:4;;;;;:::i;:::-;;:::i;:::-;;3834:121;;;;;;;;;;-1:-1:-1;3834:121:4;;;;;:::i;:::-;;:::i;3961:127::-;;;;;;;;;;-1:-1:-1;3961:127:4;;;;;:::i;:::-;;:::i;1886:344:14:-;;;;;;;;;;-1:-1:-1;1886:344:14;;;;;:::i;:::-;;:::i;:::-;;;;2583:25:25;;;2639:2;2624:18;;2617:34;;;;2556:18;1886:344:14;;;;;;;;414:59;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2856:32:25;;;2838:51;;2826:2;2811:18;414:59:14;2662:233:25;5744:247:4;;;;;;;;;;-1:-1:-1;5744:247:4;;;;;:::i;:::-;;:::i;:::-;;;3551:14:25;;3544:22;3526:41;;3514:2;3499:18;5744:247:4;3386:187:25;3328:994:14;;;;;;:::i;:::-;;:::i;4094:176:4:-;;;;;;;;;;-1:-1:-1;4094:176:4;;;;;:::i;:::-;;:::i;2236:1086:14:-;;;;;;:::i;:::-;;:::i;365:43::-;;;;;;;;;;;;;;;617:85:5;;;;;;;;;;-1:-1:-1;617:85:5;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7183:25:25;;;7171:2;7156:18;617:85:5;7037:177:25;1484:396:14;;;;;;;;;;-1:-1:-1;1484:396:14;;;;;:::i;:::-;;:::i;1577:342:5:-;;;;;;;;;;-1:-1:-1;1577:342:5;;;;;:::i;:::-;;:::i;1831:101:9:-;;;;;;;;;;;;;:::i;520:51:4:-;;;;;;;;;;-1:-1:-1;520:51:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;577:65::-;;;;;;;;;;-1:-1:-1;577:65:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:9;;;;;;;;;;-1:-1:-1;1247:7:9;1273:6;-1:-1:-1;;;;;1273:6:9;1201:85;;648:23:4;;;;;;;;;;-1:-1:-1;648:23:4;;;;-1:-1:-1;;;;;648:23:4;;;4898:326;;;;;;;;;;-1:-1:-1;4898:326:4;;;;;:::i;:::-;;:::i;4614:278::-;;;;;;;;;;-1:-1:-1;4614:278:4;;;;;:::i;:::-;;:::i;468:46::-;;;;;;;;;;;;;;;5230:133;;;;;;;;;;-1:-1:-1;5230:133:4;;;;;:::i;:::-;;:::i;3626:202::-;;;;;;;;;;-1:-1:-1;3626:202:4;;;;;:::i;:::-;;:::i;2100:757:5:-;;;;;;:::i;:::-;;:::i;5369:280:4:-;;;;;;;;;;-1:-1:-1;5369:280:4;;;;;:::i;:::-;;:::i;4413:195::-;;;;;;;;;;-1:-1:-1;4413:195:4;;;;;:::i;:::-;;:::i;2081:198:9:-;;;;;;;;;;-1:-1:-1;2081:198:9;;;;;:::i;:::-;;:::i;3358:209:4:-;;;;;;;;;;-1:-1:-1;3358:209:4;;;;;:::i;:::-;;:::i;1035:753::-;719:10:13;1273::4;-1:-1:-1;;;;;1249:35:4;;1241:78;;;;-1:-1:-1;;;1241:78:4;;10742:2:25;1241:78:4;;;10724:21:25;10781:2;10761:18;;;10754:30;10820:32;10800:18;;;10793:60;10870:18;;1241:78:4;;;;;;;;;1359:32;;;1330:26;1359:32;;;:19;:32;;;;;1330:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:13;:20;1541:11;;:18;;:42;:70;;;;;1610:1;1587:13;:20;:24;1541:70;:124;;;;-1:-1:-1;1641:24:4;;;;;;1615:22;;;;1625:11;;;;1615:22;:::i;:::-;;;;;;;;:50;1541:124;1533:175;;;;-1:-1:-1;;;1533:175:4;;11762:2:25;1533:175:4;;;11744:21:25;11801:2;11781:18;;;11774:30;11840:34;11820:18;;;11813:62;-1:-1:-1;;;11891:18:25;;;11884:36;11937:19;;1533:175:4;11560:402:25;1533:175:4;1719:62;1738:11;1751;;1719:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1719:62:4;;;;;;;;;;;;;;;;;;;;;;1764:6;;-1:-1:-1;1719:62:4;-1:-1:-1;1772:8:4;;;;;;1719:62;;1772:8;;;;1719:62;;;;;;;;;-1:-1:-1;1719:18:4;;-1:-1:-1;;;1719:62:4:i;:::-;1166:622;1035:753;;;;;;:::o;3834:121::-;1094:13:9;:11;:13::i;:::-;3913:35:4::1;::::0;-1:-1:-1;;;3913:35:4;;12141:6:25;12129:19;;3913:35:4::1;::::0;::::1;12111:38:25::0;3913:10:4::1;-1:-1:-1::0;;;;;3913:25:4::1;::::0;::::1;::::0;12084:18:25;;3913:35:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3834:121:::0;:::o;3961:127::-;1094:13:9;:11;:13::i;:::-;4043:38:4::1;::::0;-1:-1:-1;;;4043:38:4;;12141:6:25;12129:19;;4043:38:4::1;::::0;::::1;12111::25::0;4043:10:4::1;-1:-1:-1::0;;;;;4043:28:4::1;::::0;::::1;::::0;12084:18:25;;4043:38:4::1;11967:188:25::0;1886:344:14;2005:14;2021:11;2044:22;2080:5;;;;;;;;;;;2087:31;;;;;;;;2107:1;2087:31;;;;;;2110:1;2087:31;;;;;;2113:1;2087:31;;;;2116:1;2087:31;;;2069:50;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2069:50:14;;;;;;;;;;-1:-1:-1;;;2136:87:14;;2069:50;-1:-1:-1;;;;;;2136:10:14;:23;;;;:87;;2160:11;;2181:4;;2069:50;;2199:7;;2208:14;;;;2136:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2129:94;;;;;1886:344;;;;;;;:::o;5744:247:4:-;5885:32;;;5840:4;5885:32;;;:19;:32;;;;;5856:61;;5840:4;;5885:32;5856:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5972:11;;5962:22;;;;;;;:::i;:::-;;;;;;;;5944:13;5934:24;;;;;;:50;5927:57;;;5744:247;;;;;;:::o;3328:994:14:-;3487:21;3511:12;-1:-1:-1;;;;;3511:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3578:44;;-1:-1:-1;;;3578:44:14;;;;;7183:25:25;;;3487:44:14;;-1:-1:-1;3541:34:14;;-1:-1:-1;;;;;3578:12:14;:26;;;;7156:18:25;;3578:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3541:81;;3851:37;3877:7;:10;;;3851:25;:37::i;:::-;3847:248;;;3904:12;-1:-1:-1;;;;;3904:23:14;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3996:12;-1:-1:-1;;;;;3996:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4040:44;;-1:-1:-1;;;4040:44:14;;;;;7183:25:25;;;3977:39:14;;-1:-1:-1;4040:12:14;-1:-1:-1;;;;;4040:26:14;;;;7156:18:25;;4040:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4030:54;;3847:248;4105:22;4141:5;;;;;;;;;;;4148:7;4130:26;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4105:51;;4166:94;4174:11;4187:9;4198:14;4214:18;4234:14;4250:9;4166:7;:94::i;:::-;4275:40;4294:11;4307:7;4275:40;;;;;;;:::i;:::-;;;;;;;;3477:845;;;3328:994;;;;:::o;4094:176:4:-;1094:13:9;:11;:13::i;:::-;4208:55:4::1;::::0;-1:-1:-1;;;4208:55:4;;-1:-1:-1;;;;;4208:10:4::1;:29;::::0;::::1;::::0;:55:::1;::::0;4238:11;;4251;;;;4208:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;2236:1086:14::0;2432:41;;-1:-1:-1;;;2432:41:14;;-1:-1:-1;;;;;2856:32:25;;;2432:41:14;;;2838:51:25;2415:14:14;;2432:12;:29;;;;;;2811:18:25;;2432:41:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2519:54;;-1:-1:-1;;;2519:54:14;;-1:-1:-1;;;;;15529:32:25;;;2519:54:14;;;15511:51:25;15578:18;;;15571:34;;;2415:58:14;;-1:-1:-1;2483:33:14;;2519:12;:31;;;;15484:18:25;;2519:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2601:36;;-1:-1:-1;;;2601:36:14;;-1:-1:-1;;;;;2856:32:25;;;2601:36:14;;;2838:51:25;2483:90:14;;-1:-1:-1;2584:14:14;;2601:12;:24;;;;2811:18:25;;2601:36:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2584:53;;2709:21;2733:12;-1:-1:-1;;;;;2733:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2800:44;;-1:-1:-1;;;2800:44:14;;;;;7183:25:25;;;2709:44:14;;-1:-1:-1;2763:34:14;;-1:-1:-1;;;;;2800:12:14;:26;;;;7156:18:25;;2800:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2881:59;;-1:-1:-1;;;2881:59:14;;-1:-1:-1;;;;;15806:32:25;;;2881:59:14;;;15788:51:25;15887:6;15875:19;;15855:18;;;15848:47;2763:81:14;;-1:-1:-1;2855:23:14;;2881:20;:34;;;;15761:18:25;;2881:59:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2855:85;-1:-1:-1;2950:18:14;-1:-1:-1;;;;;2971:31:14;;:62;;3023:10;2971:62;;;3005:15;2971:62;3080:7;;3069:59;;2950:83;;-1:-1:-1;3044:22:14;;3069:59;;3080:7;;;2950:83;;3101:9;;3112:6;;3120:7;;3069:59;;;:::i;:::-;;;;;;;;;;;;;3044:84;;3138:94;3146:11;3159:9;3170:14;3186:18;3206:14;3222:9;3138:7;:94::i;:::-;3247:68;3262:11;3275:10;3287;3299:6;3307:7;3247:68;;;;;;;;;;:::i;:::-;;;;;;;;2405:917;;;;;;;;2236:1086;;;;;:::o;1484:396::-;1678:7;;1704:31;;;;;;;;;1603:14;1704:31;;;;;;;;;;;;;;;;;;;;;;;1737;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:102;;1603:14;;;;;;1667:102;;1678:7;;;;;1603:14;;;;1737:31;;1667:102;;:::i;1577:342:5:-;719:10:13;1789:4:5;1765:29;1757:80;;;;-1:-1:-1;;;1757:80:5;;18312:2:25;1757:80:5;;;18294:21:25;18351:2;18331:18;;;18324:30;18390:34;18370:18;;;18363:62;-1:-1:-1;;;18441:18:25;;;18434:36;18487:19;;1757:80:5;18110:402:25;1757:80:5;1847:65;1869:11;1882;;1847:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1847:65:5;;;;;;;;;;;;;;;;;;;;;;1895:6;;-1:-1:-1;1847:65:5;-1:-1:-1;1903:8:5;;;;;;1847:65;;1903:8;;;;1847:65;;;;;;;;;-1:-1:-1;1847:21:5;;-1:-1:-1;;;1847:65:5:i;:::-;1577:342;;;;;;:::o;1831:101:9:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;520:51:4:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4898:326::-;5021:35;;;5001:17;5021:35;;;:19;:35;;;;;5001:55;;4977:12;;5001:17;5021:35;5001:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5074:4;:11;5089:1;5074:16;;5066:58;;;;-1:-1:-1;;;5066:58:4;;18719:2:25;5066:58:4;;;18701:21:25;18758:2;18738:18;;;18731:30;18797:31;18777:18;;;18770:59;18846:18;;5066:58:4;18517:353:25;5066:58:4;5141:31;5152:1;5169:2;5155:4;:11;:16;;;;:::i;:::-;5141:4;;:31;:10;:31::i;4614:278::-;1094:13:9;:11;:13::i;:::-;4785:14:4::1;;4809:4;4768:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4768:47:4;;::::1;::::0;;;;;;4730:35:::1;::::0;::::1;;::::0;;;:19:::1;4768:47;4730:35:::0;;;;;;:85;;::::1;::::0;:35;;:85;;::::1;::::0;::::1;:::i;:::-;;4830:55;4854:14;4870;;4830:55;;;;;;;;:::i;:::-;;;;;;;;4614:278:::0;;;:::o;5230:133::-;1094:13:9;:11;:13::i;:::-;5299:8:4::1;:20:::0;;-1:-1:-1;;;;;;5299:20:4::1;-1:-1:-1::0;;;;;5299:20:4;::::1;::::0;;::::1;::::0;;;5334:22:::1;::::0;2838:51:25;;;5334:22:4::1;::::0;2826:2:25;2811:18;5334:22:4::1;;;;;;;5230:133:::0;:::o;3626:202::-;1094:13:9;:11;:13::i;:::-;3759:62:4::1;::::0;-1:-1:-1;;;3759:62:4;;-1:-1:-1;;;;;3759:10:4::1;:20;::::0;::::1;::::0;:62:::1;::::0;3780:8;;3790;;3800:11;;3813:7;;;;3759:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3626:202:::0;;;;;:::o;2100:757:5:-;2309:27;;;2287:19;2309:27;;;:14;:27;;;;;;:40;;;;2337:11;;;;2309:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2309:48:5;;;;;;;;;;;;-1:-1:-1;2309:48:5;2367:73;;;;-1:-1:-1;;;2367:73:5;;20229:2:25;2367:73:5;;;20211:21:25;20268:2;20248:18;;;20241:30;20307:34;20287:18;;;20280:62;-1:-1:-1;;;20358:18:25;;;20351:33;20401:19;;2367:73:5;20027:399:25;2367:73:5;2481:11;2468:8;;2458:19;;;;;;;:::i;:::-;;;;;;;;:34;2450:80;;;;-1:-1:-1;;;2450:80:5;;20633:2:25;2450:80:5;;;20615:21:25;20672:2;20652:18;;;20645:30;20711:34;20691:18;;;20684:62;-1:-1:-1;;;20762:18:25;;;20755:31;20803:19;;2450:80:5;20431:397:25;2450:80:5;2576:27;;;2635:1;2576:27;;;:14;:27;;;;;;:40;;;;2604:11;;;;2576:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2576:48:5;;;;;;;;;;;;:61;;;;2704:65;;;;;;;;;;;;;;;;;;;2726:11;;2739;;2704:65;;;;;;2739:11;2704:65;;2739:11;2704:65;;;;;;;;;-1:-1:-1;;2704:65:5;;;;;;;;;;;;;;;;;;;;;;2752:6;;-1:-1:-1;2704:65:5;-1:-1:-1;2760:8:5;;;;;;2704:65;;2760:8;;;;2704:65;;;;;;;;;-1:-1:-1;2704:21:5;;-1:-1:-1;;;2704:65:5:i;:::-;2784:66;2804:11;2817;;2830:6;2838:11;2784:66;;;;;;;;;;:::i;5369:280:4:-;1094:13:9;:11;:13::i;:::-;5492:1:4::1;5482:7;:11;5474:45;;;::::0;-1:-1:-1;;;5474:45:4;;21533:2:25;5474:45:4::1;::::0;::::1;21515:21:25::0;21572:2;21552:18;;;21545:30;-1:-1:-1;;;21591:18:25;;;21584:51;21652:18;;5474:45:4::1;21331:345:25::0;5474:45:4::1;5529:28;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;;;:51;;;5595:47;;21904:34:25;;;21954:18;;21947:43;;;;22006:18;;;21999:34;;;5595:47:4::1;::::0;21867:2:25;21852:18;5595:47:4::1;21681:358:25::0;4413:195:4;1094:13:9;:11;:13::i;:::-;4510:32:4::1;::::0;::::1;;::::0;;;:19:::1;:32;::::0;;;;:40:::1;::::0;4545:5;;4510:40:::1;:::i;:::-;;4565:36;4582:11;4595:5;;4565:36;;;;;;;;:::i;2081:198:9:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:9;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:9;;22246:2:25;2161:73:9::1;::::0;::::1;22228:21:25::0;22285:2;22265:18;;;22258:30;22324:34;22304:18;;;22297:62;-1:-1:-1;;;22375:18:25;;;22368:36;22421:19;;2161:73:9::1;22044:402:25::0;2161:73:9::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3358:209:4:-;3492:68;;-1:-1:-1;;;3492:68:4;;22688:6:25;22721:15;;;3492:68:4;;;22703:34:25;22773:15;;22753:18;;;22746:43;3541:4:4;22805:18:25;;;22798:60;22874:18;;;22867:34;;;3461:12:4;;3492:10;-1:-1:-1;;;;;3492:20:4;;;;22650:19:25;;3492:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3492:68:4;;;;;;;;;;;;:::i;:::-;3485:75;3358:209;-1:-1:-1;;;;;3358:209:4:o;980:591:5:-;1129:12;1143:19;1166:153;1200:9;1211:3;1239:34;;;1275:11;1288;1301:6;1309:8;1216:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1216:102:5;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:102:5;-1:-1:-1;;;;;;1216:102:5;;;;;;;;;;1174:4;;1166:153;;:33;:153::i;:::-;1128:191;;;;1377:7;1372:193;;1461:8;1451:19;;;;;;1400:14;:27;1415:11;1400:27;;;;;;;;;;;;;;;1428:11;1400:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1400:48:5;;;;;;;;;:70;;;;1489:65;;;;1503:11;;1516;;1441:6;;1537:8;;1547:6;;1489:65;:::i;:::-;;;;;;;;1118:453;;980:591;;;;:::o;1359:130:9:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:9;719:10:13;1422:23:9;1414:68;;;;-1:-1:-1;;;1414:68:9;;25313:2:25;1414:68:9;;;25295:21:25;;;25332:18;;;25325:30;25391:34;25371:18;;;25364:62;25443:18;;1414:68:9;25111:356:25;4328:307:14;4416:4;4613:15;4556:33;4582:7;4556:23;:33;:::i;:::-;4555:45;;4593:7;4555:45;:::i;:::-;:55;;4603:7;4555:55;:::i;:::-;:73;;4328:307;-1:-1:-1;;4328:307:14:o;2072:491:4:-;2294:32;;;2265:26;2294:32;;;:19;:32;;;;;2265:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2344:13;:20;2368:1;2344:25;;2336:86;;;;-1:-1:-1;;;2336:86:4;;26202:2:25;2336:86:4;;;26184:21:25;26241:2;26221:18;;;26214:30;26280:34;26260:18;;;26253:62;-1:-1:-1;;;26331:18:25;;;26324:46;26387:19;;2336:86:4;26000:412:25;2336:86:4;2432:124;;-1:-1:-1;;;2432:124:4;;-1:-1:-1;;;;;2432:10:4;:15;;;;2455:10;;2432:124;;2467:11;;2480:13;;2495:8;;2505:14;;2521:18;;2541:14;;2432:124;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:308;2072:491;;;;;;:::o;1217:261:14:-;1422:49;;-1:-1:-1;;;1422:49:14;;27461:2:25;1422:49:14;;;27443:21:25;27500:2;27480:18;;;27473:30;27539:34;27519:18;;;27512:62;-1:-1:-1;;;27590:18:25;;;27583:37;27637:19;;1422:49:14;27259:403:25;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;8865:2712:7:-;8999:12;9051:7;9035:12;9051:7;9045:2;9035:12;:::i;:::-;:23;;9027:50;;;;-1:-1:-1;;;9027:50:7;;27869:2:25;9027:50:7;;;27851:21:25;27908:2;27888:18;;;27881:30;-1:-1:-1;;;27927:18:25;;;27920:44;27981:18;;9027:50:7;27667:338:25;9027:50:7;9112:16;9121:7;9112:6;:16;:::i;:::-;9095:6;:13;:33;;9087:63;;;;-1:-1:-1;;;9087:63:7;;28212:2:25;9087:63:7;;;28194:21:25;28251:2;28231:18;;;28224:30;-1:-1:-1;;;28270:18:25;;;28263:47;28327:18;;9087:63:7;28010:341:25;9087:63:7;9161:22;9224:15;;9252:1895;;;;11288:4;11282:11;11269:24;;11466:1;11455:9;11448:20;11514:4;11503:9;11499:20;11493:4;11486:34;9217:2317;;9252:1895;9426:4;9420:11;9407:24;;10053:2;10044:7;10040:16;10419:9;10412:17;10406:4;10402:28;10390:9;10379;10375:25;10371:60;10467:7;10463:2;10459:16;10711:6;10697:9;10690:17;10684:4;10680:28;10668:9;10660:6;10656:22;10652:57;10648:70;10493:417;10744:3;10740:2;10737:11;10493:417;;;10882:9;;10871:21;;10785:4;10777:13;;;;10817;10493:417;;;-1:-1:-1;;10928:26:7;;;11128:2;11111:11;-1:-1:-1;;11107:25:7;11101:4;11094:39;-1:-1:-1;9217:2317:7;-1:-1:-1;11561:9:7;8865:2712;-1:-1:-1;;;;8865:2712:7:o;1118:1240:8:-;1275:4;1281:12;1341:15;1366:13;1389:24;1426:8;1416:19;;-1:-1:-1;;;;;1416:19:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1416:19:8;;1389:46;;1904:1;1879;1846:9;1840:16;1812:4;1801:9;1797:20;1767:1;1733:7;1708:4;1690:239;1678:251;;1992:16;1981:27;;2036:8;2027:7;2024:21;2021:76;;;2075:8;2064:19;;2021:76;2178:7;2165:11;2158:28;2294:7;2291:1;2284:4;2271:11;2267:22;2252:50;2329:8;;;;-1:-1:-1;1118:1240:8;-1:-1:-1;;;;;;1118:1240:8:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:159:25;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:347::-;229:8;239:6;293:3;286:4;278:6;274:17;270:27;260:55;;311:1;308;301:12;260:55;-1:-1:-1;334:20:25;;-1:-1:-1;;;;;366:30:25;;363:50;;;409:1;406;399:12;363:50;446:4;438:6;434:17;422:29;;498:3;491:4;482:6;474;470:19;466:30;463:39;460:59;;;515:1;512;505:12;460:59;178:347;;;;;:::o;530:171::-;597:20;;-1:-1:-1;;;;;646:30:25;;636:41;;626:69;;691:1;688;681:12;706:862;812:6;820;828;836;844;852;905:3;893:9;884:7;880:23;876:33;873:53;;;922:1;919;912:12;873:53;945:28;963:9;945:28;:::i;:::-;935:38;;1024:2;1013:9;1009:18;996:32;-1:-1:-1;;;;;1088:2:25;1080:6;1077:14;1074:34;;;1104:1;1101;1094:12;1074:34;1143:58;1193:7;1184:6;1173:9;1169:22;1143:58;:::i;:::-;1220:8;;-1:-1:-1;1117:84:25;-1:-1:-1;1117:84:25;;-1:-1:-1;1274:37:25;1307:2;1292:18;;1274:37;:::i;:::-;1264:47;;1364:2;1353:9;1349:18;1336:32;1320:48;;1393:2;1383:8;1380:16;1377:36;;;1409:1;1406;1399:12;1377:36;;1448:60;1500:7;1489:8;1478:9;1474:24;1448:60;:::i;:::-;706:862;;;;-1:-1:-1;706:862:25;;-1:-1:-1;706:862:25;;1527:8;;706:862;-1:-1:-1;;;706:862:25:o;1573:184::-;1631:6;1684:2;1672:9;1663:7;1659:23;1655:32;1652:52;;;1700:1;1697;1690:12;1652:52;1723:28;1741:9;1723:28;:::i;1762:642::-;1846:6;1854;1862;1870;1923:2;1911:9;1902:7;1898:23;1894:32;1891:52;;;1939:1;1936;1929:12;1891:52;1962:28;1980:9;1962:28;:::i;:::-;1952:38;;2040:2;2029:9;2025:18;2012:32;2087:5;2080:13;2073:21;2066:5;2063:32;2053:60;;2109:1;2106;2099:12;2053:60;2132:5;-1:-1:-1;2188:2:25;2173:18;;2160:32;-1:-1:-1;;;;;2204:30:25;;2201:50;;;2247:1;2244;2237:12;2201:50;2286:58;2336:7;2327:6;2316:9;2312:22;2286:58;:::i;:::-;1762:642;;;;-1:-1:-1;2363:8:25;-1:-1:-1;;;;1762:642:25:o;2900:481::-;2978:6;2986;2994;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3086:28;3104:9;3086:28;:::i;:::-;3076:38;;3165:2;3154:9;3150:18;3137:32;-1:-1:-1;;;;;3184:6:25;3181:30;3178:50;;;3224:1;3221;3214:12;3178:50;3263:58;3313:7;3304:6;3293:9;3289:22;3263:58;:::i;:::-;2900:481;;3340:8;;-1:-1:-1;3237:84:25;;-1:-1:-1;;;;2900:481:25:o;3578:139::-;-1:-1:-1;;;;;3661:31:25;;3651:42;;3641:70;;3707:1;3704;3697:12;3722:127;3783:10;3778:3;3774:20;3771:1;3764:31;3814:4;3811:1;3804:15;3838:4;3835:1;3828:15;3854:275;3925:2;3919:9;3990:2;3971:13;;-1:-1:-1;;3967:27:25;3955:40;;-1:-1:-1;;;;;4010:34:25;;4046:22;;;4007:62;4004:88;;;4072:18;;:::i;:::-;4108:2;4101:22;3854:275;;-1:-1:-1;3854:275:25:o;4134:186::-;4182:4;-1:-1:-1;;;;;4207:6:25;4204:30;4201:56;;;4237:18;;:::i;:::-;-1:-1:-1;4303:2:25;4282:15;-1:-1:-1;;4278:29:25;4309:4;4274:40;;4134:186::o;4325:462::-;4367:5;4420:3;4413:4;4405:6;4401:17;4397:27;4387:55;;4438:1;4435;4428:12;4387:55;4474:6;4461:20;4505:48;4521:31;4549:2;4521:31;:::i;:::-;4505:48;:::i;:::-;4578:2;4569:7;4562:19;4624:3;4617:4;4612:2;4604:6;4600:15;4596:26;4593:35;4590:55;;;4641:1;4638;4631:12;4590:55;4706:2;4699:4;4691:6;4687:17;4680:4;4671:7;4667:18;4654:55;4754:1;4729:16;;;4747:4;4725:27;4718:38;;;;4733:7;4325:462;-1:-1:-1;;;4325:462:25:o;4792:693::-;4894:6;4902;4910;4918;4971:3;4959:9;4950:7;4946:23;4942:33;4939:53;;;4988:1;4985;4978:12;4939:53;5011:28;5029:9;5011:28;:::i;:::-;5001:38;;5089:2;5078:9;5074:18;5061:32;5102:39;5135:5;5102:39;:::i;:::-;5160:5;-1:-1:-1;5217:2:25;5202:18;;5189:32;5230:41;5189:32;5230:41;:::i;:::-;5290:7;-1:-1:-1;5348:2:25;5333:18;;5320:32;-1:-1:-1;;;;;5364:30:25;;5361:50;;;5407:1;5404;5397:12;5361:50;5430:49;5471:7;5462:6;5451:9;5447:22;5430:49;:::i;:::-;5420:59;;;4792:693;;;;;;;:::o;5490:843::-;5601:6;5609;5617;5625;5633;5686:3;5674:9;5665:7;5661:23;5657:33;5654:53;;;5703:1;5700;5693:12;5654:53;5742:9;5729:23;5761:39;5794:5;5761:39;:::i;:::-;5819:5;-1:-1:-1;5843:37:25;5876:2;5861:18;;5843:37;:::i;:::-;5833:47;;5932:2;5921:9;5917:18;5904:32;5945:41;5978:7;5945:41;:::i;:::-;6005:7;-1:-1:-1;6064:2:25;6049:18;;6036:32;6077:41;6036:32;6077:41;:::i;:::-;6137:7;-1:-1:-1;6195:3:25;6180:19;;6167:33;-1:-1:-1;;;;;6212:30:25;;6209:50;;;6255:1;6252;6245:12;6209:50;6278:49;6319:7;6310:6;6299:9;6295:22;6278:49;:::i;:::-;6268:59;;;5490:843;;;;;;;;:::o;6568:464::-;6652:6;6660;6668;6721:2;6709:9;6700:7;6696:23;6692:32;6689:52;;;6737:1;6734;6727:12;6689:52;6760:28;6778:9;6760:28;:::i;:::-;6750:38;;6839:2;6828:9;6824:18;6811:32;-1:-1:-1;;;;;6858:6:25;6855:30;6852:50;;;6898:1;6895;6888:12;6852:50;6921:49;6962:7;6953:6;6942:9;6938:22;6921:49;:::i;:::-;6911:59;;;6989:37;7022:2;7011:9;7007:18;6989:37;:::i;:::-;6979:47;;6568:464;;;;;:::o;7219:258::-;7291:1;7301:113;7315:6;7312:1;7309:13;7301:113;;;7391:11;;;7385:18;7372:11;;;7365:39;7337:2;7330:10;7301:113;;;7432:6;7429:1;7426:13;7423:48;;;7467:1;7458:6;7453:3;7449:16;7442:27;7423:48;;7219:258;;;:::o;7482:257::-;7523:3;7561:5;7555:12;7588:6;7583:3;7576:19;7604:63;7660:6;7653:4;7648:3;7644:14;7637:4;7630:5;7626:16;7604:63;:::i;:::-;7721:2;7700:15;-1:-1:-1;;7696:29:25;7687:39;;;;7728:4;7683:50;;7482:257;-1:-1:-1;;7482:257:25:o;7744:217::-;7891:2;7880:9;7873:21;7854:4;7911:44;7951:2;7940:9;7936:18;7928:6;7911:44;:::i;7966:256::-;8032:6;8040;8093:2;8081:9;8072:7;8068:23;8064:32;8061:52;;;8109:1;8106;8099:12;8061:52;8132:28;8150:9;8132:28;:::i;:::-;8122:38;;8179:37;8212:2;8201:9;8197:18;8179:37;:::i;:::-;8169:47;;7966:256;;;;;:::o;8851:255::-;8910:6;8963:2;8951:9;8942:7;8938:23;8934:32;8931:52;;;8979:1;8976;8969:12;8931:52;9018:9;9005:23;9037:39;9070:5;9037:39;:::i;9111:622::-;9206:6;9214;9222;9230;9238;9291:3;9279:9;9270:7;9266:23;9262:33;9259:53;;;9308:1;9305;9298:12;9259:53;9331:28;9349:9;9331:28;:::i;:::-;9321:38;;9378:37;9411:2;9400:9;9396:18;9378:37;:::i;:::-;9368:47;;9462:2;9451:9;9447:18;9434:32;9424:42;;9517:2;9506:9;9502:18;9489:32;-1:-1:-1;;;;;9536:6:25;9533:30;9530:50;;;9576:1;9573;9566:12;9530:50;9615:58;9665:7;9656:6;9645:9;9641:22;9615:58;:::i;:::-;9111:622;;;;-1:-1:-1;9111:622:25;;-1:-1:-1;9692:8:25;;9589:84;9111:622;-1:-1:-1;;;9111:622:25:o;9738:324::-;9813:6;9821;9829;9882:2;9870:9;9861:7;9857:23;9853:32;9850:52;;;9898:1;9895;9888:12;9850:52;9921:28;9939:9;9921:28;:::i;:::-;9911:38;;9968:37;10001:2;9990:9;9986:18;9968:37;:::i;:::-;9958:47;;10052:2;10041:9;10037:18;10024:32;10014:42;;9738:324;;;;;:::o;10067:468::-;10151:6;10159;10167;10175;10228:3;10216:9;10207:7;10203:23;10199:33;10196:53;;;10245:1;10242;10235:12;10196:53;10268:28;10286:9;10268:28;:::i;:::-;10258:38;;10315:37;10348:2;10337:9;10333:18;10315:37;:::i;:::-;10305:47;;10402:2;10391:9;10387:18;10374:32;10415:39;10448:5;10415:39;:::i;:::-;10067:468;;;;-1:-1:-1;10473:5:25;;10525:2;10510:18;10497:32;;-1:-1:-1;;10067:468:25:o;10899:380::-;10978:1;10974:12;;;;11021;;;11042:61;;11096:4;11088:6;11084:17;11074:27;;11042:61;11149:2;11141:6;11138:14;11118:18;11115:38;11112:161;;;11195:10;11190:3;11186:20;11183:1;11176:31;11230:4;11227:1;11220:15;11258:4;11255:1;11248:15;11112:161;;10899:380;;;:::o;11284:271::-;11467:6;11459;11454:3;11441:33;11423:3;11493:16;;11518:13;;;11493:16;11284:271;-1:-1:-1;11284:271:25:o;12160:290::-;12252:5;12246:12;12242:2;12231:28;12226:3;12219:41;12324:4;12317:5;12313:16;12307:23;12303:2;12292:39;12285:4;12280:3;12276:14;12269:63;12381:4;12374:5;12370:16;12364:23;12357:4;12352:3;12348:14;12341:47;12437:4;12430:5;12426:16;12420:23;12413:4;12408:3;12404:14;12397:47;;;12160:290::o;12455:323::-;12704:6;12692:19;;12674:38;;12661:3;12646:19;;12721:51;12768:2;12753:18;;12745:6;12721:51;:::i;12783:266::-;12871:6;12866:3;12859:19;12923:6;12916:5;12909:4;12904:3;12900:14;12887:43;-1:-1:-1;12975:1:25;12950:16;;;12968:4;12946:27;;;12939:38;;;;13031:2;13010:15;;;-1:-1:-1;;13006:29:25;12997:39;;;12993:50;;12783:266::o;13054:667::-;13345:6;13333:19;;13315:38;;-1:-1:-1;;;;;13389:32:25;;13384:2;13369:18;;13362:60;13409:3;13453:2;13438:18;;13431:31;;;-1:-1:-1;;13485:45:25;;13510:19;;13502:6;13485:45;:::i;:::-;13580:6;13573:14;13566:22;13561:2;13550:9;13546:18;13539:50;13638:9;13630:6;13626:22;13620:3;13609:9;13605:19;13598:51;13666:49;13708:6;13700;13692;13666:49;:::i;:::-;13658:57;13054:667;-1:-1:-1;;;;;;;;;13054:667:25:o;13726:245::-;13805:6;13813;13866:2;13854:9;13845:7;13841:23;13837:32;13834:52;;;13882:1;13879;13872:12;13834:52;-1:-1:-1;;13905:16:25;;13961:2;13946:18;;;13940:25;13905:16;;13940:25;;-1:-1:-1;13726:245:25:o;13976:184::-;14046:6;14099:2;14087:9;14078:7;14074:23;14070:32;14067:52;;;14115:1;14112;14105:12;14067:52;-1:-1:-1;14138:16:25;;13976:184;-1:-1:-1;13976:184:25:o;14165:166::-;14243:13;;14296:2;14285:21;;;14275:32;;14265:60;;14321:1;14318;14311:12;14336:665;14429:6;14482:3;14470:9;14461:7;14457:23;14453:33;14450:53;;;14499:1;14496;14489:12;14450:53;14532:2;14526:9;14574:3;14566:6;14562:16;14644:6;14632:10;14629:22;-1:-1:-1;;;;;14596:10:25;14593:34;14590:62;14587:88;;;14655:18;;:::i;:::-;14691:2;14684:22;14730:39;14759:9;14730:39;:::i;:::-;14722:6;14715:55;14803:48;14847:2;14836:9;14832:18;14803:48;:::i;:::-;14798:2;14790:6;14786:15;14779:73;14906:2;14895:9;14891:18;14885:25;14880:2;14872:6;14868:15;14861:50;14965:2;14954:9;14950:18;14944:25;14939:2;14931:6;14927:15;14920:50;14989:6;14979:16;;;14336:665;;;;:::o;15006:326::-;15201:6;15193;15189:19;15178:9;15171:38;15245:2;15240;15229:9;15225:18;15218:30;15152:4;15265:61;15322:2;15311:9;15307:18;15299:6;15291;15265:61;:::i;15906:259::-;15976:6;16029:2;16017:9;16008:7;16004:23;16000:32;15997:52;;;16045:1;16042;16035:12;15997:52;16077:9;16071:16;16096:39;16129:5;16096:39;:::i;16170:626::-;16549:6;16537:19;;16519:38;;-1:-1:-1;;;;;16593:32:25;;16588:2;16573:18;;16566:60;16657:2;16642:18;;16635:34;;;16506:3;16491:19;;16678:51;16725:2;16710:18;;16702:6;16678:51;:::i;:::-;16738:52;16785:3;16774:9;16770:19;16762:6;16738:52;:::i;:::-;16170:626;;;;;;;;:::o;16801:656::-;17180:6;17168:19;;17150:38;;-1:-1:-1;;;;;17262:15:25;;;17257:2;17242:18;;17235:43;17314:15;;17309:2;17294:18;;17287:43;17137:3;17122:19;;17339:51;17386:2;17371:18;;17363:6;17339:51;:::i;17462:643::-;17847:6;17835:19;;17817:38;;-1:-1:-1;;;;;17891:32:25;;17886:2;17871:18;;17864:60;17972:4;17960:17;;17955:2;17940:18;;17933:45;17804:3;17789:19;;17987:51;18034:2;18019:18;;18011:6;17987:51;:::i;18875:127::-;18936:10;18931:3;18927:20;18924:1;18917:31;18967:4;18964:1;18957:15;18991:4;18988:1;18981:15;19007:125;19047:4;19075:1;19072;19069:8;19066:34;;;19080:18;;:::i;:::-;-1:-1:-1;19117:9:25;;19007:125::o;19137:382::-;19348:6;19340;19335:3;19322:33;19440:2;19436:15;;;;-1:-1:-1;;19432:53:25;19374:16;;19421:65;;;19510:2;19502:11;;19137:382;-1:-1:-1;19137:382:25:o;19524:498::-;19724:4;19753:6;19798:2;19790:6;19786:15;19775:9;19768:34;19850:2;19842:6;19838:15;19833:2;19822:9;19818:18;19811:43;;19890:6;19885:2;19874:9;19870:18;19863:34;19933:3;19928:2;19917:9;19913:18;19906:31;19954:62;20011:3;20000:9;19996:19;19988:6;19980;19954:62;:::i;:::-;19946:70;19524:498;-1:-1:-1;;;;;;;19524:498:25:o;20833:493::-;21082:6;21074;21070:19;21059:9;21052:38;21126:3;21121:2;21110:9;21106:18;21099:31;21033:4;21147:62;21204:3;21193:9;21189:19;21181:6;21173;21147:62;:::i;:::-;-1:-1:-1;;;;;21245:31:25;;;;21240:2;21225:18;;21218:59;-1:-1:-1;21308:2:25;21293:18;21286:34;21139:70;20833:493;-1:-1:-1;;;20833:493:25:o;22912:634::-;22991:6;23044:2;23032:9;23023:7;23019:23;23015:32;23012:52;;;23060:1;23057;23050:12;23012:52;23093:9;23087:16;-1:-1:-1;;;;;23118:6:25;23115:30;23112:50;;;23158:1;23155;23148:12;23112:50;23181:22;;23234:4;23226:13;;23222:27;-1:-1:-1;23212:55:25;;23263:1;23260;23253:12;23212:55;23292:2;23286:9;23317:48;23333:31;23361:2;23333:31;:::i;23317:48::-;23388:2;23381:5;23374:17;23428:7;23423:2;23418;23414;23410:11;23406:20;23403:33;23400:53;;;23449:1;23446;23439:12;23400:53;23462:54;23513:2;23508;23501:5;23497:14;23492:2;23488;23484:11;23462:54;:::i;23551:555::-;23808:6;23800;23796:19;23785:9;23778:38;23852:3;23847:2;23836:9;23832:18;23825:31;23759:4;23879:45;23919:3;23908:9;23904:19;23896:6;23879:45;:::i;:::-;-1:-1:-1;;;;;23964:6:25;23960:31;23955:2;23944:9;23940:18;23933:59;24040:9;24032:6;24028:22;24023:2;24012:9;24008:18;24001:50;24068:32;24093:6;24085;24068:32;:::i;24111:274::-;24240:3;24278:6;24272:13;24294:53;24340:6;24335:3;24328:4;24320:6;24316:17;24294:53;:::i;:::-;24363:16;;;;;24111:274;-1:-1:-1;;24111:274:25:o;24390:716::-;24693:6;24685;24681:19;24670:9;24663:38;24737:3;24732:2;24721:9;24717:18;24710:31;24644:4;24764:45;24804:3;24793:9;24789:19;24781:6;24764:45;:::i;:::-;-1:-1:-1;;;;;24849:6:25;24845:31;24840:2;24829:9;24825:18;24818:59;24925:9;24917:6;24913:22;24908:2;24897:9;24893:18;24886:50;24959:32;24984:6;24976;24959:32;:::i;:::-;24945:46;;25040:9;25032:6;25028:22;25022:3;25011:9;25007:19;25000:51;25068:32;25093:6;25085;25068:32;:::i;:::-;25060:40;24390:716;-1:-1:-1;;;;;;;;24390:716:25:o;25472:217::-;25512:1;25538;25528:132;;25582:10;25577:3;25573:20;25570:1;25563:31;25617:4;25614:1;25607:15;25645:4;25642:1;25635:15;25528:132;-1:-1:-1;25674:9:25;;25472:217::o;25694:168::-;25734:7;25800:1;25796;25792:6;25788:14;25785:1;25782:21;25777:1;25770:9;25763:17;25759:45;25756:71;;;25807:18;;:::i;:::-;-1:-1:-1;25847:9:25;;25694:168::o;25867:128::-;25907:3;25938:1;25934:6;25931:1;25928:13;25925:39;;;25944:18;;:::i;:::-;-1:-1:-1;25980:9:25;;25867:128::o;26417:837::-;26766:6;26758;26754:19;26743:9;26736:38;26810:3;26805:2;26794:9;26790:18;26783:31;26717:4;26837:45;26877:3;26866:9;26862:19;26854:6;26837:45;:::i;:::-;26930:9;26922:6;26918:22;26913:2;26902:9;26898:18;26891:50;26964:32;26989:6;26981;26964:32;:::i;:::-;-1:-1:-1;;;;;27070:15:25;;;27065:2;27050:18;;27043:43;27123:15;;27117:3;27102:19;;27095:44;27176:22;;;27023:3;27155:19;;27148:51;26950:46;-1:-1:-1;27216:32:25;26950:46;27233:6;27216:32;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2309600","executionCost":"infinite","totalCost":"infinite"},"external":{"estimateSendTotalSupply(uint16,bool,bytes)":"infinite","estimateSendUserBalance(uint16,bool,bytes)":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getTrustedRemoteAddress(uint16)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","owner()":"2421","precrime()":"2382","renounceOwnership()":"infinite","retryMessage(uint16,bytes,uint64,bytes)":"infinite","sendTotalSupply(uint16,address,address,bytes)":"infinite","sendUserBalance(address,uint16,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMinDstGas(uint16,uint16,uint256)":"infinite","setPrecrime(address)":"27827","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","votingEscrow()":"infinite","votingEscrowRemapper()":"infinite"},"internal":{"_hasLastCheckpointExpired(uint256)":"261","_nonblockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite"}},"methodIdentifiers":{"estimateSendTotalSupply(uint16,bool,bytes)":"16334c8f","estimateSendUserBalance(uint16,bool,bytes)":"65d092d0","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","sendTotalSupply(uint16,address,address,bytes)":"416b154a","sendUserBalance(address,uint16,address,address,bytes)":"4a759489","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","votingEscrow()":"4f2bfe5b","votingEscrowRemapper()":"363bf0de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_votingEscrowRemapper\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"dstChainId\",\"type\":\"uint16\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"TotalSupplyToChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"localUser\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"remoteUser\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"userPoint\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"UserBalToChain\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendUserBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendTotalSupply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendUserBalance\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingEscrowRemapper\",\"outputs\":[{\"internalType\":\"contract IVotingEscrowRemapper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OmniVotingEscrow.sol\":\"OmniVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/OmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"./interfaces/IVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IOmniVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IVotingEscrowRemapper.sol\\\";\\nimport \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\n\\ncontract OmniVotingEscrow is NonblockingLzApp, IOmniVotingEscrow {\\n IVotingEscrow public immutable votingEscrow;\\n IVotingEscrowRemapper public immutable votingEscrowRemapper;\\n\\n // Packet types for child chains:\\n uint16 PT_USER = 0; // user balance and total supply update\\n uint16 PT_TS = 1; // total supply update\\n\\n event UserBalToChain(uint16 dstChainId, address localUser, address remoteUser, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\\n event TotalSupplyToChain(uint16 dstChainId, IVotingEscrow.Point totalSupplyPoint);\\n\\n constructor(address _lzEndpoint, address _votingEscrowRemapper) NonblockingLzApp(_lzEndpoint) {\\n require(_votingEscrowRemapper != address(0x0), \\\"OmniVotingEscrow: remapper cannot be 0x0\\\");\\n\\n votingEscrowRemapper = IVotingEscrowRemapper(_votingEscrowRemapper);\\n votingEscrow = votingEscrowRemapper.getVotingEscrow();\\n }\\n\\n function _nonblockingLzReceive(\\n uint16, /*_srcChainId*/\\n bytes memory, /*_srcAddress*/\\n uint64, /*_nonce*/\\n bytes memory /*_payload*/\\n ) internal virtual override {\\n revert(\\\"OmniVotingEscrow: cannot receive lzMsgs\\\");\\n }\\n\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory lzPayload = abi.encode(PT_USER, address(0x0), 0, IVotingEscrow.Point(0, 0, 0, 0), IVotingEscrow.Point(0, 0, 0, 0));\\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\\n }\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory lzPayload = abi.encode(PT_TS, IVotingEscrow.Point(0, 0, 0, 0));\\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\\n }\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\\n uint userEpoch = votingEscrow.user_point_epoch(_localUser);\\n IVotingEscrow.Point memory uPoint = votingEscrow.user_point_history(_localUser, userEpoch);\\n\\n uint lockedEnd = votingEscrow.locked__end(_localUser);\\n\\n // always send total supply along with a user update\\n uint totalSupplyEpoch = votingEscrow.epoch();\\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n\\n address remappedAddress = votingEscrowRemapper.getRemoteUser(_localUser, _dstChainId);\\n address remoteUser = remappedAddress != address(0x0) ? remappedAddress : _localUser;\\n\\n bytes memory lzPayload = abi.encode(PT_USER, remoteUser, lockedEnd, uPoint, tsPoint);\\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n emit UserBalToChain(_dstChainId, _localUser, remoteUser, uPoint, tsPoint);\\n }\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\\n uint totalSupplyEpoch = votingEscrow.epoch();\\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n\\n // Total supply point may only change if none has checkpointed after the current week has started.\\n // If that's the case the checkpoint is performed at this point, before bridging the total supply.\\n if (_hasLastCheckpointExpired(tsPoint.ts)) {\\n votingEscrow.checkpoint();\\n // Get updated point.\\n totalSupplyEpoch = votingEscrow.epoch();\\n tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n }\\n\\n bytes memory lzPayload = abi.encode(PT_TS, tsPoint);\\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n emit TotalSupplyToChain(_dstChainId, tsPoint);\\n }\\n\\n function _hasLastCheckpointExpired(uint lastCheckpointTimestamp) internal view returns (bool) {\\n // If last checkpoint rounded to weeks + one week is still behind the block timestamp, then it has expired.\\n return (lastCheckpointTimestamp / 1 weeks) * 1 weeks + 1 weeks < block.timestamp;\\n }\\n}\\n\",\"keccak256\":\"0x702d0d5f599e9825d67cb85317591fde1e08fdc86c67785344ac4dfcc9dabe04\",\"license\":\"MIT\"},\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":3728,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"PT_USER","offset":0,"slot":"5","type":"t_uint16"},{"astId":3731,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"PT_TS","offset":2,"slot":"5","type":"t_uint16"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/OmniVotingEscrowChild.sol":{"OmniVotingEscrowChild":{"abi":[{"inputs":[{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegationHook","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"TotalSupplyFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"userPoint","type":"tuple"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"UserBalFromChain","type":"event"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delegationHook","outputs":[{"internalType":"contract IL2LayerZeroDelegation","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"_point","type":"tuple"}],"name":"getPointValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"locked__end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyPoint","outputs":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userPoints","outputs":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_2907":{"entryPoint":null,"id":2907,"parameterSlots":0,"returnSlots":0},"@_4169":{"entryPoint":null,"id":4169,"parameterSlots":2,"returnSlots":0},"@_494":{"entryPoint":null,"id":494,"parameterSlots":1,"returnSlots":0},"@_935":{"entryPoint":null,"id":935,"parameterSlots":1,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2995":{"entryPoint":241,"id":2995,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":321,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":350,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:912:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:25","statements":[{"nodeType":"YulAssignment","src":"84:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:25"},"nodeType":"YulFunctionCall","src":"93:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:25"}]},{"body":{"nodeType":"YulBlock","src":"169:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:25"},"nodeType":"YulFunctionCall","src":"171:12:25"},"nodeType":"YulExpressionStatement","src":"171:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:25"},"nodeType":"YulFunctionCall","src":"150:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:25"},"nodeType":"YulFunctionCall","src":"146:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:25"},"nodeType":"YulFunctionCall","src":"135:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:25"},"nodeType":"YulFunctionCall","src":"125:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:25"},"nodeType":"YulFunctionCall","src":"118:50:25"},"nodeType":"YulIf","src":"115:70:25"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:25","type":""}],"src":"14:177:25"},{"body":{"nodeType":"YulBlock","src":"294:195:25","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:25"},"nodeType":"YulFunctionCall","src":"342:12:25"},"nodeType":"YulExpressionStatement","src":"342:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:25"},"nodeType":"YulFunctionCall","src":"311:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:25"},"nodeType":"YulFunctionCall","src":"307:32:25"},"nodeType":"YulIf","src":"304:52:25"},{"nodeType":"YulAssignment","src":"365:50:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:25"},"nodeType":"YulFunctionCall","src":"375:40:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:25"}]},{"nodeType":"YulAssignment","src":"424:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:25"},"nodeType":"YulFunctionCall","src":"464:18:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:25"},"nodeType":"YulFunctionCall","src":"434:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:25","type":""}],"src":"196:293:25"},{"body":{"nodeType":"YulBlock","src":"668:242:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:21:25"},"nodeType":"YulExpressionStatement","src":"678:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:25"},"nodeType":"YulFunctionCall","src":"715:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:25","type":"","value":"52"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:25"},"nodeType":"YulFunctionCall","src":"708:30:25"},"nodeType":"YulExpressionStatement","src":"708:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:25"},"nodeType":"YulFunctionCall","src":"754:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f","kind":"string","nodeType":"YulLiteral","src":"774:34:25","type":"","value":"OmniVotingEscrowChild: delegatio"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:25"},"nodeType":"YulFunctionCall","src":"747:62:25"},"nodeType":"YulExpressionStatement","src":"747:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"840:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"825:3:25"},"nodeType":"YulFunctionCall","src":"825:18:25"},{"hexValue":"6e20686f6f6b2063616e6e6f7420626520307830","kind":"string","nodeType":"YulLiteral","src":"845:22:25","type":"","value":"n hook cannot be 0x0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"818:6:25"},"nodeType":"YulFunctionCall","src":"818:50:25"},"nodeType":"YulExpressionStatement","src":"818:50:25"},{"nodeType":"YulAssignment","src":"877:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"900:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"885:3:25"},"nodeType":"YulFunctionCall","src":"885:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"877:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:25","type":""}],"src":"494:416:25"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 52)\n mstore(add(headStart, 64), \"OmniVotingEscrowChild: delegatio\")\n mstore(add(headStart, 96), \"n hook cannot be 0x0\")\n tail := add(headStart, 128)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c0604052600a805463ffffffff1916620100001790553480156200002357600080fd5b50604051620027e5380380620027e583398101604081905262000046916200015e565b81806200005333620000f1565b6001600160a01b03908116608052821615159050620000de5760405162461bcd60e51b815260206004820152603460248201527f4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f60448201527f6e20686f6f6b2063616e6e6f7420626520307830000000000000000000000000606482015260840160405180910390fd5b6001600160a01b031660a0525062000196565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200015957600080fd5b919050565b600080604083850312156200017257600080fd5b6200017d8362000141565b91506200018d6020840162000141565b90509250929050565b60805160a0516125f1620001f460003960008181610376015281816118e601526119d80152600081816104d20152818161066b015281816108ba0152818161094301528181610abd01528181610f27015261136901526125f16000f3fe6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea26469706673582212208e77efc2663b67c491d6a8aa9cd21d2e9d7d8aee12e9c19fbab897fdd343d6ee64736f6c634300080a0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH1 0xA DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH3 0x10000 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x27E5 CODESIZE SUB DUP1 PUSH3 0x27E5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x46 SWAP2 PUSH3 0x15E JUMP JUMPDEST DUP2 DUP1 PUSH3 0x53 CALLER PUSH3 0xF1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x80 MSTORE DUP3 AND ISZERO ISZERO SWAP1 POP PUSH3 0xDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A2064656C65676174696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20686F6F6B2063616E6E6F7420626520307830000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH3 0x196 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x159 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x17D DUP4 PUSH3 0x141 JUMP JUMPDEST SWAP2 POP PUSH3 0x18D PUSH1 0x20 DUP5 ADD PUSH3 0x141 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x25F1 PUSH3 0x1F4 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x376 ADD MSTORE DUP2 DUP2 PUSH2 0x18E6 ADD MSTORE PUSH2 0x19D8 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4D2 ADD MSTORE DUP2 DUP2 PUSH2 0x66B ADD MSTORE DUP2 DUP2 PUSH2 0x8BA ADD MSTORE DUP2 DUP2 PUSH2 0x943 ADD MSTORE DUP2 DUP2 PUSH2 0xABD ADD MSTORE DUP2 DUP2 PUSH2 0xF27 ADD MSTORE PUSH2 0x1369 ADD MSTORE PUSH2 0x25F1 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xCBED8B9C GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xF4182ACB EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xF50DDBC7 EQ PUSH2 0x5FD JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x648 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA6C3D165 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x473 JUMPI DUP1 PUSH4 0xADC63589 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x164 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x74D2495F EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x378EF708 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x208 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x1E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x97A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF1 JUMP JUMPDEST PUSH2 0x9C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x9D1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xA9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xB24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0xC5B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x370 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xC6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x1F10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F23 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x398 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x398 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xD09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x48E CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xE19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x50F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xEAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x52F CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5C JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xF9D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FCE JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x1265 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x12BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x9 SLOAD PUSH2 0x5D5 SWAP3 PUSH1 0xF DUP2 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SWAP2 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF SWAP6 DUP7 SIGNEXTEND DUP2 MSTORE SWAP4 SWAP1 SWAP5 SIGNEXTEND PUSH1 0x20 DUP5 ADD MSTORE SWAP3 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D5 PUSH2 0x618 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP4 DIV SWAP1 SIGNEXTEND SWAP2 SWAP1 DUP5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x200F JUMP JUMPDEST PUSH2 0x1338 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x703 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x72F SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x77C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x751 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x77C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x75F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x797 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x7BF JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x7B5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x890 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x13E9 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x92A PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x8ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x7 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0x9BB SWAP1 PUSH2 0x154D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CB DUP3 PUSH2 0x154D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x9F2 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA1E SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA6B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA40 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA6B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA4E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA82 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAA6 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xAF6 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x890 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xBF8 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x9CB SWAP1 PUSH2 0x154D JUMP JUMPDEST PUSH2 0xC63 PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xC6D PUSH1 0x0 PUSH2 0x1646 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xC88 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCB4 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD2C SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD58 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD88 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xA97 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0xE11 SWAP2 SWAP1 PUSH2 0x2108 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xE21 PUSH2 0x14F3 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE36 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x211F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0xE6B SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1A69 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xEB4 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xF10 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0xF64 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2145 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF92 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFC0 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x1040 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1051 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x10B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10D3 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x116B SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x11A2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x217E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11BB PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1203 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x126D PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x128B SWAP1 DUP4 DUP4 PUSH2 0x1AED JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x12C7 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x132C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1646 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x13E0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21B9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x144C GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1411 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x17A3 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0xBF8 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1486 SWAP2 SWAP1 PUSH2 0x2264 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x14E3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x1563 SWAP1 TIMESTAMP PUSH2 0x2108 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1572 SWAP2 SWAP1 PUSH2 0x22DE JUMP JUMPDEST DUP3 MLOAD PUSH2 0x157E SWAP2 SWAP1 PUSH2 0x237C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND SLT PUSH2 0x159A JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x159D JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xA SLOAD PUSH2 0xFFFF DUP1 DUP4 AND SWAP2 AND EQ ISZERO PUSH2 0x15CA JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x91B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0xFFFF DUP3 DUP2 AND PUSH3 0x10000 SWAP1 SWAP3 DIV AND EQ ISZERO PUSH2 0x15EB JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x1978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A20756E6B6E6F776E2070 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x61636B65742074797065 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x16A4 DUP2 PUSH1 0x1F PUSH2 0x23CC JUMP JUMPDEST LT ISZERO PUSH2 0x16E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x16ED DUP3 DUP5 PUSH2 0x23CC JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1750 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x179A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1789 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1771 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17C8 JUMPI PUSH2 0x17C8 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17F2 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x1814 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1847 SWAP2 SWAP1 PUSH2 0x245D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 SWAP1 SSTORE PUSH1 0x6 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP8 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP2 DUP4 AND DUP3 MUL OR DUP4 SSTORE DUP9 DUP6 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE PUSH1 0x60 DUP1 DUP11 ADD MLOAD PUSH1 0x2 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE DUP8 MLOAD SWAP4 DUP9 ADD MLOAD SWAP4 DUP3 AND SWAP4 SWAP1 SWAP2 AND MUL SWAP2 SWAP1 SWAP2 OR PUSH1 0x7 SSTORE DUP5 DUP3 ADD MLOAD PUSH1 0x8 SSTORE DUP5 ADD MLOAD PUSH1 0x9 SSTORE MLOAD PUSH4 0x6F8985FF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP PUSH32 0x0 AND SWAP2 POP PUSH4 0xDF130BFE SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0xAE0E70D8538C5776F9975183D965B1722A0E8FA0256C8301CB707F64A9821F83 DUP7 DUP6 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x14E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x198E SWAP2 SWAP1 PUSH2 0x2546 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP2 AND OR PUSH1 0x7 SSTORE PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x8 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x9 SSTORE DUP1 MLOAD PUSH4 0x96345FB5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 POP PUSH4 0x96345FB5 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9048DA34D2DAC99755410B6E83E1EAAB692909FF964F5BC920756AB49C73DF9A DUP4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP3 SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1A75 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A97 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1AB0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1AC2 JUMP JUMPDEST POP PUSH2 0x1AE9 SWAP3 SWAP2 POP PUSH2 0x1B61 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1AF9 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1B34 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1B46 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1AE9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1B62 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1BAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1BC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x1C0E DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1C2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C36 DUP11 DUP4 DUP12 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x1C4A PUSH1 0x40 DUP11 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1C60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6D DUP10 DUP3 DUP11 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1CDA JUMPI PUSH2 0x1CDA PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xF SIGNEXTEND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1D25 JUMPI PUSH2 0x1D25 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD PUSH2 0x1D33 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1D43 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 SWAP3 DUP4 ADD CALLDATALOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1D7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1D85 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1DA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DAC DUP7 DUP3 DUP8 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1DD2 JUMPI PUSH2 0x1DD2 PUSH2 0x1C9C JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1E00 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1E1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x1E2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E3F PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST PUSH2 0x1CB2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1E54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x1E79 PUSH1 0x40 DUP6 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ECF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1EDE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EFC DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1F41 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1F51 DUP2 PUSH2 0x1B76 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x1F7F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x1F8F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1FB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FBD DUP9 DUP3 DUP10 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1FE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1FEE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1FFE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2025 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2030 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2040 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2050 DUP2 PUSH2 0x1E82 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2074 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x13E0 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x211A JUMPI PUSH2 0x211A PUSH2 0x20F2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2173 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x219C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x20AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x21E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x21F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2200 PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E0 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2243 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2173 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2276 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x229D PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x22BE DUP2 DUP7 PUSH2 0x1EE4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x22D2 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB PUSH1 0x0 DUP3 SGT PUSH1 0x0 DUP5 SGT DUP4 DUP4 DIV DUP6 GT DUP3 DUP3 AND AND ISZERO PUSH2 0x230E JUMPI PUSH2 0x230E PUSH2 0x20F2 JUMP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x0 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x233A JUMPI PUSH2 0x233A PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x0 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x2356 JUMPI PUSH2 0x2356 PUSH2 0x20F2 JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x236C JUMPI PUSH2 0x236C PUSH2 0x20F2 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 SLT DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT ADD DUP4 SLT DUP2 ISZERO AND ISZERO PUSH2 0x23A7 JUMPI PUSH2 0x23A7 PUSH2 0x20F2 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x23C2 JUMPI PUSH2 0x23C2 PUSH2 0x20F2 JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x23DF JUMPI PUSH2 0x23DF PUSH2 0x20F2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2418 JUMPI PUSH2 0x2418 PUSH2 0x1C9C JUMP JUMPDEST DUP1 PUSH1 0x40 MSTORE POP DUP1 SWAP2 POP DUP3 MLOAD PUSH2 0x242B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x243B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x160 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH2 0x2481 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD SWAP1 SWAP6 POP PUSH2 0x2492 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x24A9 DUP8 PUSH1 0x60 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24B8 DUP8 PUSH1 0xE0 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x140 DUP2 ADD PUSH2 0x2513 PUSH1 0x40 DUP4 ADD DUP6 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST DUP3 MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SIGNEXTEND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x13E0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xA0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x2564 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH2 0x2573 DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP15 PUSH24 0xEFC2663B67C491D6A8AA9CD21D2E9D7D8AEE12E9C19FBAB8 SWAP8 REVERT 0xD3 NUMBER 0xD6 0xEE PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"250:3271:15:-:0;;;566:18;;;-1:-1:-1;;630:16:15;;;;;957:267;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1032:11;;936:32:9;719:10:13;936:18:9;:32::i;:::-;-1:-1:-1;;;;;980:42:4;;;;;1063:31:15;::::1;::::0;::::1;::::0;-1:-1:-1;1055:96:15::1;;;::::0;-1:-1:-1;;;1055:96:15;;696:2:25;1055:96:15::1;::::0;::::1;678:21:25::0;735:2;715:18;;;708:30;774:34;754:18;;;747:62;845:22;825:18;;;818:50;885:19;;1055:96:15::1;;;;;;;;-1:-1:-1::0;;;;;1161:56:15::1;;::::0;-1:-1:-1;250:3271:15;;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:177:25:-;93:13;;-1:-1:-1;;;;;135:31:25;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:416::-;250:3271:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_blockingLzReceive_1026":{"entryPoint":5097,"id":1026,"parameterSlots":4,"returnSlots":0},"@_checkOwner_2938":{"entryPoint":5363,"id":2938,"parameterSlots":0,"returnSlots":0},"@_getPointValue_4398":{"entryPoint":5453,"id":4398,"parameterSlots":1,"returnSlots":1},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_nonblockingLzReceive_4211":{"entryPoint":5541,"id":4211,"parameterSlots":4,"returnSlots":0},"@_transferOwnership_2995":{"entryPoint":5702,"id":2995,"parameterSlots":1,"returnSlots":0},"@_updateTotalSupplyFromChain_4311":{"entryPoint":6520,"id":4311,"parameterSlots":2,"returnSlots":0},"@_updateUserAndTotalSupplyFromChain_4274":{"entryPoint":6189,"id":4274,"parameterSlots":2,"returnSlots":0},"@balanceOf_4325":{"entryPoint":3072,"id":4325,"parameterSlots":1,"returnSlots":1},"@delegationHook_4123":{"entryPoint":null,"id":4123,"parameterSlots":0,"returnSlots":0},"@excessivelySafeCall_2826":{"entryPoint":6051,"id":2826,"parameterSlots":4,"returnSlots":2},"@failedMessages_943":{"entryPoint":null,"id":943,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_763":{"entryPoint":2718,"id":763,"parameterSlots":3,"returnSlots":0},"@getConfig_691":{"entryPoint":4920,"id":691,"parameterSlots":4,"returnSlots":1},"@getPointValue_4348":{"entryPoint":2496,"id":4348,"parameterSlots":1,"returnSlots":1},"@getTrustedRemoteAddress_843":{"entryPoint":3337,"id":843,"parameterSlots":1,"returnSlots":1},"@isTrustedRemote_916":{"entryPoint":2513,"id":916,"parameterSlots":3,"returnSlots":1},"@locked__end_4106":{"entryPoint":null,"id":4106,"parameterSlots":0,"returnSlots":0},"@lzEndpoint_446":{"entryPoint":null,"id":446,"parameterSlots":0,"returnSlots":0},"@lzReceive_553":{"entryPoint":1640,"id":553,"parameterSlots":6,"returnSlots":0},"@minDstGasLookup_456":{"entryPoint":null,"id":456,"parameterSlots":0,"returnSlots":0},"@nonblockingLzReceive_1056":{"entryPoint":2852,"id":1056,"parameterSlots":6,"returnSlots":0},"@owner_2924":{"entryPoint":null,"id":2924,"parameterSlots":0,"returnSlots":1},"@precrime_458":{"entryPoint":null,"id":458,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_2952":{"entryPoint":3163,"id":2952,"parameterSlots":0,"returnSlots":0},"@retryMessage_1135":{"entryPoint":3997,"id":1135,"parameterSlots":6,"returnSlots":0},"@setConfig_715":{"entryPoint":3848,"id":715,"parameterSlots":5,"returnSlots":0},"@setMinDstGas_892":{"entryPoint":4531,"id":892,"parameterSlots":3,"returnSlots":0},"@setPrecrime_859":{"entryPoint":3756,"id":859,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_745":{"entryPoint":2338,"id":745,"parameterSlots":1,"returnSlots":0},"@setSendVersion_730":{"entryPoint":2201,"id":730,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_812":{"entryPoint":3609,"id":812,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_784":{"entryPoint":4709,"id":784,"parameterSlots":3,"returnSlots":0},"@slice_2517":{"entryPoint":5782,"id":2517,"parameterSlots":3,"returnSlots":1},"@totalSupplyPoint_4114":{"entryPoint":null,"id":4114,"parameterSlots":0,"returnSlots":0},"@totalSupply_4335":{"entryPoint":2426,"id":4335,"parameterSlots":0,"returnSlots":1},"@transferOwnership_2975":{"entryPoint":4799,"id":2975,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_450":{"entryPoint":3183,"id":450,"parameterSlots":0,"returnSlots":0},"@userPoints_4111":{"entryPoint":null,"id":4111,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes_calldata":{"entryPoint":7046,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_struct_Point_fromMemory":{"entryPoint":9188,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":7831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":8633,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr":{"entryPoint":7409,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16":{"entryPoint":7295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":9309,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":7525,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":7146,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":7648,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":9542,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":7971,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":8207,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":8142,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":8028,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint64":{"entryPoint":7118,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":7908,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":8363,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_Point":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8347,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":8479,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":7952,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":9412,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8404,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":8574,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8742,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8832,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":9596,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8517,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":7346,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":7609,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":9164,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_int128":{"entryPoint":8926,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_int128":{"entryPoint":9084,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8456,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":7860,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":8288,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":8434,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7324,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":7810,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_int128":{"entryPoint":7394,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint16":{"entryPoint":7030,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24690:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:73:25","statements":[{"body":{"nodeType":"YulBlock","src":"109:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"118:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"121:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"111:6:25"},"nodeType":"YulFunctionCall","src":"111:12:25"},"nodeType":"YulExpressionStatement","src":"111:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"99:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:25"},"nodeType":"YulFunctionCall","src":"88:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:25"},"nodeType":"YulFunctionCall","src":"78:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:25"},"nodeType":"YulFunctionCall","src":"71:37:25"},"nodeType":"YulIf","src":"68:57:25"}]},"name":"validator_revert_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:25","type":""}],"src":"14:117:25"},{"body":{"nodeType":"YulBlock","src":"208:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"259:6:25"},"nodeType":"YulFunctionCall","src":"259:12:25"},"nodeType":"YulExpressionStatement","src":"259:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"236:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"232:3:25"},"nodeType":"YulFunctionCall","src":"232:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"251:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"228:3:25"},"nodeType":"YulFunctionCall","src":"228:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"221:6:25"},"nodeType":"YulFunctionCall","src":"221:35:25"},"nodeType":"YulIf","src":"218:55:25"},{"nodeType":"YulAssignment","src":"282:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"305:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"292:12:25"},"nodeType":"YulFunctionCall","src":"292:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"282:6:25"}]},{"body":{"nodeType":"YulBlock","src":"355:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"364:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"367:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"357:6:25"},"nodeType":"YulFunctionCall","src":"357:12:25"},"nodeType":"YulExpressionStatement","src":"357:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"327:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"335:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"324:2:25"},"nodeType":"YulFunctionCall","src":"324:30:25"},"nodeType":"YulIf","src":"321:50:25"},{"nodeType":"YulAssignment","src":"380:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"396:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"404:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:25"},"nodeType":"YulFunctionCall","src":"392:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"380:8:25"}]},{"body":{"nodeType":"YulBlock","src":"461:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"473:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"463:6:25"},"nodeType":"YulFunctionCall","src":"463:12:25"},"nodeType":"YulExpressionStatement","src":"463:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"432:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"428:3:25"},"nodeType":"YulFunctionCall","src":"428:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"449:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"424:3:25"},"nodeType":"YulFunctionCall","src":"424:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"456:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"421:2:25"},"nodeType":"YulFunctionCall","src":"421:39:25"},"nodeType":"YulIf","src":"418:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"171:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"179:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"187:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"197:6:25","type":""}],"src":"136:347:25"},{"body":{"nodeType":"YulBlock","src":"536:123:25","statements":[{"nodeType":"YulAssignment","src":"546:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"568:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"555:12:25"},"nodeType":"YulFunctionCall","src":"555:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"546:5:25"}]},{"body":{"nodeType":"YulBlock","src":"637:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"646:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"649:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"639:6:25"},"nodeType":"YulFunctionCall","src":"639:12:25"},"nodeType":"YulExpressionStatement","src":"639:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"597:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"608:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"615:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"604:3:25"},"nodeType":"YulFunctionCall","src":"604:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"594:2:25"},"nodeType":"YulFunctionCall","src":"594:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"587:6:25"},"nodeType":"YulFunctionCall","src":"587:49:25"},"nodeType":"YulIf","src":"584:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"515:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"526:5:25","type":""}],"src":"488:171:25"},{"body":{"nodeType":"YulBlock","src":"821:766:25","statements":[{"body":{"nodeType":"YulBlock","src":"868:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"877:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"880:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"870:6:25"},"nodeType":"YulFunctionCall","src":"870:12:25"},"nodeType":"YulExpressionStatement","src":"870:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"842:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"851:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"838:3:25"},"nodeType":"YulFunctionCall","src":"838:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"863:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"834:3:25"},"nodeType":"YulFunctionCall","src":"834:33:25"},"nodeType":"YulIf","src":"831:53:25"},{"nodeType":"YulVariableDeclaration","src":"893:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"919:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"906:12:25"},"nodeType":"YulFunctionCall","src":"906:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"897:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"962:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"938:23:25"},"nodeType":"YulFunctionCall","src":"938:30:25"},"nodeType":"YulExpressionStatement","src":"938:30:25"},{"nodeType":"YulAssignment","src":"977:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"987:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"977:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1001:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1032:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1043:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1028:3:25"},"nodeType":"YulFunctionCall","src":"1028:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1015:12:25"},"nodeType":"YulFunctionCall","src":"1015:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1005:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1056:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"1066:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1060:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1111:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1120:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1123:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1113:6:25"},"nodeType":"YulFunctionCall","src":"1113:12:25"},"nodeType":"YulExpressionStatement","src":"1113:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1099:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1107:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1096:2:25"},"nodeType":"YulFunctionCall","src":"1096:14:25"},"nodeType":"YulIf","src":"1093:34:25"},{"nodeType":"YulVariableDeclaration","src":"1136:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1192:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1203:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1188:3:25"},"nodeType":"YulFunctionCall","src":"1188:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1212:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1162:25:25"},"nodeType":"YulFunctionCall","src":"1162:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1140:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1150:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1229:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1239:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1229:6:25"}]},{"nodeType":"YulAssignment","src":"1256:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1266:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1256:6:25"}]},{"nodeType":"YulAssignment","src":"1283:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1315:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1326:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1311:3:25"},"nodeType":"YulFunctionCall","src":"1311:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"1293:17:25"},"nodeType":"YulFunctionCall","src":"1293:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1283:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1339:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1372:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1383:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1368:3:25"},"nodeType":"YulFunctionCall","src":"1368:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1355:12:25"},"nodeType":"YulFunctionCall","src":"1355:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1343:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1416:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1425:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1428:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1418:6:25"},"nodeType":"YulFunctionCall","src":"1418:12:25"},"nodeType":"YulExpressionStatement","src":"1418:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1402:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1412:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1399:2:25"},"nodeType":"YulFunctionCall","src":"1399:16:25"},"nodeType":"YulIf","src":"1396:36:25"},{"nodeType":"YulVariableDeclaration","src":"1441:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1497:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1508:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1519:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1467:25:25"},"nodeType":"YulFunctionCall","src":"1467:60:25"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"1445:8:25","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"1455:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1536:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"1546:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1536:6:25"}]},{"nodeType":"YulAssignment","src":"1563:18:25","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"1573:8:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"747:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"758:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"770:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"778:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"786:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"794:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"802:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"810:6:25","type":""}],"src":"664:923:25"},{"body":{"nodeType":"YulBlock","src":"1661:176:25","statements":[{"body":{"nodeType":"YulBlock","src":"1707:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1719:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1709:6:25"},"nodeType":"YulFunctionCall","src":"1709:12:25"},"nodeType":"YulExpressionStatement","src":"1709:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1682:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1691:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1703:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1674:3:25"},"nodeType":"YulFunctionCall","src":"1674:32:25"},"nodeType":"YulIf","src":"1671:52:25"},{"nodeType":"YulVariableDeclaration","src":"1732:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1758:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1745:12:25"},"nodeType":"YulFunctionCall","src":"1745:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1736:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1801:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"1777:23:25"},"nodeType":"YulFunctionCall","src":"1777:30:25"},"nodeType":"YulExpressionStatement","src":"1777:30:25"},{"nodeType":"YulAssignment","src":"1816:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"1826:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1816:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1627:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1638:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1650:6:25","type":""}],"src":"1592:245:25"},{"body":{"nodeType":"YulBlock","src":"1943:76:25","statements":[{"nodeType":"YulAssignment","src":"1953:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1965:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1976:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1961:3:25"},"nodeType":"YulFunctionCall","src":"1961:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1953:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1995:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2006:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1988:6:25"},"nodeType":"YulFunctionCall","src":"1988:25:25"},"nodeType":"YulExpressionStatement","src":"1988:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1912:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1923:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1934:4:25","type":""}],"src":"1842:177:25"},{"body":{"nodeType":"YulBlock","src":"2056:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2073:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2080:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2085:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2076:3:25"},"nodeType":"YulFunctionCall","src":"2076:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2066:6:25"},"nodeType":"YulFunctionCall","src":"2066:31:25"},"nodeType":"YulExpressionStatement","src":"2066:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2113:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2116:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2106:6:25"},"nodeType":"YulFunctionCall","src":"2106:15:25"},"nodeType":"YulExpressionStatement","src":"2106:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2137:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2140:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2130:6:25"},"nodeType":"YulFunctionCall","src":"2130:15:25"},"nodeType":"YulExpressionStatement","src":"2130:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2024:127:25"},{"body":{"nodeType":"YulBlock","src":"2201:230:25","statements":[{"nodeType":"YulAssignment","src":"2211:19:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2227:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2221:5:25"},"nodeType":"YulFunctionCall","src":"2221:9:25"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2211:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2239:58:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2261:6:25"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2277:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2283:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2273:3:25"},"nodeType":"YulFunctionCall","src":"2273:13:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2292:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2288:3:25"},"nodeType":"YulFunctionCall","src":"2288:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2269:3:25"},"nodeType":"YulFunctionCall","src":"2269:27:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2257:3:25"},"nodeType":"YulFunctionCall","src":"2257:40:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2243:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2372:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2374:16:25"},"nodeType":"YulFunctionCall","src":"2374:18:25"},"nodeType":"YulExpressionStatement","src":"2374:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2315:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"2327:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2312:2:25"},"nodeType":"YulFunctionCall","src":"2312:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2351:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2363:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2348:2:25"},"nodeType":"YulFunctionCall","src":"2348:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2309:2:25"},"nodeType":"YulFunctionCall","src":"2309:62:25"},"nodeType":"YulIf","src":"2306:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2410:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2414:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2403:6:25"},"nodeType":"YulFunctionCall","src":"2403:22:25"},"nodeType":"YulExpressionStatement","src":"2403:22:25"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"2181:4:25","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2190:6:25","type":""}],"src":"2156:275:25"},{"body":{"nodeType":"YulBlock","src":"2480:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"2534:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2543:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2546:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2536:6:25"},"nodeType":"YulFunctionCall","src":"2536:12:25"},"nodeType":"YulExpressionStatement","src":"2536:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2503:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2521:2:25","type":"","value":"15"},{"name":"value","nodeType":"YulIdentifier","src":"2525:5:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"2510:10:25"},"nodeType":"YulFunctionCall","src":"2510:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2500:2:25"},"nodeType":"YulFunctionCall","src":"2500:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2493:6:25"},"nodeType":"YulFunctionCall","src":"2493:40:25"},"nodeType":"YulIf","src":"2490:60:25"}]},"name":"validator_revert_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2469:5:25","type":""}],"src":"2436:120:25"},{"body":{"nodeType":"YulBlock","src":"2654:681:25","statements":[{"body":{"nodeType":"YulBlock","src":"2701:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2710:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2713:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2703:6:25"},"nodeType":"YulFunctionCall","src":"2703:12:25"},"nodeType":"YulExpressionStatement","src":"2703:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2675:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2684:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2671:3:25"},"nodeType":"YulFunctionCall","src":"2671:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2667:3:25"},"nodeType":"YulFunctionCall","src":"2667:33:25"},"nodeType":"YulIf","src":"2664:53:25"},{"nodeType":"YulVariableDeclaration","src":"2726:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2746:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2740:5:25"},"nodeType":"YulFunctionCall","src":"2740:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2730:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2758:34:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2780:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2788:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2776:3:25"},"nodeType":"YulFunctionCall","src":"2776:16:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2762:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2867:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2869:16:25"},"nodeType":"YulFunctionCall","src":"2869:18:25"},"nodeType":"YulExpressionStatement","src":"2869:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2810:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"2822:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2807:2:25"},"nodeType":"YulFunctionCall","src":"2807:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2846:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2858:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2843:2:25"},"nodeType":"YulFunctionCall","src":"2843:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2804:2:25"},"nodeType":"YulFunctionCall","src":"2804:62:25"},"nodeType":"YulIf","src":"2801:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2905:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2909:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2898:6:25"},"nodeType":"YulFunctionCall","src":"2898:22:25"},"nodeType":"YulExpressionStatement","src":"2898:22:25"},{"nodeType":"YulVariableDeclaration","src":"2929:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2955:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2942:12:25"},"nodeType":"YulFunctionCall","src":"2942:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2933:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2998:5:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"2974:23:25"},"nodeType":"YulFunctionCall","src":"2974:30:25"},"nodeType":"YulExpressionStatement","src":"2974:30:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3020:6:25"},{"name":"value","nodeType":"YulIdentifier","src":"3028:5:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3013:6:25"},"nodeType":"YulFunctionCall","src":"3013:21:25"},"nodeType":"YulExpressionStatement","src":"3013:21:25"},{"nodeType":"YulVariableDeclaration","src":"3043:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3075:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3086:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3071:3:25"},"nodeType":"YulFunctionCall","src":"3071:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3058:12:25"},"nodeType":"YulFunctionCall","src":"3058:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3047:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3123:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"3099:23:25"},"nodeType":"YulFunctionCall","src":"3099:32:25"},"nodeType":"YulExpressionStatement","src":"3099:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3151:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3159:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:25"},"nodeType":"YulFunctionCall","src":"3147:15:25"},{"name":"value_1","nodeType":"YulIdentifier","src":"3164:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:25"},"nodeType":"YulFunctionCall","src":"3140:32:25"},"nodeType":"YulExpressionStatement","src":"3140:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3192:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3188:3:25"},"nodeType":"YulFunctionCall","src":"3188:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3222:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3233:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3218:3:25"},"nodeType":"YulFunctionCall","src":"3218:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3205:12:25"},"nodeType":"YulFunctionCall","src":"3205:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3181:6:25"},"nodeType":"YulFunctionCall","src":"3181:57:25"},"nodeType":"YulExpressionStatement","src":"3181:57:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3258:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3266:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3254:3:25"},"nodeType":"YulFunctionCall","src":"3254:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3288:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3299:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3284:3:25"},"nodeType":"YulFunctionCall","src":"3284:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3271:12:25"},"nodeType":"YulFunctionCall","src":"3271:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3247:6:25"},"nodeType":"YulFunctionCall","src":"3247:57:25"},"nodeType":"YulExpressionStatement","src":"3247:57:25"},{"nodeType":"YulAssignment","src":"3313:16:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3323:6:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3313:6:25"}]}]},"name":"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2620:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2631:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2643:6:25","type":""}],"src":"2561:774:25"},{"body":{"nodeType":"YulBlock","src":"3445:437:25","statements":[{"body":{"nodeType":"YulBlock","src":"3491:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3500:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3503:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3493:6:25"},"nodeType":"YulFunctionCall","src":"3493:12:25"},"nodeType":"YulExpressionStatement","src":"3493:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3466:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3475:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3462:3:25"},"nodeType":"YulFunctionCall","src":"3462:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3487:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3458:3:25"},"nodeType":"YulFunctionCall","src":"3458:32:25"},"nodeType":"YulIf","src":"3455:52:25"},{"nodeType":"YulVariableDeclaration","src":"3516:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3529:12:25"},"nodeType":"YulFunctionCall","src":"3529:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3520:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3585:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"3561:23:25"},"nodeType":"YulFunctionCall","src":"3561:30:25"},"nodeType":"YulExpressionStatement","src":"3561:30:25"},{"nodeType":"YulAssignment","src":"3600:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"3610:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3600:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3624:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3655:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3666:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3651:3:25"},"nodeType":"YulFunctionCall","src":"3651:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3638:12:25"},"nodeType":"YulFunctionCall","src":"3638:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3628:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3713:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3722:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3725:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3715:6:25"},"nodeType":"YulFunctionCall","src":"3715:12:25"},"nodeType":"YulExpressionStatement","src":"3715:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3693:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3682:2:25"},"nodeType":"YulFunctionCall","src":"3682:30:25"},"nodeType":"YulIf","src":"3679:50:25"},{"nodeType":"YulVariableDeclaration","src":"3738:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3794:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3805:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3790:3:25"},"nodeType":"YulFunctionCall","src":"3790:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3814:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3764:25:25"},"nodeType":"YulFunctionCall","src":"3764:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"3742:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"3752:8:25","type":""}]},{"nodeType":"YulAssignment","src":"3831:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3841:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3831:6:25"}]},{"nodeType":"YulAssignment","src":"3858:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3868:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3858:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3395:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3406:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3418:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3426:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3434:6:25","type":""}],"src":"3340:542:25"},{"body":{"nodeType":"YulBlock","src":"3982:92:25","statements":[{"nodeType":"YulAssignment","src":"3992:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4004:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4015:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3992:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4034:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4059:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4052:6:25"},"nodeType":"YulFunctionCall","src":"4052:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4027:6:25"},"nodeType":"YulFunctionCall","src":"4027:41:25"},"nodeType":"YulExpressionStatement","src":"4027:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3951:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3962:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3973:4:25","type":""}],"src":"3887:187:25"},{"body":{"nodeType":"YulBlock","src":"4136:129:25","statements":[{"body":{"nodeType":"YulBlock","src":"4180:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4182:16:25"},"nodeType":"YulFunctionCall","src":"4182:18:25"},"nodeType":"YulExpressionStatement","src":"4182:18:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4152:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4160:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4149:2:25"},"nodeType":"YulFunctionCall","src":"4149:30:25"},"nodeType":"YulIf","src":"4146:56:25"},{"nodeType":"YulAssignment","src":"4211:48:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4231:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4239:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4227:3:25"},"nodeType":"YulFunctionCall","src":"4227:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4223:3:25"},"nodeType":"YulFunctionCall","src":"4223:29:25"},{"kind":"number","nodeType":"YulLiteral","src":"4254:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4219:3:25"},"nodeType":"YulFunctionCall","src":"4219:40:25"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"4211:4:25"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"4116:6:25","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"4127:4:25","type":""}],"src":"4079:186:25"},{"body":{"nodeType":"YulBlock","src":"4381:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"4427:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4436:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4439:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4429:6:25"},"nodeType":"YulFunctionCall","src":"4429:12:25"},"nodeType":"YulExpressionStatement","src":"4429:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4402:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4411:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4398:3:25"},"nodeType":"YulFunctionCall","src":"4398:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4423:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4394:3:25"},"nodeType":"YulFunctionCall","src":"4394:32:25"},"nodeType":"YulIf","src":"4391:52:25"},{"nodeType":"YulVariableDeclaration","src":"4452:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4478:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4465:12:25"},"nodeType":"YulFunctionCall","src":"4465:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4456:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4521:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"4497:23:25"},"nodeType":"YulFunctionCall","src":"4497:30:25"},"nodeType":"YulExpressionStatement","src":"4497:30:25"},{"nodeType":"YulAssignment","src":"4536:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"4546:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4536:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"4560:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4591:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4602:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4587:3:25"},"nodeType":"YulFunctionCall","src":"4587:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4574:12:25"},"nodeType":"YulFunctionCall","src":"4574:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4564:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4649:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4658:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4661:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4651:6:25"},"nodeType":"YulFunctionCall","src":"4651:12:25"},"nodeType":"YulExpressionStatement","src":"4651:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4621:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4629:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4618:2:25"},"nodeType":"YulFunctionCall","src":"4618:30:25"},"nodeType":"YulIf","src":"4615:50:25"},{"nodeType":"YulVariableDeclaration","src":"4674:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"4699:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:25"},"nodeType":"YulFunctionCall","src":"4684:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4678:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4754:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4763:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4766:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4756:6:25"},"nodeType":"YulFunctionCall","src":"4756:12:25"},"nodeType":"YulExpressionStatement","src":"4756:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4733:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"4737:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4729:3:25"},"nodeType":"YulFunctionCall","src":"4729:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4744:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4725:3:25"},"nodeType":"YulFunctionCall","src":"4725:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4718:6:25"},"nodeType":"YulFunctionCall","src":"4718:35:25"},"nodeType":"YulIf","src":"4715:55:25"},{"nodeType":"YulVariableDeclaration","src":"4779:26:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4802:2:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4789:12:25"},"nodeType":"YulFunctionCall","src":"4789:16:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4783:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4814:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4871:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"4843:27:25"},"nodeType":"YulFunctionCall","src":"4843:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4827:15:25"},"nodeType":"YulFunctionCall","src":"4827:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"4818:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4891:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"4898:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4884:6:25"},"nodeType":"YulFunctionCall","src":"4884:17:25"},"nodeType":"YulExpressionStatement","src":"4884:17:25"},{"body":{"nodeType":"YulBlock","src":"4947:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4956:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4959:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4949:6:25"},"nodeType":"YulFunctionCall","src":"4949:12:25"},"nodeType":"YulExpressionStatement","src":"4949:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4924:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"4928:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4920:3:25"},"nodeType":"YulFunctionCall","src":"4920:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4933:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4916:3:25"},"nodeType":"YulFunctionCall","src":"4916:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4938:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4913:2:25"},"nodeType":"YulFunctionCall","src":"4913:33:25"},"nodeType":"YulIf","src":"4910:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4989:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"4996:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4985:3:25"},"nodeType":"YulFunctionCall","src":"4985:14:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5005:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"5009:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5001:3:25"},"nodeType":"YulFunctionCall","src":"5001:11:25"},{"name":"_2","nodeType":"YulIdentifier","src":"5014:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4972:12:25"},"nodeType":"YulFunctionCall","src":"4972:45:25"},"nodeType":"YulExpressionStatement","src":"4972:45:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5041:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"5048:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5037:3:25"},"nodeType":"YulFunctionCall","src":"5037:14:25"},{"kind":"number","nodeType":"YulLiteral","src":"5053:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5033:3:25"},"nodeType":"YulFunctionCall","src":"5033:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5058:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5026:6:25"},"nodeType":"YulFunctionCall","src":"5026:34:25"},"nodeType":"YulExpressionStatement","src":"5026:34:25"},{"nodeType":"YulAssignment","src":"5069:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"5079:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5069:6:25"}]},{"nodeType":"YulAssignment","src":"5093:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5136:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5121:3:25"},"nodeType":"YulFunctionCall","src":"5121:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5103:17:25"},"nodeType":"YulFunctionCall","src":"5103:37:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5093:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4331:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4342:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4354:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4362:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4370:6:25","type":""}],"src":"4270:876:25"},{"body":{"nodeType":"YulBlock","src":"5252:76:25","statements":[{"nodeType":"YulAssignment","src":"5262:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5274:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5285:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5270:3:25"},"nodeType":"YulFunctionCall","src":"5270:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5262:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5304:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"5315:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5297:6:25"},"nodeType":"YulFunctionCall","src":"5297:25:25"},"nodeType":"YulExpressionStatement","src":"5297:25:25"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5221:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5232:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5243:4:25","type":""}],"src":"5151:177:25"},{"body":{"nodeType":"YulBlock","src":"5378:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"5442:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5451:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5454:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5444:6:25"},"nodeType":"YulFunctionCall","src":"5444:12:25"},"nodeType":"YulExpressionStatement","src":"5444:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5401:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5412:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5427:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5432:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5423:3:25"},"nodeType":"YulFunctionCall","src":"5423:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"5436:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5419:3:25"},"nodeType":"YulFunctionCall","src":"5419:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5408:3:25"},"nodeType":"YulFunctionCall","src":"5408:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5398:2:25"},"nodeType":"YulFunctionCall","src":"5398:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5391:6:25"},"nodeType":"YulFunctionCall","src":"5391:50:25"},"nodeType":"YulIf","src":"5388:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5367:5:25","type":""}],"src":"5333:131:25"},{"body":{"nodeType":"YulBlock","src":"5539:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"5585:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5594:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5597:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5587:6:25"},"nodeType":"YulFunctionCall","src":"5587:12:25"},"nodeType":"YulExpressionStatement","src":"5587:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5560:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5569:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5556:3:25"},"nodeType":"YulFunctionCall","src":"5556:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5581:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5552:3:25"},"nodeType":"YulFunctionCall","src":"5552:32:25"},"nodeType":"YulIf","src":"5549:52:25"},{"nodeType":"YulVariableDeclaration","src":"5610:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5636:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5623:12:25"},"nodeType":"YulFunctionCall","src":"5623:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5614:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5680:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5655:24:25"},"nodeType":"YulFunctionCall","src":"5655:31:25"},"nodeType":"YulExpressionStatement","src":"5655:31:25"},{"nodeType":"YulAssignment","src":"5695:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5705:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5695:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5505:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5516:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5528:6:25","type":""}],"src":"5469:247:25"},{"body":{"nodeType":"YulBlock","src":"5853:102:25","statements":[{"nodeType":"YulAssignment","src":"5863:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5886:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5871:3:25"},"nodeType":"YulFunctionCall","src":"5871:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5863:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5905:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5920:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5936:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5941:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5932:3:25"},"nodeType":"YulFunctionCall","src":"5932:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"5945:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5928:3:25"},"nodeType":"YulFunctionCall","src":"5928:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5916:3:25"},"nodeType":"YulFunctionCall","src":"5916:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5898:6:25"},"nodeType":"YulFunctionCall","src":"5898:51:25"},"nodeType":"YulExpressionStatement","src":"5898:51:25"}]},"name":"abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5822:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5833:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5844:4:25","type":""}],"src":"5721:234:25"},{"body":{"nodeType":"YulBlock","src":"6013:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"6023:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6032:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6027:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6092:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6117:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"6122:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6113:3:25"},"nodeType":"YulFunctionCall","src":"6113:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6136:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"6141:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6132:3:25"},"nodeType":"YulFunctionCall","src":"6132:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6126:5:25"},"nodeType":"YulFunctionCall","src":"6126:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6106:6:25"},"nodeType":"YulFunctionCall","src":"6106:39:25"},"nodeType":"YulExpressionStatement","src":"6106:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6053:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"6056:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6050:2:25"},"nodeType":"YulFunctionCall","src":"6050:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6064:19:25","statements":[{"nodeType":"YulAssignment","src":"6066:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6075:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"6078:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6071:3:25"},"nodeType":"YulFunctionCall","src":"6071:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6066:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"6046:3:25","statements":[]},"src":"6042:113:25"},{"body":{"nodeType":"YulBlock","src":"6181:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6194:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"6199:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6190:3:25"},"nodeType":"YulFunctionCall","src":"6190:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"6208:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6183:6:25"},"nodeType":"YulFunctionCall","src":"6183:27:25"},"nodeType":"YulExpressionStatement","src":"6183:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6170:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"6173:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6167:2:25"},"nodeType":"YulFunctionCall","src":"6167:13:25"},"nodeType":"YulIf","src":"6164:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"5991:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"5996:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"6001:6:25","type":""}],"src":"5960:258:25"},{"body":{"nodeType":"YulBlock","src":"6272:208:25","statements":[{"nodeType":"YulVariableDeclaration","src":"6282:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6302:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6296:5:25"},"nodeType":"YulFunctionCall","src":"6296:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6286:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6324:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"6329:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6317:6:25"},"nodeType":"YulFunctionCall","src":"6317:19:25"},"nodeType":"YulExpressionStatement","src":"6317:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6371:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"6378:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6367:3:25"},"nodeType":"YulFunctionCall","src":"6367:16:25"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6389:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"6394:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6385:3:25"},"nodeType":"YulFunctionCall","src":"6385:14:25"},{"name":"length","nodeType":"YulIdentifier","src":"6401:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6345:21:25"},"nodeType":"YulFunctionCall","src":"6345:63:25"},"nodeType":"YulExpressionStatement","src":"6345:63:25"},{"nodeType":"YulAssignment","src":"6417:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6432:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6445:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6453:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6441:3:25"},"nodeType":"YulFunctionCall","src":"6441:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6462:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6458:3:25"},"nodeType":"YulFunctionCall","src":"6458:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6437:3:25"},"nodeType":"YulFunctionCall","src":"6437:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6428:3:25"},"nodeType":"YulFunctionCall","src":"6428:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"6469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6424:3:25"},"nodeType":"YulFunctionCall","src":"6424:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6417:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6249:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6256:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6264:3:25","type":""}],"src":"6223:257:25"},{"body":{"nodeType":"YulBlock","src":"6604:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6621:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6632:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6614:6:25"},"nodeType":"YulFunctionCall","src":"6614:21:25"},"nodeType":"YulExpressionStatement","src":"6614:21:25"},{"nodeType":"YulAssignment","src":"6644:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6669:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6681:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6692:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6677:3:25"},"nodeType":"YulFunctionCall","src":"6677:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6652:16:25"},"nodeType":"YulFunctionCall","src":"6652:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6644:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6573:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6584:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6595:4:25","type":""}],"src":"6485:217:25"},{"body":{"nodeType":"YulBlock","src":"6792:299:25","statements":[{"body":{"nodeType":"YulBlock","src":"6838:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6847:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6850:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6840:6:25"},"nodeType":"YulFunctionCall","src":"6840:12:25"},"nodeType":"YulExpressionStatement","src":"6840:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6813:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"6822:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6809:3:25"},"nodeType":"YulFunctionCall","src":"6809:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"6834:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6805:3:25"},"nodeType":"YulFunctionCall","src":"6805:32:25"},"nodeType":"YulIf","src":"6802:52:25"},{"nodeType":"YulVariableDeclaration","src":"6863:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6889:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6876:12:25"},"nodeType":"YulFunctionCall","src":"6876:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6867:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6932:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"6908:23:25"},"nodeType":"YulFunctionCall","src":"6908:30:25"},"nodeType":"YulExpressionStatement","src":"6908:30:25"},{"nodeType":"YulAssignment","src":"6947:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6957:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6947:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6971:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7003:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7014:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6999:3:25"},"nodeType":"YulFunctionCall","src":"6999:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6986:12:25"},"nodeType":"YulFunctionCall","src":"6986:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6975:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7051:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7027:23:25"},"nodeType":"YulFunctionCall","src":"7027:32:25"},"nodeType":"YulExpressionStatement","src":"7027:32:25"},{"nodeType":"YulAssignment","src":"7068:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7078:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7068:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6750:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6761:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6773:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6781:6:25","type":""}],"src":"6707:384:25"},{"body":{"nodeType":"YulBlock","src":"7197:102:25","statements":[{"nodeType":"YulAssignment","src":"7207:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7219:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7230:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7215:3:25"},"nodeType":"YulFunctionCall","src":"7215:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7207:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7249:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7264:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7280:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7285:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7276:3:25"},"nodeType":"YulFunctionCall","src":"7276:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7289:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7272:3:25"},"nodeType":"YulFunctionCall","src":"7272:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7260:3:25"},"nodeType":"YulFunctionCall","src":"7260:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7242:6:25"},"nodeType":"YulFunctionCall","src":"7242:51:25"},"nodeType":"YulExpressionStatement","src":"7242:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7166:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7177:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7188:4:25","type":""}],"src":"7096:203:25"},{"body":{"nodeType":"YulBlock","src":"7431:102:25","statements":[{"nodeType":"YulAssignment","src":"7441:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7449:3:25"},"nodeType":"YulFunctionCall","src":"7449:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7441:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7483:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7498:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7514:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7519:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7510:3:25"},"nodeType":"YulFunctionCall","src":"7510:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7523:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7506:3:25"},"nodeType":"YulFunctionCall","src":"7506:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7494:3:25"},"nodeType":"YulFunctionCall","src":"7494:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7476:6:25"},"nodeType":"YulFunctionCall","src":"7476:51:25"},"nodeType":"YulExpressionStatement","src":"7476:51:25"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7400:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7411:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7422:4:25","type":""}],"src":"7304:229:25"},{"body":{"nodeType":"YulBlock","src":"7676:612:25","statements":[{"body":{"nodeType":"YulBlock","src":"7723:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7732:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7735:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7725:6:25"},"nodeType":"YulFunctionCall","src":"7725:12:25"},"nodeType":"YulExpressionStatement","src":"7725:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7697:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7706:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7693:3:25"},"nodeType":"YulFunctionCall","src":"7693:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7718:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7689:3:25"},"nodeType":"YulFunctionCall","src":"7689:33:25"},"nodeType":"YulIf","src":"7686:53:25"},{"nodeType":"YulVariableDeclaration","src":"7748:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7774:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7761:12:25"},"nodeType":"YulFunctionCall","src":"7761:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7752:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7817:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7793:23:25"},"nodeType":"YulFunctionCall","src":"7793:30:25"},"nodeType":"YulExpressionStatement","src":"7793:30:25"},{"nodeType":"YulAssignment","src":"7832:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7842:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7832:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7856:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7888:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7899:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7884:3:25"},"nodeType":"YulFunctionCall","src":"7884:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7871:12:25"},"nodeType":"YulFunctionCall","src":"7871:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7860:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7936:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7912:23:25"},"nodeType":"YulFunctionCall","src":"7912:32:25"},"nodeType":"YulExpressionStatement","src":"7912:32:25"},{"nodeType":"YulAssignment","src":"7953:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7963:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7953:6:25"}]},{"nodeType":"YulAssignment","src":"7979:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8006:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8017:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8002:3:25"},"nodeType":"YulFunctionCall","src":"8002:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7989:12:25"},"nodeType":"YulFunctionCall","src":"7989:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7979:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"8030:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8061:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8072:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8057:3:25"},"nodeType":"YulFunctionCall","src":"8057:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8044:12:25"},"nodeType":"YulFunctionCall","src":"8044:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8034:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"8119:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8128:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8131:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8121:6:25"},"nodeType":"YulFunctionCall","src":"8121:12:25"},"nodeType":"YulExpressionStatement","src":"8121:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8091:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8099:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8088:2:25"},"nodeType":"YulFunctionCall","src":"8088:30:25"},"nodeType":"YulIf","src":"8085:50:25"},{"nodeType":"YulVariableDeclaration","src":"8144:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8200:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"8211:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8196:3:25"},"nodeType":"YulFunctionCall","src":"8196:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8220:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"8170:25:25"},"nodeType":"YulFunctionCall","src":"8170:58:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"8148:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"8158:8:25","type":""}]},{"nodeType":"YulAssignment","src":"8237:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"8247:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8237:6:25"}]},{"nodeType":"YulAssignment","src":"8264:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"8274:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8264:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7610:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7621:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7633:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7641:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7649:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7657:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7665:6:25","type":""}],"src":"7538:750:25"},{"body":{"nodeType":"YulBlock","src":"8395:350:25","statements":[{"body":{"nodeType":"YulBlock","src":"8441:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8450:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8453:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8443:6:25"},"nodeType":"YulFunctionCall","src":"8443:12:25"},"nodeType":"YulExpressionStatement","src":"8443:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8416:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8425:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8412:3:25"},"nodeType":"YulFunctionCall","src":"8412:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8437:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8408:3:25"},"nodeType":"YulFunctionCall","src":"8408:32:25"},"nodeType":"YulIf","src":"8405:52:25"},{"nodeType":"YulVariableDeclaration","src":"8466:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8492:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8479:12:25"},"nodeType":"YulFunctionCall","src":"8479:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8470:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8535:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"8511:23:25"},"nodeType":"YulFunctionCall","src":"8511:30:25"},"nodeType":"YulExpressionStatement","src":"8511:30:25"},{"nodeType":"YulAssignment","src":"8550:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"8560:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8550:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"8574:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8606:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8617:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8602:3:25"},"nodeType":"YulFunctionCall","src":"8602:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8589:12:25"},"nodeType":"YulFunctionCall","src":"8589:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8578:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8654:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"8630:23:25"},"nodeType":"YulFunctionCall","src":"8630:32:25"},"nodeType":"YulExpressionStatement","src":"8630:32:25"},{"nodeType":"YulAssignment","src":"8671:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"8681:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8671:6:25"}]},{"nodeType":"YulAssignment","src":"8697:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8724:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8735:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8720:3:25"},"nodeType":"YulFunctionCall","src":"8720:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8707:12:25"},"nodeType":"YulFunctionCall","src":"8707:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8697:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8345:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8356:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8368:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8376:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8384:6:25","type":""}],"src":"8293:452:25"},{"body":{"nodeType":"YulBlock","src":"8931:238:25","statements":[{"nodeType":"YulAssignment","src":"8941:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8953:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8964:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8949:3:25"},"nodeType":"YulFunctionCall","src":"8949:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8941:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8984:9:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9006:2:25","type":"","value":"15"},{"name":"value0","nodeType":"YulIdentifier","src":"9010:6:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"8995:10:25"},"nodeType":"YulFunctionCall","src":"8995:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8977:6:25"},"nodeType":"YulFunctionCall","src":"8977:41:25"},"nodeType":"YulExpressionStatement","src":"8977:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9038:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9049:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9034:3:25"},"nodeType":"YulFunctionCall","src":"9034:18:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9065:2:25","type":"","value":"15"},{"name":"value1","nodeType":"YulIdentifier","src":"9069:6:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"9054:10:25"},"nodeType":"YulFunctionCall","src":"9054:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9027:6:25"},"nodeType":"YulFunctionCall","src":"9027:50:25"},"nodeType":"YulExpressionStatement","src":"9027:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9097:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9108:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9093:3:25"},"nodeType":"YulFunctionCall","src":"9093:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"9113:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9086:6:25"},"nodeType":"YulFunctionCall","src":"9086:34:25"},"nodeType":"YulExpressionStatement","src":"9086:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9140:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9151:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9136:3:25"},"nodeType":"YulFunctionCall","src":"9136:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"9156:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9129:6:25"},"nodeType":"YulFunctionCall","src":"9129:34:25"},"nodeType":"YulExpressionStatement","src":"9129:34:25"}]},"name":"abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8876:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8887:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8895:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8903:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8911:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8922:4:25","type":""}],"src":"8750:419:25"},{"body":{"nodeType":"YulBlock","src":"9293:475:25","statements":[{"body":{"nodeType":"YulBlock","src":"9340:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9349:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9352:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9342:6:25"},"nodeType":"YulFunctionCall","src":"9342:12:25"},"nodeType":"YulExpressionStatement","src":"9342:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9314:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9323:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9310:3:25"},"nodeType":"YulFunctionCall","src":"9310:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9335:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9306:3:25"},"nodeType":"YulFunctionCall","src":"9306:33:25"},"nodeType":"YulIf","src":"9303:53:25"},{"nodeType":"YulVariableDeclaration","src":"9365:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9391:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9378:12:25"},"nodeType":"YulFunctionCall","src":"9378:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9369:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9434:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"9410:23:25"},"nodeType":"YulFunctionCall","src":"9410:30:25"},"nodeType":"YulExpressionStatement","src":"9410:30:25"},{"nodeType":"YulAssignment","src":"9449:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"9459:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9449:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9473:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9505:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9516:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9501:3:25"},"nodeType":"YulFunctionCall","src":"9501:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9488:12:25"},"nodeType":"YulFunctionCall","src":"9488:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"9477:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"9553:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"9529:23:25"},"nodeType":"YulFunctionCall","src":"9529:32:25"},"nodeType":"YulExpressionStatement","src":"9529:32:25"},{"nodeType":"YulAssignment","src":"9570:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"9580:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9570:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9596:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9628:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9639:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9624:3:25"},"nodeType":"YulFunctionCall","src":"9624:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9611:12:25"},"nodeType":"YulFunctionCall","src":"9611:32:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"9600:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"9677:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"9652:24:25"},"nodeType":"YulFunctionCall","src":"9652:33:25"},"nodeType":"YulExpressionStatement","src":"9652:33:25"},{"nodeType":"YulAssignment","src":"9694:17:25","value":{"name":"value_2","nodeType":"YulIdentifier","src":"9704:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9694:6:25"}]},{"nodeType":"YulAssignment","src":"9720:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9747:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9758:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9743:3:25"},"nodeType":"YulFunctionCall","src":"9743:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9730:12:25"},"nodeType":"YulFunctionCall","src":"9730:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9720:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9235:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9246:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9258:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9266:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9274:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9282:6:25","type":""}],"src":"9174:594:25"},{"body":{"nodeType":"YulBlock","src":"9947:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9964:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9975:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9957:6:25"},"nodeType":"YulFunctionCall","src":"9957:21:25"},"nodeType":"YulExpressionStatement","src":"9957:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10009:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9994:3:25"},"nodeType":"YulFunctionCall","src":"9994:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"10014:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9987:6:25"},"nodeType":"YulFunctionCall","src":"9987:30:25"},"nodeType":"YulExpressionStatement","src":"9987:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10037:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10048:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10033:3:25"},"nodeType":"YulFunctionCall","src":"10033:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"10053:32:25","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10026:6:25"},"nodeType":"YulFunctionCall","src":"10026:60:25"},"nodeType":"YulExpressionStatement","src":"10026:60:25"},{"nodeType":"YulAssignment","src":"10095:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10107:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10118:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10103:3:25"},"nodeType":"YulFunctionCall","src":"10103:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10095:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9924:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9938:4:25","type":""}],"src":"9773:354:25"},{"body":{"nodeType":"YulBlock","src":"10187:325:25","statements":[{"nodeType":"YulAssignment","src":"10197:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10211:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"10214:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10207:3:25"},"nodeType":"YulFunctionCall","src":"10207:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10197:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10228:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"10258:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"10264:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10254:3:25"},"nodeType":"YulFunctionCall","src":"10254:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"10232:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10305:31:25","statements":[{"nodeType":"YulAssignment","src":"10307:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10321:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10329:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10317:3:25"},"nodeType":"YulFunctionCall","src":"10317:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10307:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10285:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10278:6:25"},"nodeType":"YulFunctionCall","src":"10278:26:25"},"nodeType":"YulIf","src":"10275:61:25"},{"body":{"nodeType":"YulBlock","src":"10395:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10416:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10423:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10428:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10419:3:25"},"nodeType":"YulFunctionCall","src":"10419:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10409:6:25"},"nodeType":"YulFunctionCall","src":"10409:31:25"},"nodeType":"YulExpressionStatement","src":"10409:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10460:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10463:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10453:6:25"},"nodeType":"YulFunctionCall","src":"10453:15:25"},"nodeType":"YulExpressionStatement","src":"10453:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10488:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10491:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10481:6:25"},"nodeType":"YulFunctionCall","src":"10481:15:25"},"nodeType":"YulExpressionStatement","src":"10481:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10351:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10374:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10382:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10371:2:25"},"nodeType":"YulFunctionCall","src":"10371:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10348:2:25"},"nodeType":"YulFunctionCall","src":"10348:38:25"},"nodeType":"YulIf","src":"10345:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10167:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10176:6:25","type":""}],"src":"10132:380:25"},{"body":{"nodeType":"YulBlock","src":"10664:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10687:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"10692:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"10700:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"10674:12:25"},"nodeType":"YulFunctionCall","src":"10674:33:25"},"nodeType":"YulExpressionStatement","src":"10674:33:25"},{"nodeType":"YulVariableDeclaration","src":"10716:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10730:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"10735:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10726:3:25"},"nodeType":"YulFunctionCall","src":"10726:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10758:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"10762:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10751:6:25"},"nodeType":"YulFunctionCall","src":"10751:13:25"},"nodeType":"YulExpressionStatement","src":"10751:13:25"},{"nodeType":"YulAssignment","src":"10773:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"10780:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10773:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10632:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10637:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10645:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10656:3:25","type":""}],"src":"10517:271:25"},{"body":{"nodeType":"YulBlock","src":"10967:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10977:6:25"},"nodeType":"YulFunctionCall","src":"10977:21:25"},"nodeType":"YulExpressionStatement","src":"10977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11014:3:25"},"nodeType":"YulFunctionCall","src":"11014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11034:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11007:6:25"},"nodeType":"YulFunctionCall","src":"11007:30:25"},"nodeType":"YulExpressionStatement","src":"11007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11053:3:25"},"nodeType":"YulFunctionCall","src":"11053:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nodeType":"YulLiteral","src":"11073:34:25","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11046:6:25"},"nodeType":"YulFunctionCall","src":"11046:62:25"},"nodeType":"YulExpressionStatement","src":"11046:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11124:3:25"},"nodeType":"YulFunctionCall","src":"11124:18:25"},{"hexValue":"6e7472616374","kind":"string","nodeType":"YulLiteral","src":"11144:8:25","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11117:6:25"},"nodeType":"YulFunctionCall","src":"11117:36:25"},"nodeType":"YulExpressionStatement","src":"11117:36:25"},{"nodeType":"YulAssignment","src":"11162:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11174:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11185:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11170:3:25"},"nodeType":"YulFunctionCall","src":"11170:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11162:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10958:4:25","type":""}],"src":"10793:402:25"},{"body":{"nodeType":"YulBlock","src":"11299:89:25","statements":[{"nodeType":"YulAssignment","src":"11309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11317:3:25"},"nodeType":"YulFunctionCall","src":"11317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11351:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11366:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11374:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11362:3:25"},"nodeType":"YulFunctionCall","src":"11362:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11344:6:25"},"nodeType":"YulFunctionCall","src":"11344:38:25"},"nodeType":"YulExpressionStatement","src":"11344:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11290:4:25","type":""}],"src":"11200:188:25"},{"body":{"nodeType":"YulBlock","src":"11459:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11476:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"11481:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11469:6:25"},"nodeType":"YulFunctionCall","src":"11469:19:25"},"nodeType":"YulExpressionStatement","src":"11469:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11514:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"11519:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11510:3:25"},"nodeType":"YulFunctionCall","src":"11510:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"11526:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"11533:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11497:12:25"},"nodeType":"YulFunctionCall","src":"11497:43:25"},"nodeType":"YulExpressionStatement","src":"11497:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11564:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"11569:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11560:3:25"},"nodeType":"YulFunctionCall","src":"11560:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"11578:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11556:3:25"},"nodeType":"YulFunctionCall","src":"11556:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"11585:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11549:6:25"},"nodeType":"YulFunctionCall","src":"11549:38:25"},"nodeType":"YulExpressionStatement","src":"11549:38:25"},{"nodeType":"YulAssignment","src":"11596:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11611:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11624:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11632:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11620:3:25"},"nodeType":"YulFunctionCall","src":"11620:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11641:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11637:3:25"},"nodeType":"YulFunctionCall","src":"11637:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11616:3:25"},"nodeType":"YulFunctionCall","src":"11616:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11607:3:25"},"nodeType":"YulFunctionCall","src":"11607:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"11648:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11603:3:25"},"nodeType":"YulFunctionCall","src":"11603:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11596:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"11428:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"11435:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11443:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11451:3:25","type":""}],"src":"11393:266:25"},{"body":{"nodeType":"YulBlock","src":"11819:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11836:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11851:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11859:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11847:3:25"},"nodeType":"YulFunctionCall","src":"11847:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11829:6:25"},"nodeType":"YulFunctionCall","src":"11829:38:25"},"nodeType":"YulExpressionStatement","src":"11829:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11887:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11898:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11883:3:25"},"nodeType":"YulFunctionCall","src":"11883:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11903:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11876:6:25"},"nodeType":"YulFunctionCall","src":"11876:30:25"},"nodeType":"YulExpressionStatement","src":"11876:30:25"},{"nodeType":"YulAssignment","src":"11915:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11949:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"11957:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11969:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11980:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11965:3:25"},"nodeType":"YulFunctionCall","src":"11965:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"11923:25:25"},"nodeType":"YulFunctionCall","src":"11923:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11915:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11772:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11783:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11791:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11799:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11810:4:25","type":""}],"src":"11664:326:25"},{"body":{"nodeType":"YulBlock","src":"12169:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12186:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12197:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12179:6:25"},"nodeType":"YulFunctionCall","src":"12179:21:25"},"nodeType":"YulExpressionStatement","src":"12179:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12220:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12231:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12216:3:25"},"nodeType":"YulFunctionCall","src":"12216:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12209:6:25"},"nodeType":"YulFunctionCall","src":"12209:30:25"},"nodeType":"YulExpressionStatement","src":"12209:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12259:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12270:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12255:3:25"},"nodeType":"YulFunctionCall","src":"12255:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nodeType":"YulLiteral","src":"12275:34:25","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12248:6:25"},"nodeType":"YulFunctionCall","src":"12248:62:25"},"nodeType":"YulExpressionStatement","src":"12248:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12330:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12341:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12326:3:25"},"nodeType":"YulFunctionCall","src":"12326:18:25"},{"hexValue":"204c7a417070","kind":"string","nodeType":"YulLiteral","src":"12346:8:25","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12319:6:25"},"nodeType":"YulFunctionCall","src":"12319:36:25"},"nodeType":"YulExpressionStatement","src":"12319:36:25"},{"nodeType":"YulAssignment","src":"12364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12372:3:25"},"nodeType":"YulFunctionCall","src":"12372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12146:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12160:4:25","type":""}],"src":"11995:402:25"},{"body":{"nodeType":"YulBlock","src":"12576:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12586:6:25"},"nodeType":"YulFunctionCall","src":"12586:21:25"},"nodeType":"YulExpressionStatement","src":"12586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12623:3:25"},"nodeType":"YulFunctionCall","src":"12623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12643:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12616:6:25"},"nodeType":"YulFunctionCall","src":"12616:30:25"},"nodeType":"YulExpressionStatement","src":"12616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12662:3:25"},"nodeType":"YulFunctionCall","src":"12662:18:25"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nodeType":"YulLiteral","src":"12682:31:25","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12655:6:25"},"nodeType":"YulFunctionCall","src":"12655:59:25"},"nodeType":"YulExpressionStatement","src":"12655:59:25"},{"nodeType":"YulAssignment","src":"12723:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12735:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12746:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12731:3:25"},"nodeType":"YulFunctionCall","src":"12731:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12723:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12567:4:25","type":""}],"src":"12402:353:25"},{"body":{"nodeType":"YulBlock","src":"12792:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12809:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12816:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12821:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12812:3:25"},"nodeType":"YulFunctionCall","src":"12812:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12802:6:25"},"nodeType":"YulFunctionCall","src":"12802:31:25"},"nodeType":"YulExpressionStatement","src":"12802:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12849:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12852:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12842:6:25"},"nodeType":"YulFunctionCall","src":"12842:15:25"},"nodeType":"YulExpressionStatement","src":"12842:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12873:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12876:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12866:6:25"},"nodeType":"YulFunctionCall","src":"12866:15:25"},"nodeType":"YulExpressionStatement","src":"12866:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12760:127:25"},{"body":{"nodeType":"YulBlock","src":"12941:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"12963:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12965:16:25"},"nodeType":"YulFunctionCall","src":"12965:18:25"},"nodeType":"YulExpressionStatement","src":"12965:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12957:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"12960:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12954:2:25"},"nodeType":"YulFunctionCall","src":"12954:8:25"},"nodeType":"YulIf","src":"12951:34:25"},{"nodeType":"YulAssignment","src":"12994:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13006:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"13009:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13002:3:25"},"nodeType":"YulFunctionCall","src":"13002:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12994:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12923:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"12926:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"12932:4:25","type":""}],"src":"12892:125:25"},{"body":{"nodeType":"YulBlock","src":"13197:207:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13220:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"13225:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"13233:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"13207:12:25"},"nodeType":"YulFunctionCall","src":"13207:33:25"},"nodeType":"YulExpressionStatement","src":"13207:33:25"},{"nodeType":"YulVariableDeclaration","src":"13249:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13263:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"13268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13259:3:25"},"nodeType":"YulFunctionCall","src":"13259:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13253:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13291:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"13295:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13284:6:25"},"nodeType":"YulFunctionCall","src":"13284:13:25"},"nodeType":"YulExpressionStatement","src":"13284:13:25"},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13313:2:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13325:2:25","type":"","value":"96"},{"name":"value2","nodeType":"YulIdentifier","src":"13329:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13321:3:25"},"nodeType":"YulFunctionCall","src":"13321:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13342:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13338:3:25"},"nodeType":"YulFunctionCall","src":"13338:31:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13317:3:25"},"nodeType":"YulFunctionCall","src":"13317:53:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13306:6:25"},"nodeType":"YulFunctionCall","src":"13306:65:25"},"nodeType":"YulExpressionStatement","src":"13306:65:25"},{"nodeType":"YulAssignment","src":"13380:18:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13391:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"13395:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13387:3:25"},"nodeType":"YulFunctionCall","src":"13387:11:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13380:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13157:3:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13162:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13170:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13178:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13189:3:25","type":""}],"src":"13022:382:25"},{"body":{"nodeType":"YulBlock","src":"13618:289:25","statements":[{"nodeType":"YulVariableDeclaration","src":"13628:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"13638:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13632:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13660:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13675:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"13683:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13671:3:25"},"nodeType":"YulFunctionCall","src":"13671:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13653:6:25"},"nodeType":"YulFunctionCall","src":"13653:34:25"},"nodeType":"YulExpressionStatement","src":"13653:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13707:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13718:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13703:3:25"},"nodeType":"YulFunctionCall","src":"13703:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13727:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"13735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13723:3:25"},"nodeType":"YulFunctionCall","src":"13723:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13696:6:25"},"nodeType":"YulFunctionCall","src":"13696:43:25"},"nodeType":"YulExpressionStatement","src":"13696:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13759:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13770:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13755:3:25"},"nodeType":"YulFunctionCall","src":"13755:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"13775:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13748:6:25"},"nodeType":"YulFunctionCall","src":"13748:34:25"},"nodeType":"YulExpressionStatement","src":"13748:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13802:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13813:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13798:3:25"},"nodeType":"YulFunctionCall","src":"13798:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13818:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13791:6:25"},"nodeType":"YulFunctionCall","src":"13791:31:25"},"nodeType":"YulExpressionStatement","src":"13791:31:25"},{"nodeType":"YulAssignment","src":"13831:70:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13865:6:25"},{"name":"value4","nodeType":"YulIdentifier","src":"13873:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13885:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13896:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13881:3:25"},"nodeType":"YulFunctionCall","src":"13881:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13839:25:25"},"nodeType":"YulFunctionCall","src":"13839:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13831:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13555:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13566:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13574:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13582:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13590:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13598:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13609:4:25","type":""}],"src":"13409:498:25"},{"body":{"nodeType":"YulBlock","src":"14086:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14103:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14114:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14096:6:25"},"nodeType":"YulFunctionCall","src":"14096:21:25"},"nodeType":"YulExpressionStatement","src":"14096:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14137:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14148:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14133:3:25"},"nodeType":"YulFunctionCall","src":"14133:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14153:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14126:6:25"},"nodeType":"YulFunctionCall","src":"14126:30:25"},"nodeType":"YulExpressionStatement","src":"14126:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14176:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14187:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14172:3:25"},"nodeType":"YulFunctionCall","src":"14172:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nodeType":"YulLiteral","src":"14192:34:25","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14165:6:25"},"nodeType":"YulFunctionCall","src":"14165:62:25"},"nodeType":"YulExpressionStatement","src":"14165:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14247:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14258:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14243:3:25"},"nodeType":"YulFunctionCall","src":"14243:18:25"},{"hexValue":"616765","kind":"string","nodeType":"YulLiteral","src":"14263:5:25","type":"","value":"age"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14236:6:25"},"nodeType":"YulFunctionCall","src":"14236:33:25"},"nodeType":"YulExpressionStatement","src":"14236:33:25"},{"nodeType":"YulAssignment","src":"14278:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14290:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14301:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14286:3:25"},"nodeType":"YulFunctionCall","src":"14286:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14278:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14063:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14077:4:25","type":""}],"src":"13912:399:25"},{"body":{"nodeType":"YulBlock","src":"14490:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14507:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14518:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14500:6:25"},"nodeType":"YulFunctionCall","src":"14500:21:25"},"nodeType":"YulExpressionStatement","src":"14500:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14552:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14537:3:25"},"nodeType":"YulFunctionCall","src":"14537:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14557:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14530:6:25"},"nodeType":"YulFunctionCall","src":"14530:30:25"},"nodeType":"YulExpressionStatement","src":"14530:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14580:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14591:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14576:3:25"},"nodeType":"YulFunctionCall","src":"14576:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nodeType":"YulLiteral","src":"14596:34:25","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14569:6:25"},"nodeType":"YulFunctionCall","src":"14569:62:25"},"nodeType":"YulExpressionStatement","src":"14569:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14662:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14647:3:25"},"nodeType":"YulFunctionCall","src":"14647:18:25"},{"hexValue":"64","kind":"string","nodeType":"YulLiteral","src":"14667:3:25","type":"","value":"d"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14640:6:25"},"nodeType":"YulFunctionCall","src":"14640:31:25"},"nodeType":"YulExpressionStatement","src":"14640:31:25"},{"nodeType":"YulAssignment","src":"14680:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14703:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14688:3:25"},"nodeType":"YulFunctionCall","src":"14688:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14680:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14467:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14481:4:25","type":""}],"src":"14316:397:25"},{"body":{"nodeType":"YulBlock","src":"14927:284:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14944:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14959:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14967:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14955:3:25"},"nodeType":"YulFunctionCall","src":"14955:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14937:6:25"},"nodeType":"YulFunctionCall","src":"14937:38:25"},"nodeType":"YulExpressionStatement","src":"14937:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14995:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15006:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14991:3:25"},"nodeType":"YulFunctionCall","src":"14991:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15011:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14984:6:25"},"nodeType":"YulFunctionCall","src":"14984:31:25"},"nodeType":"YulExpressionStatement","src":"14984:31:25"},{"nodeType":"YulAssignment","src":"15024:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15058:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15066:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15078:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15089:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15074:3:25"},"nodeType":"YulFunctionCall","src":"15074:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15032:25:25"},"nodeType":"YulFunctionCall","src":"15032:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15024:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15125:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15110:3:25"},"nodeType":"YulFunctionCall","src":"15110:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15134:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15130:3:25"},"nodeType":"YulFunctionCall","src":"15130:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15103:6:25"},"nodeType":"YulFunctionCall","src":"15103:59:25"},"nodeType":"YulExpressionStatement","src":"15103:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15182:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15193:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15178:3:25"},"nodeType":"YulFunctionCall","src":"15178:18:25"},{"name":"value4","nodeType":"YulIdentifier","src":"15198:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15171:6:25"},"nodeType":"YulFunctionCall","src":"15171:34:25"},"nodeType":"YulExpressionStatement","src":"15171:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14864:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14875:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14883:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14891:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14899:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14907:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14918:4:25","type":""}],"src":"14718:493:25"},{"body":{"nodeType":"YulBlock","src":"15390:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15407:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15418:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15400:6:25"},"nodeType":"YulFunctionCall","src":"15400:21:25"},"nodeType":"YulExpressionStatement","src":"15400:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15441:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15452:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15437:3:25"},"nodeType":"YulFunctionCall","src":"15437:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15457:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15430:6:25"},"nodeType":"YulFunctionCall","src":"15430:30:25"},"nodeType":"YulExpressionStatement","src":"15430:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15480:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15491:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15476:3:25"},"nodeType":"YulFunctionCall","src":"15476:18:25"},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","kind":"string","nodeType":"YulLiteral","src":"15496:23:25","type":"","value":"LzApp: invalid minGas"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15469:6:25"},"nodeType":"YulFunctionCall","src":"15469:51:25"},"nodeType":"YulExpressionStatement","src":"15469:51:25"},{"nodeType":"YulAssignment","src":"15529:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15552:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15537:3:25"},"nodeType":"YulFunctionCall","src":"15537:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15529:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15367:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15381:4:25","type":""}],"src":"15216:345:25"},{"body":{"nodeType":"YulBlock","src":"15719:205:25","statements":[{"nodeType":"YulAssignment","src":"15729:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15741:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15752:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15737:3:25"},"nodeType":"YulFunctionCall","src":"15737:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15729:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"15764:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"15774:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15768:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15796:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15811:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"15819:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15807:3:25"},"nodeType":"YulFunctionCall","src":"15807:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15789:6:25"},"nodeType":"YulFunctionCall","src":"15789:34:25"},"nodeType":"YulExpressionStatement","src":"15789:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15843:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15854:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15839:3:25"},"nodeType":"YulFunctionCall","src":"15839:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15863:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"15871:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15859:3:25"},"nodeType":"YulFunctionCall","src":"15859:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15832:6:25"},"nodeType":"YulFunctionCall","src":"15832:43:25"},"nodeType":"YulExpressionStatement","src":"15832:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15906:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15891:3:25"},"nodeType":"YulFunctionCall","src":"15891:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15911:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15884:6:25"},"nodeType":"YulFunctionCall","src":"15884:34:25"},"nodeType":"YulExpressionStatement","src":"15884:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15672:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15683:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15691:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15699:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15710:4:25","type":""}],"src":"15566:358:25"},{"body":{"nodeType":"YulBlock","src":"16103:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16120:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16131:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16113:6:25"},"nodeType":"YulFunctionCall","src":"16113:21:25"},"nodeType":"YulExpressionStatement","src":"16113:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16154:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16165:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16150:3:25"},"nodeType":"YulFunctionCall","src":"16150:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16170:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16143:6:25"},"nodeType":"YulFunctionCall","src":"16143:30:25"},"nodeType":"YulExpressionStatement","src":"16143:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16193:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16204:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16189:3:25"},"nodeType":"YulFunctionCall","src":"16189:18:25"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"16209:34:25","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16182:6:25"},"nodeType":"YulFunctionCall","src":"16182:62:25"},"nodeType":"YulExpressionStatement","src":"16182:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16264:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16275:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16260:3:25"},"nodeType":"YulFunctionCall","src":"16260:18:25"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"16280:8:25","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16253:6:25"},"nodeType":"YulFunctionCall","src":"16253:36:25"},"nodeType":"YulExpressionStatement","src":"16253:36:25"},{"nodeType":"YulAssignment","src":"16298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16306:3:25"},"nodeType":"YulFunctionCall","src":"16306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16080:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16094:4:25","type":""}],"src":"15929:402:25"},{"body":{"nodeType":"YulBlock","src":"16517:275:25","statements":[{"nodeType":"YulAssignment","src":"16527:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16539:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16550:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16535:3:25"},"nodeType":"YulFunctionCall","src":"16535:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16527:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"16563:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"16573:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16567:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16595:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16610:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"16618:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16606:3:25"},"nodeType":"YulFunctionCall","src":"16606:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16588:6:25"},"nodeType":"YulFunctionCall","src":"16588:34:25"},"nodeType":"YulExpressionStatement","src":"16588:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16642:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16653:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16638:3:25"},"nodeType":"YulFunctionCall","src":"16638:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16662:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"16670:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16658:3:25"},"nodeType":"YulFunctionCall","src":"16658:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16631:6:25"},"nodeType":"YulFunctionCall","src":"16631:43:25"},"nodeType":"YulExpressionStatement","src":"16631:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16694:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16705:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16690:3:25"},"nodeType":"YulFunctionCall","src":"16690:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"16714:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16730:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16735:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16726:3:25"},"nodeType":"YulFunctionCall","src":"16726:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"16739:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16722:3:25"},"nodeType":"YulFunctionCall","src":"16722:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16710:3:25"},"nodeType":"YulFunctionCall","src":"16710:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16683:6:25"},"nodeType":"YulFunctionCall","src":"16683:60:25"},"nodeType":"YulExpressionStatement","src":"16683:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16763:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16774:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16759:3:25"},"nodeType":"YulFunctionCall","src":"16759:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"16779:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16752:6:25"},"nodeType":"YulFunctionCall","src":"16752:34:25"},"nodeType":"YulExpressionStatement","src":"16752:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16462:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16473:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16481:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16489:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16497:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16508:4:25","type":""}],"src":"16336:456:25"},{"body":{"nodeType":"YulBlock","src":"16887:544:25","statements":[{"body":{"nodeType":"YulBlock","src":"16933:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16942:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16945:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16935:6:25"},"nodeType":"YulFunctionCall","src":"16935:12:25"},"nodeType":"YulExpressionStatement","src":"16935:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16908:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"16917:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16904:3:25"},"nodeType":"YulFunctionCall","src":"16904:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"16929:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16900:3:25"},"nodeType":"YulFunctionCall","src":"16900:32:25"},"nodeType":"YulIf","src":"16897:52:25"},{"nodeType":"YulVariableDeclaration","src":"16958:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16978:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16972:5:25"},"nodeType":"YulFunctionCall","src":"16972:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16962:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"17031:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17040:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17043:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17033:6:25"},"nodeType":"YulFunctionCall","src":"17033:12:25"},"nodeType":"YulExpressionStatement","src":"17033:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"17003:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17011:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17000:2:25"},"nodeType":"YulFunctionCall","src":"17000:30:25"},"nodeType":"YulIf","src":"16997:50:25"},{"nodeType":"YulVariableDeclaration","src":"17056:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17070:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"17081:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17066:3:25"},"nodeType":"YulFunctionCall","src":"17066:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17060:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"17136:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17145:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17148:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17138:6:25"},"nodeType":"YulFunctionCall","src":"17138:12:25"},"nodeType":"YulExpressionStatement","src":"17138:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17115:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"17119:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17111:3:25"},"nodeType":"YulFunctionCall","src":"17111:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17126:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17107:3:25"},"nodeType":"YulFunctionCall","src":"17107:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17100:6:25"},"nodeType":"YulFunctionCall","src":"17100:35:25"},"nodeType":"YulIf","src":"17097:55:25"},{"nodeType":"YulVariableDeclaration","src":"17161:19:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17177:2:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17171:5:25"},"nodeType":"YulFunctionCall","src":"17171:9:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"17165:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17189:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"17246:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"17218:27:25"},"nodeType":"YulFunctionCall","src":"17218:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"17202:15:25"},"nodeType":"YulFunctionCall","src":"17202:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"17193:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17266:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17273:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17259:6:25"},"nodeType":"YulFunctionCall","src":"17259:17:25"},"nodeType":"YulExpressionStatement","src":"17259:17:25"},{"body":{"nodeType":"YulBlock","src":"17322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17324:6:25"},"nodeType":"YulFunctionCall","src":"17324:12:25"},"nodeType":"YulExpressionStatement","src":"17324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17299:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17303:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17295:3:25"},"nodeType":"YulFunctionCall","src":"17295:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17308:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17291:3:25"},"nodeType":"YulFunctionCall","src":"17291:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17313:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17288:2:25"},"nodeType":"YulFunctionCall","src":"17288:33:25"},"nodeType":"YulIf","src":"17285:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17373:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"17377:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17369:3:25"},"nodeType":"YulFunctionCall","src":"17369:11:25"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17386:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"17393:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17382:3:25"},"nodeType":"YulFunctionCall","src":"17382:14:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17398:2:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"17347:21:25"},"nodeType":"YulFunctionCall","src":"17347:54:25"},"nodeType":"YulExpressionStatement","src":"17347:54:25"},{"nodeType":"YulAssignment","src":"17410:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"17420:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"17410:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16853:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"16864:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"16876:6:25","type":""}],"src":"16797:634:25"},{"body":{"nodeType":"YulBlock","src":"17653:338:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17670:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17693:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17681:3:25"},"nodeType":"YulFunctionCall","src":"17681:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17663:6:25"},"nodeType":"YulFunctionCall","src":"17663:38:25"},"nodeType":"YulExpressionStatement","src":"17663:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17721:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17732:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17717:3:25"},"nodeType":"YulFunctionCall","src":"17717:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17737:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17710:6:25"},"nodeType":"YulFunctionCall","src":"17710:31:25"},"nodeType":"YulExpressionStatement","src":"17710:31:25"},{"nodeType":"YulVariableDeclaration","src":"17750:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17781:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17804:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17789:3:25"},"nodeType":"YulFunctionCall","src":"17789:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"17764:16:25"},"nodeType":"YulFunctionCall","src":"17764:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"17754:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17840:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17825:3:25"},"nodeType":"YulFunctionCall","src":"17825:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17849:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17857:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17845:3:25"},"nodeType":"YulFunctionCall","src":"17845:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17818:6:25"},"nodeType":"YulFunctionCall","src":"17818:59:25"},"nodeType":"YulExpressionStatement","src":"17818:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17897:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17908:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17893:3:25"},"nodeType":"YulFunctionCall","src":"17893:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17913:3:25"},"nodeType":"YulFunctionCall","src":"17913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17886:6:25"},"nodeType":"YulFunctionCall","src":"17886:50:25"},"nodeType":"YulExpressionStatement","src":"17886:50:25"},{"nodeType":"YulAssignment","src":"17945:40:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17970:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17978:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"17953:16:25"},"nodeType":"YulFunctionCall","src":"17953:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17945:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17598:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17617:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17625:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17633:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17644:4:25","type":""}],"src":"17436:555:25"},{"body":{"nodeType":"YulBlock","src":"18133:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18143:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18163:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18157:5:25"},"nodeType":"YulFunctionCall","src":"18157:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"18147:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18205:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18213:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18201:3:25"},"nodeType":"YulFunctionCall","src":"18201:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"18220:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"18225:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"18179:21:25"},"nodeType":"YulFunctionCall","src":"18179:53:25"},"nodeType":"YulExpressionStatement","src":"18179:53:25"},{"nodeType":"YulAssignment","src":"18241:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18252:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"18257:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18248:3:25"},"nodeType":"YulFunctionCall","src":"18248:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18241:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18109:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18114:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18125:3:25","type":""}],"src":"17996:274:25"},{"body":{"nodeType":"YulBlock","src":"18538:453:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18555:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18570:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18578:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18566:3:25"},"nodeType":"YulFunctionCall","src":"18566:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18548:6:25"},"nodeType":"YulFunctionCall","src":"18548:38:25"},"nodeType":"YulExpressionStatement","src":"18548:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18606:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18617:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18602:3:25"},"nodeType":"YulFunctionCall","src":"18602:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18622:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18595:6:25"},"nodeType":"YulFunctionCall","src":"18595:31:25"},"nodeType":"YulExpressionStatement","src":"18595:31:25"},{"nodeType":"YulVariableDeclaration","src":"18635:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18666:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18678:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18689:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18674:3:25"},"nodeType":"YulFunctionCall","src":"18674:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18649:16:25"},"nodeType":"YulFunctionCall","src":"18649:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"18639:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18714:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18725:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18710:3:25"},"nodeType":"YulFunctionCall","src":"18710:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18734:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18742:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18730:3:25"},"nodeType":"YulFunctionCall","src":"18730:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18703:6:25"},"nodeType":"YulFunctionCall","src":"18703:59:25"},"nodeType":"YulExpressionStatement","src":"18703:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18782:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18793:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18778:3:25"},"nodeType":"YulFunctionCall","src":"18778:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"18802:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"18810:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18798:3:25"},"nodeType":"YulFunctionCall","src":"18798:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18771:6:25"},"nodeType":"YulFunctionCall","src":"18771:50:25"},"nodeType":"YulExpressionStatement","src":"18771:50:25"},{"nodeType":"YulVariableDeclaration","src":"18830:46:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18861:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"18869:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18844:16:25"},"nodeType":"YulFunctionCall","src":"18844:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"18834:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18907:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18892:3:25"},"nodeType":"YulFunctionCall","src":"18892:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"18917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"18925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18913:3:25"},"nodeType":"YulFunctionCall","src":"18913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18885:6:25"},"nodeType":"YulFunctionCall","src":"18885:51:25"},"nodeType":"YulExpressionStatement","src":"18885:51:25"},{"nodeType":"YulAssignment","src":"18945:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"18970:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"18978:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18953:16:25"},"nodeType":"YulFunctionCall","src":"18953:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18945:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18475:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"18486:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18494:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18502:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18529:4:25","type":""}],"src":"18275:716:25"},{"body":{"nodeType":"YulBlock","src":"19170:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19187:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19198:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19180:6:25"},"nodeType":"YulFunctionCall","src":"19180:21:25"},"nodeType":"YulExpressionStatement","src":"19180:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19221:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19232:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19217:3:25"},"nodeType":"YulFunctionCall","src":"19217:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19237:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19210:6:25"},"nodeType":"YulFunctionCall","src":"19210:30:25"},"nodeType":"YulExpressionStatement","src":"19210:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19260:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19271:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19256:3:25"},"nodeType":"YulFunctionCall","src":"19256:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"19276:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19249:6:25"},"nodeType":"YulFunctionCall","src":"19249:62:25"},"nodeType":"YulExpressionStatement","src":"19249:62:25"},{"nodeType":"YulAssignment","src":"19320:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19332:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19343:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19328:3:25"},"nodeType":"YulFunctionCall","src":"19328:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19320:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19147:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19161:4:25","type":""}],"src":"18996:356:25"},{"body":{"nodeType":"YulBlock","src":"19408:647:25","statements":[{"nodeType":"YulVariableDeclaration","src":"19418:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19440:2:25","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"19444:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"19429:10:25"},"nodeType":"YulFunctionCall","src":"19429:17:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"19422:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19455:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19477:2:25","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"19481:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"19466:10:25"},"nodeType":"YulFunctionCall","src":"19466:17:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"19459:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19492:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"19502:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19496:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19545:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19559:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19564:1:25","type":"","value":"0"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"19555:3:25"},"nodeType":"YulFunctionCall","src":"19555:11:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"19549:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19575:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19589:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19594:1:25","type":"","value":"0"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"19585:3:25"},"nodeType":"YulFunctionCall","src":"19585:11:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"19579:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19648:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19650:16:25"},"nodeType":"YulFunctionCall","src":"19650:18:25"},"nodeType":"YulExpressionStatement","src":"19650:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"19616:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"19620:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19612:3:25"},"nodeType":"YulFunctionCall","src":"19612:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19628:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19637:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19641:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"19633:3:25"},"nodeType":"YulFunctionCall","src":"19633:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19625:2:25"},"nodeType":"YulFunctionCall","src":"19625:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19608:3:25"},"nodeType":"YulFunctionCall","src":"19608:39:25"},"nodeType":"YulIf","src":"19605:65:25"},{"nodeType":"YulVariableDeclaration","src":"19679:49:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19693:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19689:3:25"},"nodeType":"YulFunctionCall","src":"19689:39:25"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"19683:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19737:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19751:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19756:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19747:3:25"},"nodeType":"YulFunctionCall","src":"19747:11:25"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"19741:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19812:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19814:16:25"},"nodeType":"YulFunctionCall","src":"19814:18:25"},"nodeType":"YulExpressionStatement","src":"19814:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"19778:2:25"},{"name":"_5","nodeType":"YulIdentifier","src":"19782:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19774:3:25"},"nodeType":"YulFunctionCall","src":"19774:11:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19791:3:25"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"19801:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"19805:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19796:4:25"},"nodeType":"YulFunctionCall","src":"19796:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19787:3:25"},"nodeType":"YulFunctionCall","src":"19787:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19770:3:25"},"nodeType":"YulFunctionCall","src":"19770:41:25"},"nodeType":"YulIf","src":"19767:67:25"},{"nodeType":"YulVariableDeclaration","src":"19843:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19857:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19862:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19853:3:25"},"nodeType":"YulFunctionCall","src":"19853:11:25"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"19847:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19918:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19920:16:25"},"nodeType":"YulFunctionCall","src":"19920:18:25"},"nodeType":"YulExpressionStatement","src":"19920:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"19884:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"19888:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19880:3:25"},"nodeType":"YulFunctionCall","src":"19880:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19897:3:25"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"19907:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19911:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19902:4:25"},"nodeType":"YulFunctionCall","src":"19902:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19893:3:25"},"nodeType":"YulFunctionCall","src":"19893:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19876:3:25"},"nodeType":"YulFunctionCall","src":"19876:41:25"},"nodeType":"YulIf","src":"19873:67:25"},{"body":{"nodeType":"YulBlock","src":"19994:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19996:16:25"},"nodeType":"YulFunctionCall","src":"19996:18:25"},"nodeType":"YulExpressionStatement","src":"19996:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"19960:2:25"},{"name":"_5","nodeType":"YulIdentifier","src":"19964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19956:3:25"},"nodeType":"YulFunctionCall","src":"19956:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19973:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19983:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19987:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19978:4:25"},"nodeType":"YulFunctionCall","src":"19978:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19969:3:25"},"nodeType":"YulFunctionCall","src":"19969:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19952:3:25"},"nodeType":"YulFunctionCall","src":"19952:41:25"},"nodeType":"YulIf","src":"19949:67:25"},{"nodeType":"YulAssignment","src":"20025:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20040:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20045:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"20036:3:25"},"nodeType":"YulFunctionCall","src":"20036:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"20025:7:25"}]}]},"name":"checked_mul_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19387:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"19390:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"19396:7:25","type":""}],"src":"19357:698:25"},{"body":{"nodeType":"YulBlock","src":"20108:350:25","statements":[{"nodeType":"YulVariableDeclaration","src":"20118:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20140:2:25","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"20144:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"20129:10:25"},"nodeType":"YulFunctionCall","src":"20129:17:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"20122:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20155:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20177:2:25","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"20181:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"20166:10:25"},"nodeType":"YulFunctionCall","src":"20166:17:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"20159:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20192:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"20206:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"20211:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20202:3:25"},"nodeType":"YulFunctionCall","src":"20202:11:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20196:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"20302:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20304:16:25"},"nodeType":"YulFunctionCall","src":"20304:18:25"},"nodeType":"YulExpressionStatement","src":"20304:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20236:2:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20229:6:25"},"nodeType":"YulFunctionCall","src":"20229:10:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20245:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20258:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20254:3:25"},"nodeType":"YulFunctionCall","src":"20254:39:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20295:3:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20250:3:25"},"nodeType":"YulFunctionCall","src":"20250:49:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20241:3:25"},"nodeType":"YulFunctionCall","src":"20241:59:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20225:3:25"},"nodeType":"YulFunctionCall","src":"20225:76:25"},"nodeType":"YulIf","src":"20222:102:25"},{"body":{"nodeType":"YulBlock","src":"20400:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20402:16:25"},"nodeType":"YulFunctionCall","src":"20402:18:25"},"nodeType":"YulExpressionStatement","src":"20402:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20340:2:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20348:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20357:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"},{"name":"y_1","nodeType":"YulIdentifier","src":"20393:3:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20353:3:25"},"nodeType":"YulFunctionCall","src":"20353:44:25"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"20344:3:25"},"nodeType":"YulFunctionCall","src":"20344:54:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20336:3:25"},"nodeType":"YulFunctionCall","src":"20336:63:25"},"nodeType":"YulIf","src":"20333:89:25"},{"nodeType":"YulAssignment","src":"20431:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20443:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20448:3:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20439:3:25"},"nodeType":"YulFunctionCall","src":"20439:13:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"20431:4:25"}]}]},"name":"checked_sub_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20090:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"20093:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"20060:398:25"},{"body":{"nodeType":"YulBlock","src":"20637:232:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20654:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20665:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20647:6:25"},"nodeType":"YulFunctionCall","src":"20647:21:25"},"nodeType":"YulExpressionStatement","src":"20647:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20688:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20699:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20684:3:25"},"nodeType":"YulFunctionCall","src":"20684:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20704:2:25","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20677:6:25"},"nodeType":"YulFunctionCall","src":"20677:30:25"},"nodeType":"YulExpressionStatement","src":"20677:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20738:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20723:3:25"},"nodeType":"YulFunctionCall","src":"20723:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e2070","kind":"string","nodeType":"YulLiteral","src":"20743:34:25","type":"","value":"OmniVotingEscrowChild: unknown p"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20716:6:25"},"nodeType":"YulFunctionCall","src":"20716:62:25"},"nodeType":"YulExpressionStatement","src":"20716:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20798:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20809:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20794:3:25"},"nodeType":"YulFunctionCall","src":"20794:18:25"},{"hexValue":"61636b65742074797065","kind":"string","nodeType":"YulLiteral","src":"20814:12:25","type":"","value":"acket type"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20787:6:25"},"nodeType":"YulFunctionCall","src":"20787:40:25"},"nodeType":"YulExpressionStatement","src":"20787:40:25"},{"nodeType":"YulAssignment","src":"20836:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20848:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20859:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20844:3:25"},"nodeType":"YulFunctionCall","src":"20844:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20836:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20614:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20628:4:25","type":""}],"src":"20463:406:25"},{"body":{"nodeType":"YulBlock","src":"20922:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"20949:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20951:16:25"},"nodeType":"YulFunctionCall","src":"20951:18:25"},"nodeType":"YulExpressionStatement","src":"20951:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20938:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20945:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20941:3:25"},"nodeType":"YulFunctionCall","src":"20941:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20935:2:25"},"nodeType":"YulFunctionCall","src":"20935:13:25"},"nodeType":"YulIf","src":"20932:39:25"},{"nodeType":"YulAssignment","src":"20980:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20991:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"20994:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20987:3:25"},"nodeType":"YulFunctionCall","src":"20987:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"20980:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20905:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"20908:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"20914:3:25","type":""}],"src":"20874:128:25"},{"body":{"nodeType":"YulBlock","src":"21181:164:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21209:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21191:6:25"},"nodeType":"YulFunctionCall","src":"21191:21:25"},"nodeType":"YulExpressionStatement","src":"21191:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21232:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21243:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21228:3:25"},"nodeType":"YulFunctionCall","src":"21228:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21248:2:25","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21221:6:25"},"nodeType":"YulFunctionCall","src":"21221:30:25"},"nodeType":"YulExpressionStatement","src":"21221:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21271:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21282:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21267:3:25"},"nodeType":"YulFunctionCall","src":"21267:18:25"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"21287:16:25","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21260:6:25"},"nodeType":"YulFunctionCall","src":"21260:44:25"},"nodeType":"YulExpressionStatement","src":"21260:44:25"},{"nodeType":"YulAssignment","src":"21313:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21325:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21336:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21321:3:25"},"nodeType":"YulFunctionCall","src":"21321:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21313:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21158:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21172:4:25","type":""}],"src":"21007:338:25"},{"body":{"nodeType":"YulBlock","src":"21524:167:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21552:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21534:6:25"},"nodeType":"YulFunctionCall","src":"21534:21:25"},"nodeType":"YulExpressionStatement","src":"21534:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21575:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21586:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21571:3:25"},"nodeType":"YulFunctionCall","src":"21571:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21591:2:25","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21564:6:25"},"nodeType":"YulFunctionCall","src":"21564:30:25"},"nodeType":"YulExpressionStatement","src":"21564:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21614:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21625:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21610:3:25"},"nodeType":"YulFunctionCall","src":"21610:18:25"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nodeType":"YulLiteral","src":"21630:19:25","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21603:6:25"},"nodeType":"YulFunctionCall","src":"21603:47:25"},"nodeType":"YulExpressionStatement","src":"21603:47:25"},{"nodeType":"YulAssignment","src":"21659:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21667:3:25"},"nodeType":"YulFunctionCall","src":"21667:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21659:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21501:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21515:4:25","type":""}],"src":"21350:341:25"},{"body":{"nodeType":"YulBlock","src":"21769:656:25","statements":[{"body":{"nodeType":"YulBlock","src":"21813:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21822:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21825:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21815:6:25"},"nodeType":"YulFunctionCall","src":"21815:12:25"},"nodeType":"YulExpressionStatement","src":"21815:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"21790:3:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"21795:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21786:3:25"},"nodeType":"YulFunctionCall","src":"21786:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"21807:4:25","type":"","value":"0x80"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21782:3:25"},"nodeType":"YulFunctionCall","src":"21782:30:25"},"nodeType":"YulIf","src":"21779:50:25"},{"nodeType":"YulVariableDeclaration","src":"21838:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21858:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21852:5:25"},"nodeType":"YulFunctionCall","src":"21852:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"21842:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21870:35:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21892:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21900:4:25","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21888:3:25"},"nodeType":"YulFunctionCall","src":"21888:17:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"21874:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"21980:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"21982:16:25"},"nodeType":"YulFunctionCall","src":"21982:18:25"},"nodeType":"YulExpressionStatement","src":"21982:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21923:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"21935:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21920:2:25"},"nodeType":"YulFunctionCall","src":"21920:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21959:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"21971:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21956:2:25"},"nodeType":"YulFunctionCall","src":"21956:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"21917:2:25"},"nodeType":"YulFunctionCall","src":"21917:62:25"},"nodeType":"YulIf","src":"21914:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22018:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22022:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22011:6:25"},"nodeType":"YulFunctionCall","src":"22011:22:25"},"nodeType":"YulExpressionStatement","src":"22011:22:25"},{"nodeType":"YulAssignment","src":"22042:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"22051:6:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"22042:5:25"}]},{"nodeType":"YulVariableDeclaration","src":"22066:31:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22087:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22081:5:25"},"nodeType":"YulFunctionCall","src":"22081:16:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"22070:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22130:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"22106:23:25"},"nodeType":"YulFunctionCall","src":"22106:32:25"},"nodeType":"YulExpressionStatement","src":"22106:32:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22154:6:25"},{"name":"value_1","nodeType":"YulIdentifier","src":"22162:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22147:6:25"},"nodeType":"YulFunctionCall","src":"22147:23:25"},"nodeType":"YulExpressionStatement","src":"22147:23:25"},{"nodeType":"YulVariableDeclaration","src":"22179:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22204:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22215:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22200:3:25"},"nodeType":"YulFunctionCall","src":"22200:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22194:5:25"},"nodeType":"YulFunctionCall","src":"22194:25:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"22183:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"22252:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"22228:23:25"},"nodeType":"YulFunctionCall","src":"22228:32:25"},"nodeType":"YulExpressionStatement","src":"22228:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22280:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22288:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22276:3:25"},"nodeType":"YulFunctionCall","src":"22276:15:25"},{"name":"value_2","nodeType":"YulIdentifier","src":"22293:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22269:6:25"},"nodeType":"YulFunctionCall","src":"22269:32:25"},"nodeType":"YulExpressionStatement","src":"22269:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22321:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22329:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22317:3:25"},"nodeType":"YulFunctionCall","src":"22317:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22344:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22355:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22340:3:25"},"nodeType":"YulFunctionCall","src":"22340:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22334:5:25"},"nodeType":"YulFunctionCall","src":"22334:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22310:6:25"},"nodeType":"YulFunctionCall","src":"22310:50:25"},"nodeType":"YulExpressionStatement","src":"22310:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22380:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22388:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22403:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22414:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22399:3:25"},"nodeType":"YulFunctionCall","src":"22399:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22393:5:25"},"nodeType":"YulFunctionCall","src":"22393:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22369:6:25"},"nodeType":"YulFunctionCall","src":"22369:50:25"},"nodeType":"YulExpressionStatement","src":"22369:50:25"}]},"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21740:9:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"21751:3:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"21759:5:25","type":""}],"src":"21696:729:25"},{"body":{"nodeType":"YulBlock","src":"22632:496:25","statements":[{"body":{"nodeType":"YulBlock","src":"22679:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22688:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22691:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22681:6:25"},"nodeType":"YulFunctionCall","src":"22681:12:25"},"nodeType":"YulExpressionStatement","src":"22681:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"22653:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"22662:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22649:3:25"},"nodeType":"YulFunctionCall","src":"22649:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"22674:3:25","type":"","value":"352"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"22645:3:25"},"nodeType":"YulFunctionCall","src":"22645:33:25"},"nodeType":"YulIf","src":"22642:53:25"},{"nodeType":"YulVariableDeclaration","src":"22704:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22723:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22717:5:25"},"nodeType":"YulFunctionCall","src":"22717:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"22708:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22766:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"22742:23:25"},"nodeType":"YulFunctionCall","src":"22742:30:25"},"nodeType":"YulExpressionStatement","src":"22742:30:25"},{"nodeType":"YulAssignment","src":"22781:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"22791:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"22781:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"22805:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22830:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22841:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22826:3:25"},"nodeType":"YulFunctionCall","src":"22826:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22820:5:25"},"nodeType":"YulFunctionCall","src":"22820:25:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"22809:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22879:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"22854:24:25"},"nodeType":"YulFunctionCall","src":"22854:33:25"},"nodeType":"YulExpressionStatement","src":"22854:33:25"},{"nodeType":"YulAssignment","src":"22896:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"22906:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"22896:6:25"}]},{"nodeType":"YulAssignment","src":"22922:35:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22942:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22953:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22938:3:25"},"nodeType":"YulFunctionCall","src":"22938:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22932:5:25"},"nodeType":"YulFunctionCall","src":"22932:25:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"22922:6:25"}]},{"nodeType":"YulAssignment","src":"22966:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23015:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23026:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23011:3:25"},"nodeType":"YulFunctionCall","src":"23011:18:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23031:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"22976:34:25"},"nodeType":"YulFunctionCall","src":"22976:63:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"22966:6:25"}]},{"nodeType":"YulAssignment","src":"23048:74:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23097:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23108:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23093:3:25"},"nodeType":"YulFunctionCall","src":"23093:19:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23114:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"23058:34:25"},"nodeType":"YulFunctionCall","src":"23058:64:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"23048:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22566:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"22577:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"22589:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22597:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22605:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22613:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22621:6:25","type":""}],"src":"22430:698:25"},{"body":{"nodeType":"YulBlock","src":"23182:241:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23199:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23215:2:25","type":"","value":"15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23225:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23219:5:25"},"nodeType":"YulFunctionCall","src":"23219:12:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"23204:10:25"},"nodeType":"YulFunctionCall","src":"23204:28:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23192:6:25"},"nodeType":"YulFunctionCall","src":"23192:41:25"},"nodeType":"YulExpressionStatement","src":"23192:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23253:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23258:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23249:3:25"},"nodeType":"YulFunctionCall","src":"23249:14:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23276:2:25","type":"","value":"15"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23290:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23297:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23286:3:25"},"nodeType":"YulFunctionCall","src":"23286:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23280:5:25"},"nodeType":"YulFunctionCall","src":"23280:23:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"23265:10:25"},"nodeType":"YulFunctionCall","src":"23265:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23242:6:25"},"nodeType":"YulFunctionCall","src":"23242:63:25"},"nodeType":"YulExpressionStatement","src":"23242:63:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23325:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23330:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23321:3:25"},"nodeType":"YulFunctionCall","src":"23321:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23347:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23354:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23343:3:25"},"nodeType":"YulFunctionCall","src":"23343:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23337:5:25"},"nodeType":"YulFunctionCall","src":"23337:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23314:6:25"},"nodeType":"YulFunctionCall","src":"23314:47:25"},"nodeType":"YulExpressionStatement","src":"23314:47:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23381:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23386:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23377:3:25"},"nodeType":"YulFunctionCall","src":"23377:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23403:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23410:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23399:3:25"},"nodeType":"YulFunctionCall","src":"23399:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23393:5:25"},"nodeType":"YulFunctionCall","src":"23393:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23370:6:25"},"nodeType":"YulFunctionCall","src":"23370:47:25"},"nodeType":"YulExpressionStatement","src":"23370:47:25"}]},"name":"abi_encode_struct_Point","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"23166:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"23173:3:25","type":""}],"src":"23133:290:25"},{"body":{"nodeType":"YulBlock","src":"23703:280:25","statements":[{"nodeType":"YulAssignment","src":"23713:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23725:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23736:3:25","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23721:3:25"},"nodeType":"YulFunctionCall","src":"23721:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23713:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23756:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23771:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23779:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23767:3:25"},"nodeType":"YulFunctionCall","src":"23767:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23749:6:25"},"nodeType":"YulFunctionCall","src":"23749:38:25"},"nodeType":"YulExpressionStatement","src":"23749:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23803:3:25"},"nodeType":"YulFunctionCall","src":"23803:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23827:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23843:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23848:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23839:3:25"},"nodeType":"YulFunctionCall","src":"23839:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"23852:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23835:3:25"},"nodeType":"YulFunctionCall","src":"23835:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23823:3:25"},"nodeType":"YulFunctionCall","src":"23823:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23796:6:25"},"nodeType":"YulFunctionCall","src":"23796:60:25"},"nodeType":"YulExpressionStatement","src":"23796:60:25"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23889:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23901:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23912:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23897:3:25"},"nodeType":"YulFunctionCall","src":"23897:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"23865:23:25"},"nodeType":"YulFunctionCall","src":"23865:51:25"},"nodeType":"YulExpressionStatement","src":"23865:51:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23949:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23961:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23972:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23957:3:25"},"nodeType":"YulFunctionCall","src":"23957:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"23925:23:25"},"nodeType":"YulFunctionCall","src":"23925:52:25"},"nodeType":"YulExpressionStatement","src":"23925:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23648:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23659:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23667:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23675:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23683:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23694:4:25","type":""}],"src":"23428:555:25"},{"body":{"nodeType":"YulBlock","src":"24108:252:25","statements":[{"body":{"nodeType":"YulBlock","src":"24155:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24164:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24167:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24157:6:25"},"nodeType":"YulFunctionCall","src":"24157:12:25"},"nodeType":"YulExpressionStatement","src":"24157:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"24129:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24138:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24125:3:25"},"nodeType":"YulFunctionCall","src":"24125:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"24150:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"24121:3:25"},"nodeType":"YulFunctionCall","src":"24121:33:25"},"nodeType":"YulIf","src":"24118:53:25"},{"nodeType":"YulVariableDeclaration","src":"24180:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24199:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24193:5:25"},"nodeType":"YulFunctionCall","src":"24193:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"24184:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24242:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"24218:23:25"},"nodeType":"YulFunctionCall","src":"24218:30:25"},"nodeType":"YulExpressionStatement","src":"24218:30:25"},{"nodeType":"YulAssignment","src":"24257:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"24267:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"24257:6:25"}]},{"nodeType":"YulAssignment","src":"24281:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24330:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24341:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24326:3:25"},"nodeType":"YulFunctionCall","src":"24326:18:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"24346:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"24291:34:25"},"nodeType":"YulFunctionCall","src":"24291:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"24281:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24066:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"24077:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"24089:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24097:6:25","type":""}],"src":"23988:372:25"},{"body":{"nodeType":"YulBlock","src":"24538:150:25","statements":[{"nodeType":"YulAssignment","src":"24548:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24560:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24571:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24556:3:25"},"nodeType":"YulFunctionCall","src":"24556:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24548:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24591:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24606:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24614:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24602:3:25"},"nodeType":"YulFunctionCall","src":"24602:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24584:6:25"},"nodeType":"YulFunctionCall","src":"24584:38:25"},"nodeType":"YulExpressionStatement","src":"24584:38:25"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24655:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24663:3:25"},"nodeType":"YulFunctionCall","src":"24663:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"24631:23:25"},"nodeType":"YulFunctionCall","src":"24631:51:25"},"nodeType":"YulExpressionStatement","src":"24631:51:25"}]},"name":"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24499:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24529:4:25","type":""}],"src":"24365:323:25"}]},"contents":"{\n { }\n function validator_revert_uint16(value)\n {\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n value3 := abi_decode_uint64(add(headStart, 64))\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(0, 0) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function validator_revert_int128(value)\n {\n if iszero(eq(value, signextend(15, value))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Point_$4477_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 128)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let value := calldataload(headStart)\n validator_revert_int128(value)\n mstore(memPtr, value)\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_int128(value_1)\n mstore(add(memPtr, 32), value_1)\n mstore(add(memPtr, 64), calldataload(add(headStart, 64)))\n mstore(add(memPtr, 96), calldataload(add(headStart, 96)))\n value0 := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := calldataload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(array, 32), add(_1, 32), _2)\n mstore(add(add(array, _2), 32), 0)\n value1 := array\n value2 := abi_decode_uint64(add(headStart, 64))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, signextend(15, value0))\n mstore(add(headStart, 32), signextend(15, value1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n value3 := calldataload(add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LzApp: invalid endpoint caller\")\n tail := add(headStart, 96)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LzApp: invalid source sending co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"NonblockingLzApp: caller must be\")\n mstore(add(headStart, 96), \" LzApp\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LzApp: no trusted path record\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n mstore(_1, and(shl(96, value2), not(0xffffffffffffffffffffffff)))\n end := add(_1, 20)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"NonblockingLzApp: no stored mess\")\n mstore(add(headStart, 96), \"age\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"NonblockingLzApp: invalid payloa\")\n mstore(add(headStart, 96), \"d\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), value4)\n }\n function abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"LzApp: invalid minGas\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value3, tail_1)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value3, tail_1)\n mstore(add(headStart, 128), sub(tail_2, headStart))\n tail := abi_encode_bytes(value4, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_int128(x, y) -> product\n {\n let x_1 := signextend(15, x)\n let y_1 := signextend(15, y)\n let _1 := 0x7fffffffffffffffffffffffffffffff\n let _2 := sgt(y_1, 0)\n let _3 := sgt(x_1, 0)\n if and(and(_3, _2), gt(x_1, div(_1, y_1))) { panic_error_0x11() }\n let _4 := not(0x7fffffffffffffffffffffffffffffff)\n let _5 := slt(y_1, 0)\n if and(and(_3, _5), slt(y_1, sdiv(_4, x_1))) { panic_error_0x11() }\n let _6 := slt(x_1, 0)\n if and(and(_6, _2), slt(x_1, sdiv(_4, y_1))) { panic_error_0x11() }\n if and(and(_6, _5), slt(x_1, sdiv(_1, y_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_sub_t_int128(x, y) -> diff\n {\n let x_1 := signextend(15, x)\n let y_1 := signextend(15, y)\n let _1 := slt(y_1, 0)\n if and(iszero(_1), slt(x_1, add(not(0x7fffffffffffffffffffffffffffffff), y_1))) { panic_error_0x11() }\n if and(_1, sgt(x_1, add(0x7fffffffffffffffffffffffffffffff, y_1))) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"OmniVotingEscrowChild: unknown p\")\n mstore(add(headStart, 96), \"acket type\")\n tail := add(headStart, 128)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"slice_overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"slice_outOfBounds\")\n tail := add(headStart, 96)\n }\n function abi_decode_struct_Point_fromMemory(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x80) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x80)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n value := memPtr\n let value_1 := mload(headStart)\n validator_revert_int128(value_1)\n mstore(memPtr, value_1)\n let value_2 := mload(add(headStart, 32))\n validator_revert_int128(value_2)\n mstore(add(memPtr, 32), value_2)\n mstore(add(memPtr, 64), mload(add(headStart, 64)))\n mstore(add(memPtr, 96), mload(add(headStart, 96)))\n }\n function abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 352) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := mload(add(headStart, 64))\n value3 := abi_decode_struct_Point_fromMemory(add(headStart, 96), dataEnd)\n value4 := abi_decode_struct_Point_fromMemory(add(headStart, 224), dataEnd)\n }\n function abi_encode_struct_Point(value, pos)\n {\n mstore(pos, signextend(15, mload(value)))\n mstore(add(pos, 0x20), signextend(15, mload(add(value, 0x20))))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n }\n function abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 320)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n abi_encode_struct_Point(value2, add(headStart, 64))\n abi_encode_struct_Point(value3, add(headStart, 192))\n }\n function abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint16(value)\n value0 := value\n value1 := abi_decode_struct_Point_fromMemory(add(headStart, 32), dataEnd)\n }\n function abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, and(value0, 0xffff))\n abi_encode_struct_Point(value1, add(headStart, 32))\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"446":[{"length":32,"start":1234},{"length":32,"start":1643},{"length":32,"start":2234},{"length":32,"start":2371},{"length":32,"start":2749},{"length":32,"start":3879},{"length":32,"start":4969}],"4123":[{"length":32,"start":886},{"length":32,"start":6374},{"length":32,"start":6616}]},"linkReferences":{},"object":"6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea26469706673582212208e77efc2663b67c491d6a8aa9cd21d2e9d7d8aee12e9c19fbab897fdd343d6ee64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xCBED8B9C GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xF4182ACB EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xF50DDBC7 EQ PUSH2 0x5FD JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x648 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA6C3D165 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x473 JUMPI DUP1 PUSH4 0xADC63589 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x164 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x74D2495F EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x378EF708 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x208 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x1E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x97A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF1 JUMP JUMPDEST PUSH2 0x9C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x9D1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xA9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xB24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0xC5B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x370 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xC6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x1F10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F23 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x398 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x398 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xD09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x48E CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xE19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x50F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xEAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x52F CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5C JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xF9D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FCE JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x1265 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x12BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x9 SLOAD PUSH2 0x5D5 SWAP3 PUSH1 0xF DUP2 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SWAP2 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF SWAP6 DUP7 SIGNEXTEND DUP2 MSTORE SWAP4 SWAP1 SWAP5 SIGNEXTEND PUSH1 0x20 DUP5 ADD MSTORE SWAP3 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D5 PUSH2 0x618 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP4 DIV SWAP1 SIGNEXTEND SWAP2 SWAP1 DUP5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x200F JUMP JUMPDEST PUSH2 0x1338 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x703 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x72F SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x77C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x751 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x77C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x75F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x797 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x7BF JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x7B5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x890 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x13E9 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x92A PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x8ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x7 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0x9BB SWAP1 PUSH2 0x154D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CB DUP3 PUSH2 0x154D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x9F2 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA1E SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA6B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA40 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA6B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA4E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA82 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAA6 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xAF6 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x890 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xBF8 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x9CB SWAP1 PUSH2 0x154D JUMP JUMPDEST PUSH2 0xC63 PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xC6D PUSH1 0x0 PUSH2 0x1646 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xC88 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCB4 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD2C SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD58 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD88 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xA97 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0xE11 SWAP2 SWAP1 PUSH2 0x2108 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xE21 PUSH2 0x14F3 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE36 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x211F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0xE6B SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1A69 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xEB4 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xF10 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0xF64 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2145 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF92 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFC0 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x1040 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1051 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x10B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10D3 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x116B SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x11A2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x217E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11BB PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1203 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x126D PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x128B SWAP1 DUP4 DUP4 PUSH2 0x1AED JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x12C7 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x132C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1646 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x13E0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21B9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x144C GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1411 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x17A3 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0xBF8 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1486 SWAP2 SWAP1 PUSH2 0x2264 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x14E3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x1563 SWAP1 TIMESTAMP PUSH2 0x2108 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1572 SWAP2 SWAP1 PUSH2 0x22DE JUMP JUMPDEST DUP3 MLOAD PUSH2 0x157E SWAP2 SWAP1 PUSH2 0x237C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND SLT PUSH2 0x159A JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x159D JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xA SLOAD PUSH2 0xFFFF DUP1 DUP4 AND SWAP2 AND EQ ISZERO PUSH2 0x15CA JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x91B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0xFFFF DUP3 DUP2 AND PUSH3 0x10000 SWAP1 SWAP3 DIV AND EQ ISZERO PUSH2 0x15EB JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x1978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A20756E6B6E6F776E2070 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x61636B65742074797065 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x16A4 DUP2 PUSH1 0x1F PUSH2 0x23CC JUMP JUMPDEST LT ISZERO PUSH2 0x16E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x16ED DUP3 DUP5 PUSH2 0x23CC JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1750 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x179A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1789 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1771 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17C8 JUMPI PUSH2 0x17C8 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17F2 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x1814 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1847 SWAP2 SWAP1 PUSH2 0x245D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 SWAP1 SSTORE PUSH1 0x6 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP8 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP2 DUP4 AND DUP3 MUL OR DUP4 SSTORE DUP9 DUP6 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE PUSH1 0x60 DUP1 DUP11 ADD MLOAD PUSH1 0x2 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE DUP8 MLOAD SWAP4 DUP9 ADD MLOAD SWAP4 DUP3 AND SWAP4 SWAP1 SWAP2 AND MUL SWAP2 SWAP1 SWAP2 OR PUSH1 0x7 SSTORE DUP5 DUP3 ADD MLOAD PUSH1 0x8 SSTORE DUP5 ADD MLOAD PUSH1 0x9 SSTORE MLOAD PUSH4 0x6F8985FF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP PUSH32 0x0 AND SWAP2 POP PUSH4 0xDF130BFE SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0xAE0E70D8538C5776F9975183D965B1722A0E8FA0256C8301CB707F64A9821F83 DUP7 DUP6 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x14E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x198E SWAP2 SWAP1 PUSH2 0x2546 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP2 AND OR PUSH1 0x7 SSTORE PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x8 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x9 SSTORE DUP1 MLOAD PUSH4 0x96345FB5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 POP PUSH4 0x96345FB5 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9048DA34D2DAC99755410B6E83E1EAAB692909FF964F5BC920756AB49C73DF9A DUP4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP3 SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1A75 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A97 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1AB0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1AC2 JUMP JUMPDEST POP PUSH2 0x1AE9 SWAP3 SWAP2 POP PUSH2 0x1B61 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1AF9 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1B34 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1B46 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1AE9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1B62 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1BAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1BC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x1C0E DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1C2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C36 DUP11 DUP4 DUP12 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x1C4A PUSH1 0x40 DUP11 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1C60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6D DUP10 DUP3 DUP11 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1CDA JUMPI PUSH2 0x1CDA PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xF SIGNEXTEND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1D25 JUMPI PUSH2 0x1D25 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD PUSH2 0x1D33 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1D43 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 SWAP3 DUP4 ADD CALLDATALOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1D7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1D85 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1DA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DAC DUP7 DUP3 DUP8 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1DD2 JUMPI PUSH2 0x1DD2 PUSH2 0x1C9C JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1E00 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1E1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x1E2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E3F PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST PUSH2 0x1CB2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1E54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x1E79 PUSH1 0x40 DUP6 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ECF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1EDE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EFC DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1F41 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1F51 DUP2 PUSH2 0x1B76 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x1F7F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x1F8F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1FB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FBD DUP9 DUP3 DUP10 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1FE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1FEE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1FFE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2025 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2030 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2040 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2050 DUP2 PUSH2 0x1E82 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2074 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x13E0 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x211A JUMPI PUSH2 0x211A PUSH2 0x20F2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2173 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x219C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x20AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x21E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x21F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2200 PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E0 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2243 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2173 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2276 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x229D PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x22BE DUP2 DUP7 PUSH2 0x1EE4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x22D2 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB PUSH1 0x0 DUP3 SGT PUSH1 0x0 DUP5 SGT DUP4 DUP4 DIV DUP6 GT DUP3 DUP3 AND AND ISZERO PUSH2 0x230E JUMPI PUSH2 0x230E PUSH2 0x20F2 JUMP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x0 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x233A JUMPI PUSH2 0x233A PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x0 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x2356 JUMPI PUSH2 0x2356 PUSH2 0x20F2 JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x236C JUMPI PUSH2 0x236C PUSH2 0x20F2 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 SLT DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT ADD DUP4 SLT DUP2 ISZERO AND ISZERO PUSH2 0x23A7 JUMPI PUSH2 0x23A7 PUSH2 0x20F2 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x23C2 JUMPI PUSH2 0x23C2 PUSH2 0x20F2 JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x23DF JUMPI PUSH2 0x23DF PUSH2 0x20F2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2418 JUMPI PUSH2 0x2418 PUSH2 0x1C9C JUMP JUMPDEST DUP1 PUSH1 0x40 MSTORE POP DUP1 SWAP2 POP DUP3 MLOAD PUSH2 0x242B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x243B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x160 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH2 0x2481 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD SWAP1 SWAP6 POP PUSH2 0x2492 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x24A9 DUP8 PUSH1 0x60 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24B8 DUP8 PUSH1 0xE0 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x140 DUP2 ADD PUSH2 0x2513 PUSH1 0x40 DUP4 ADD DUP6 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST DUP3 MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SIGNEXTEND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x13E0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xA0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x2564 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH2 0x2573 DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP15 PUSH24 0xEFC2663B67C491D6A8AA9CD21D2E9D7D8AEE12E9C19FBAB8 SWAP8 REVERT 0xD3 NUMBER 0xD6 0xEE PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"250:3271:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:753:4;;;;;;;;;;-1:-1:-1;1035:753:4;;;;;:::i;:::-;;:::i;:::-;;3834:121;;;;;;;;;;-1:-1:-1;3834:121:4;;;;;:::i;:::-;;:::i;3961:127::-;;;;;;;;;;-1:-1:-1;3961:127:4;;;;;:::i;:::-;;:::i;2962:106:15:-;;;;;;;;;;;;;:::i;:::-;;;1988:25:25;;;1976:2;1961:18;2962:106:15;;;;;;;;3102:133;;;;;;;;;;-1:-1:-1;3102:133:15;;;;;:::i;:::-;;:::i;5744:247:4:-;;;;;;;;;;-1:-1:-1;5744:247:4;;;;;:::i;:::-;;:::i;:::-;;;4052:14:25;;4045:22;4027:41;;4015:2;4000:18;5744:247:4;3887:187:25;4094:176:4;;;;;;;;;;-1:-1:-1;4094:176:4;;;;;:::i;:::-;;:::i;617:85:5:-;;;;;;;;;;-1:-1:-1;617:85:5;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1577:342;;;;;;;;;;-1:-1:-1;1577:342:5;;;;;:::i;:::-;;:::i;2838:118:15:-;;;;;;;;;;-1:-1:-1;2838:118:15;;;;;:::i;:::-;;:::i;1831:101:9:-;;;;;;;;;;;;;:::i;676:54:15:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5916:32:25;;;5898:51;;5886:2;5871:18;676:54:15;5721:234:25;520:51:4;;;;;;;;;;-1:-1:-1;520:51:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;577:65::-;;;;;;;;;;-1:-1:-1;577:65:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:9;;;;;;;;;;-1:-1:-1;1247:7:9;1273:6;-1:-1:-1;;;;;1273:6:9;1201:85;;648:23:4;;;;;;;;;;-1:-1:-1;648:23:4;;;;-1:-1:-1;;;;;648:23:4;;;4898:326;;;;;;;;;;-1:-1:-1;4898:326:4;;;;;:::i;:::-;;:::i;4614:278::-;;;;;;;;;;-1:-1:-1;4614:278:4;;;;;:::i;:::-;;:::i;307:43:15:-;;;;;;;;;;-1:-1:-1;307:43:15;;;;;:::i;:::-;;;;;;;;;;;;;;468:46:4;;;;;;;;;;;;;;;5230:133;;;;;;;;;;-1:-1:-1;5230:133:4;;;;;:::i;:::-;;:::i;3626:202::-;;;;;;;;;;-1:-1:-1;3626:202:4;;;;;:::i;:::-;;:::i;2100:757:5:-;;;;;;:::i;:::-;;:::i;5369:280:4:-;;;;;;;;;;-1:-1:-1;5369:280:4;;;;;:::i;:::-;;:::i;4413:195::-;;;;;;;;;;-1:-1:-1;4413:195:4;;;;;:::i;:::-;;:::i;2081:198:9:-;;;;;;;;;;-1:-1:-1;2081:198:9;;;;;:::i;:::-;;:::i;460:43:15:-;;;;;;;;;;-1:-1:-1;460:43:15;;;;;;;;;;;;;-1:-1:-1;;;460:43:15;;;;;;;;;;;;9006:2:25;8995:22;;;8977:41;;9054:22;;;;9049:2;9034:18;;9027:50;9093:18;;;9086:34;9151:2;9136:18;;9129:34;;;;8964:3;8949:19;460:43:15;8750:419:25;381:57:15;;;;;;;;;;-1:-1:-1;381:57:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;381:57:15;;;;;;;;;3358:209:4;;;;;;;;;;-1:-1:-1;3358:209:4;;;;;:::i;:::-;;:::i;1035:753::-;719:10:13;1273::4;-1:-1:-1;;;;;1249:35:4;;1241:78;;;;-1:-1:-1;;;1241:78:4;;9975:2:25;1241:78:4;;;9957:21:25;10014:2;9994:18;;;9987:30;10053:32;10033:18;;;10026:60;10103:18;;1241:78:4;;;;;;;;;1359:32;;;1330:26;1359:32;;;:19;:32;;;;;1330:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:13;:20;1541:11;;:18;;:42;:70;;;;;1610:1;1587:13;:20;:24;1541:70;:124;;;;-1:-1:-1;1641:24:4;;;;;;1615:22;;;;1625:11;;;;1615:22;:::i;:::-;;;;;;;;:50;1541:124;1533:175;;;;-1:-1:-1;;;1533:175:4;;10995:2:25;1533:175:4;;;10977:21:25;11034:2;11014:18;;;11007:30;11073:34;11053:18;;;11046:62;-1:-1:-1;;;11124:18:25;;;11117:36;11170:19;;1533:175:4;10793:402:25;1533:175:4;1719:62;1738:11;1751;;1719:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1719:62:4;;;;;;;;;;;;;;;;;;;;;;1764:6;;-1:-1:-1;1719:62:4;-1:-1:-1;1772:8:4;;;;;;1719:62;;1772:8;;;;1719:62;;;;;;;;;-1:-1:-1;1719:18:4;;-1:-1:-1;;;1719:62:4:i;:::-;1166:622;1035:753;;;;;;:::o;3834:121::-;1094:13:9;:11;:13::i;:::-;3913:35:4::1;::::0;-1:-1:-1;;;3913:35:4;;11374:6:25;11362:19;;3913:35:4::1;::::0;::::1;11344:38:25::0;3913:10:4::1;-1:-1:-1::0;;;;;3913:25:4::1;::::0;::::1;::::0;11317:18:25;;3913:35:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3834:121:::0;:::o;3961:127::-;1094:13:9;:11;:13::i;:::-;4043:38:4::1;::::0;-1:-1:-1;;;4043:38:4;;11374:6:25;11362:19;;4043:38:4::1;::::0;::::1;11344::25::0;4043:10:4::1;-1:-1:-1::0;;;;;4043:28:4::1;::::0;::::1;::::0;11317:18:25;;4043:38:4::1;11200:188:25::0;2962:106:15;3029:32;;;;;;;;3044:16;3029:32;;;;;;;-1:-1:-1;;;3029:32:15;;;;;;;;;;;;;;;;;;;;;;;;3006:4;;3029:32;;:14;:32::i;:::-;3022:39;;2962:106;:::o;3102:133::-;3183:4;3206:22;3221:6;3206:14;:22::i;:::-;3199:29;3102:133;-1:-1:-1;;3102:133:15:o;5744:247:4:-;5885:32;;;5840:4;5885:32;;;:19;:32;;;;;5856:61;;5840:4;;5885:32;5856:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5972:11;;5962:22;;;;;;;:::i;:::-;;;;;;;;5944:13;5934:24;;;;;;:50;5927:57;;;5744:247;;;;;;:::o;4094:176::-;1094:13:9;:11;:13::i;:::-;4208:55:4::1;::::0;-1:-1:-1;;;4208:55:4;;-1:-1:-1;;;;;4208:10:4::1;:29;::::0;::::1;::::0;:55:::1;::::0;4238:11;;4251;;;;4208:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;1577:342:5::0;719:10:13;1789:4:5;1765:29;1757:80;;;;-1:-1:-1;;;1757:80:5;;12197:2:25;1757:80:5;;;12179:21:25;12236:2;12216:18;;;12209:30;12275:34;12255:18;;;12248:62;-1:-1:-1;;;12326:18:25;;;12319:36;12372:19;;1757:80:5;11995:402:25;1757:80:5;1847:65;1869:11;1882;;1847:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1847:65:5;;;;;;;;;;;;;;;;;;;;;;1895:6;;-1:-1:-1;1847:65:5;-1:-1:-1;1903:8:5;;;;;;1847:65;;1903:8;;;;1847:65;;;;;;;;;-1:-1:-1;1847:21:5;;-1:-1:-1;;;1847:65:5:i;:::-;1577:342;;;;;;:::o;2838:118:15:-;-1:-1:-1;;;;;2931:17:15;;2893:4;2931:17;;;:10;:17;;;;;;;;2916:33;;;;;;;;;;;;;;;-1:-1:-1;;;2916:33:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:33::i;1831:101:9:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;520:51:4:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4898:326::-;5021:35;;;5001:17;5021:35;;;:19;:35;;;;;5001:55;;4977:12;;5001:17;5021:35;5001:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5074:4;:11;5089:1;5074:16;;5066:58;;;;-1:-1:-1;;;5066:58:4;;12604:2:25;5066:58:4;;;12586:21:25;12643:2;12623:18;;;12616:30;12682:31;12662:18;;;12655:59;12731:18;;5066:58:4;12402:353:25;5066:58:4;5141:31;5152:1;5169:2;5155:4;:11;:16;;;;:::i;:::-;5141:4;;:31;:10;:31::i;4614:278::-;1094:13:9;:11;:13::i;:::-;4785:14:4::1;;4809:4;4768:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4768:47:4;;::::1;::::0;;;;;;4730:35:::1;::::0;::::1;;::::0;;;:19:::1;4768:47;4730:35:::0;;;;;;:85;;::::1;::::0;:35;;:85;;::::1;::::0;::::1;:::i;:::-;;4830:55;4854:14;4870;;4830:55;;;;;;;;:::i;:::-;;;;;;;;4614:278:::0;;;:::o;5230:133::-;1094:13:9;:11;:13::i;:::-;5299:8:4::1;:20:::0;;-1:-1:-1;;;;;;5299:20:4::1;-1:-1:-1::0;;;;;5299:20:4;::::1;::::0;;::::1;::::0;;;5334:22:::1;::::0;5898:51:25;;;5334:22:4::1;::::0;5886:2:25;5871:18;5334:22:4::1;;;;;;;5230:133:::0;:::o;3626:202::-;1094:13:9;:11;:13::i;:::-;3759:62:4::1;::::0;-1:-1:-1;;;3759:62:4;;-1:-1:-1;;;;;3759:10:4::1;:20;::::0;::::1;::::0;:62:::1;::::0;3780:8;;3790;;3800:11;;3813:7;;;;3759:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3626:202:::0;;;;;:::o;2100:757:5:-;2309:27;;;2287:19;2309:27;;;:14;:27;;;;;;:40;;;;2337:11;;;;2309:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2309:48:5;;;;;;;;;;;;-1:-1:-1;2309:48:5;2367:73;;;;-1:-1:-1;;;2367:73:5;;14114:2:25;2367:73:5;;;14096:21:25;14153:2;14133:18;;;14126:30;14192:34;14172:18;;;14165:62;-1:-1:-1;;;14243:18:25;;;14236:33;14286:19;;2367:73:5;13912:399:25;2367:73:5;2481:11;2468:8;;2458:19;;;;;;;:::i;:::-;;;;;;;;:34;2450:80;;;;-1:-1:-1;;;2450:80:5;;14518:2:25;2450:80:5;;;14500:21:25;14557:2;14537:18;;;14530:30;14596:34;14576:18;;;14569:62;-1:-1:-1;;;14647:18:25;;;14640:31;14688:19;;2450:80:5;14316:397:25;2450:80:5;2576:27;;;2635:1;2576:27;;;:14;:27;;;;;;:40;;;;2604:11;;;;2576:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2576:48:5;;;;;;;;;;;;:61;;;;2704:65;;;;;;;;;;;;;;;;;;;2726:11;;2739;;2704:65;;;;;;2739:11;2704:65;;2739:11;2704:65;;;;;;;;;-1:-1:-1;;2704:65:5;;;;;;;;;;;;;;;;;;;;;;2752:6;;-1:-1:-1;2704:65:5;-1:-1:-1;2760:8:5;;;;;;2704:65;;2760:8;;;;2704:65;;;;;;;;;-1:-1:-1;2704:21:5;;-1:-1:-1;;;2704:65:5:i;:::-;2784:66;2804:11;2817;;2830:6;2838:11;2784:66;;;;;;;;;;:::i;:::-;;;;;;;;2233:624;2100:757;;;;;;:::o;5369:280:4:-;1094:13:9;:11;:13::i;:::-;5492:1:4::1;5482:7;:11;5474:45;;;::::0;-1:-1:-1;;;5474:45:4;;15418:2:25;5474:45:4::1;::::0;::::1;15400:21:25::0;15457:2;15437:18;;;15430:30;-1:-1:-1;;;15476:18:25;;;15469:51;15537:18;;5474:45:4::1;15216:345:25::0;5474:45:4::1;5529:28;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;;;:51;;;5595:47;;15789:34:25;;;15839:18;;15832:43;;;;15891:18;;;15884:34;;;5595:47:4::1;::::0;15752:2:25;15737:18;5595:47:4::1;15566:358:25::0;4413:195:4;1094:13:9;:11;:13::i;:::-;4510:32:4::1;::::0;::::1;;::::0;;;:19:::1;:32;::::0;;;;:40:::1;::::0;4545:5;;4510:40:::1;:::i;:::-;;4565:36;4582:11;4595:5;;4565:36;;;;;;;;:::i;2081:198:9:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:9;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:9;;16131:2:25;2161:73:9::1;::::0;::::1;16113:21:25::0;16170:2;16150:18;;;16143:30;16209:34;16189:18;;;16182:62;-1:-1:-1;;;16260:18:25;;;16253:36;16306:19;;2161:73:9::1;15929:402:25::0;2161:73:9::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3358:209:4:-;3492:68;;-1:-1:-1;;;3492:68:4;;16573:6:25;16606:15;;;3492:68:4;;;16588:34:25;16658:15;;16638:18;;;16631:43;3541:4:4;16690:18:25;;;16683:60;16759:18;;;16752:34;;;3461:12:4;;3492:10;-1:-1:-1;;;;;3492:20:4;;;;16535:19:25;;3492:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3492:68:4;;;;;;;;;;;;:::i;:::-;3485:75;3358:209;-1:-1:-1;;;;;3358:209:4:o;980:591:5:-;1129:12;1143:19;1166:153;1200:9;1211:3;1239:34;;;1275:11;1288;1301:6;1309:8;1216:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1216:102:5;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:102:5;-1:-1:-1;;;;;;1216:102:5;;;;;;;;;;1174:4;;1166:153;;:33;:153::i;:::-;1128:191;;;;1377:7;1372:193;;1461:8;1451:19;;;;;;1400:14;:27;1415:11;1400:27;;;;;;;;;;;;;;;1428:11;1400:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1400:48:5;;;;;;;;;:70;;;;1489:65;;;;1503:11;;1516;;1441:6;;1537:8;;1547:6;;1489:65;:::i;:::-;;;;;;;;1118:453;;980:591;;;;:::o;1359:130:9:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:9;719:10:13;1422:23:9;1414:68;;;;-1:-1:-1;;;1414:68:9;;19198:2:25;1414:68:9;;;19180:21:25;;;19217:18;;;19210:30;19276:34;19256:18;;;19249:62;19328:18;;1414:68:9;18996:356:25;3241:278:15;3454:4;;;;3323;;3370:6;;3323:4;;3436:22;;:15;:22;:::i;:::-;3411:1;:7;;;:49;;;;:::i;:::-;3401:6;;:60;;;;:::i;:::-;3387:74;;3485:1;3478:4;:8;;;:34;;3506:4;-1:-1:-1;;;;;3493:19:15;3478:34;;;3489:1;3478:34;3471:41;3241:278;-1:-1:-1;;;;3241:278:15:o;1230:609::-;1511:2;1497:17;;1491:24;1553:7;;;1539:21;;;1553:7;;1539:21;1535:298;;;1576:57;1611:11;1624:8;1576:34;:57::i;:::-;1535:298;;;1668:5;;;1654:19;;;1668:5;;;;;1654:19;1650:183;;;1689:50;1717:11;1730:8;1689:27;:50::i;1650:183::-;1770:52;;-1:-1:-1;;;1770:52:15;;20665:2:25;1770:52:15;;;20647:21:25;20704:2;20684:18;;;20677:30;20743:34;20723:18;;;20716:62;-1:-1:-1;;;20794:18:25;;;20787:40;20844:19;;1770:52:15;20463:406:25;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;8865:2712:7:-;8999:12;9051:7;9035:12;9051:7;9045:2;9035:12;:::i;:::-;:23;;9027:50;;;;-1:-1:-1;;;9027:50:7;;21209:2:25;9027:50:7;;;21191:21:25;21248:2;21228:18;;;21221:30;-1:-1:-1;;;21267:18:25;;;21260:44;21321:18;;9027:50:7;21007:338:25;9027:50:7;9112:16;9121:7;9112:6;:16;:::i;:::-;9095:6;:13;:33;;9087:63;;;;-1:-1:-1;;;9087:63:7;;21552:2:25;9087:63:7;;;21534:21:25;21591:2;21571:18;;;21564:30;-1:-1:-1;;;21610:18:25;;;21603:47;21667:18;;9087:63:7;21350:341:25;9087:63:7;9161:22;9224:15;;9252:1895;;;;11288:4;11282:11;11269:24;;11466:1;11455:9;11448:20;11514:4;11503:9;11499:20;11493:4;11486:34;9217:2317;;9252:1895;9426:4;9420:11;9407:24;;10053:2;10044:7;10040:16;10419:9;10412:17;10406:4;10402:28;10390:9;10379;10375:25;10371:60;10467:7;10463:2;10459:16;10711:6;10697:9;10690:17;10684:4;10680:28;10668:9;10660:6;10656:22;10652:57;10648:70;10493:417;10744:3;10740:2;10737:11;10493:417;;;10882:9;;10871:21;;10785:4;10777:13;;;;10817;10493:417;;;-1:-1:-1;;10928:26:7;;;11128:2;11111:11;-1:-1:-1;;11107:25:7;11101:4;11094:39;-1:-1:-1;9217:2317:7;-1:-1:-1;11561:9:7;8865:2712;-1:-1:-1;;;;8865:2712:7:o;1118:1240:8:-;1275:4;1281:12;1341:15;1366:13;1389:24;1426:8;1416:19;;-1:-1:-1;;;;;1416:19:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1416:19:8;;1389:46;;1904:1;1879;1846:9;1840:16;1812:4;1801:9;1797:20;1767:1;1733:7;1708:4;1690:239;1678:251;;1992:16;1981:27;;2036:8;2027:7;2024:21;2021:76;;;2075:8;2064:19;;2021:76;2178:7;2165:11;2158:28;2294:7;2291:1;2284:4;2271:11;2267:22;2252:50;2329:8;;;;-1:-1:-1;1118:1240:8;-1:-1:-1;;;;;;1118:1240:8:o;1845:613:15:-;1954:20;1976:15;1993:37;2032:44;2091:8;2080:87;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2177:25:15;;;;;;;:11;:25;;;;;;;;:38;;;2225:10;:24;;;;;;:37;;;;;;-1:-1:-1;;;;;2225:37:15;;;-1:-1:-1;;;2225:37:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:36;;;;;;;;;;;;;;;;;;:16;:36;;;;;;;;;;;;2319:43;-1:-1:-1;;;2319:43:15;;;;;5898:51:25;;;;2177:25:15;;-1:-1:-1;2177:38:15;;-1:-1:-1;2225:37:15;;-1:-1:-1;2272:36:15;-1:-1:-1;2319:14:15;:29;;-1:-1:-1;2319:29:15;;5871:18:25;;2319:43:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:74;2394:11;2407:12;2421:10;2433:17;2377:74;;;;;;;;;:::i;2464:368::-;2566:44;2625:8;2614:51;;;;;;;;;;;;:::i;:::-;2675:36;;;;;;-1:-1:-1;;;;;2675:36:15;;;-1:-1:-1;;;2675:36:15;;;;:16;:36;;;;;;;;;;;;;;2722;;-1:-1:-1;;;2722:36:15;;;;2563:102;;-1:-1:-1;;;;;;2722:14:15;:34;;-1:-1:-1;2722:34:15;;:36;;;;;2675;;2722;;;;;;;2675;2722:34;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2773:52;2794:11;2807:17;2773:52;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:117:25;99:6;92:5;88:18;81:5;78:29;68:57;;121:1;118;111:12;136:347;187:8;197:6;251:3;244:4;236:6;232:17;228:27;218:55;;269:1;266;259:12;218:55;-1:-1:-1;292:20:25;;-1:-1:-1;;;;;324:30:25;;321:50;;;367:1;364;357:12;321:50;404:4;396:6;392:17;380:29;;456:3;449:4;440:6;432;428:19;424:30;421:39;418:59;;;473:1;470;463:12;418:59;136:347;;;;;:::o;488:171::-;555:20;;-1:-1:-1;;;;;604:30:25;;594:41;;584:69;;649:1;646;639:12;584:69;488:171;;;:::o;664:923::-;770:6;778;786;794;802;810;863:3;851:9;842:7;838:23;834:33;831:53;;;880:1;877;870:12;831:53;919:9;906:23;938:30;962:5;938:30;:::i;:::-;987:5;-1:-1:-1;1043:2:25;1028:18;;1015:32;-1:-1:-1;;;;;1096:14:25;;;1093:34;;;1123:1;1120;1113:12;1093:34;1162:58;1212:7;1203:6;1192:9;1188:22;1162:58;:::i;:::-;1239:8;;-1:-1:-1;1136:84:25;-1:-1:-1;1136:84:25;;-1:-1:-1;1293:37:25;1326:2;1311:18;;1293:37;:::i;:::-;1283:47;;1383:2;1372:9;1368:18;1355:32;1339:48;;1412:2;1402:8;1399:16;1396:36;;;1428:1;1425;1418:12;1396:36;;1467:60;1519:7;1508:8;1497:9;1493:24;1467:60;:::i;:::-;664:923;;;;-1:-1:-1;664:923:25;;-1:-1:-1;664:923:25;;1546:8;;664:923;-1:-1:-1;;;664:923:25:o;1592:245::-;1650:6;1703:2;1691:9;1682:7;1678:23;1674:32;1671:52;;;1719:1;1716;1709:12;1671:52;1758:9;1745:23;1777:30;1801:5;1777:30;:::i;2024:127::-;2085:10;2080:3;2076:20;2073:1;2066:31;2116:4;2113:1;2106:15;2140:4;2137:1;2130:15;2156:275;2227:2;2221:9;2292:2;2273:13;;-1:-1:-1;;2269:27:25;2257:40;;-1:-1:-1;;;;;2312:34:25;;2348:22;;;2309:62;2306:88;;;2374:18;;:::i;:::-;2410:2;2403:22;2156:275;;-1:-1:-1;2156:275:25:o;2436:120::-;2525:5;2521:2;2510:21;2503:5;2500:32;2490:60;;2546:1;2543;2536:12;2561:774;2643:6;2696:3;2684:9;2675:7;2671:23;2667:33;2664:53;;;2713:1;2710;2703:12;2664:53;2746:2;2740:9;2788:3;2780:6;2776:16;2858:6;2846:10;2843:22;-1:-1:-1;;;;;2810:10:25;2807:34;2804:62;2801:88;;;2869:18;;:::i;:::-;2905:2;2898:22;2942:23;;2974:30;2942:23;2974:30;:::i;:::-;3013:21;;3086:2;3071:18;;3058:32;3099;3058;3099;:::i;:::-;3159:2;3147:15;;3140:32;3233:2;3218:18;;;3205:32;3188:15;;;3181:57;3299:2;3284:18;;;3271:32;3254:15;;;3247:57;;;;-1:-1:-1;3151:6:25;2561:774;-1:-1:-1;2561:774:25:o;3340:542::-;3418:6;3426;3434;3487:2;3475:9;3466:7;3462:23;3458:32;3455:52;;;3503:1;3500;3493:12;3455:52;3542:9;3529:23;3561:30;3585:5;3561:30;:::i;:::-;3610:5;-1:-1:-1;3666:2:25;3651:18;;3638:32;-1:-1:-1;;;;;3682:30:25;;3679:50;;;3725:1;3722;3715:12;3679:50;3764:58;3814:7;3805:6;3794:9;3790:22;3764:58;:::i;:::-;3340:542;;3841:8;;-1:-1:-1;3738:84:25;;-1:-1:-1;;;;3340:542:25:o;4079:186::-;4127:4;-1:-1:-1;;;;;4152:6:25;4149:30;4146:56;;;4182:18;;:::i;:::-;-1:-1:-1;4248:2:25;4227:15;-1:-1:-1;;4223:29:25;4254:4;4219:40;;4079:186::o;4270:876::-;4354:6;4362;4370;4423:2;4411:9;4402:7;4398:23;4394:32;4391:52;;;4439:1;4436;4429:12;4391:52;4478:9;4465:23;4497:30;4521:5;4497:30;:::i;:::-;4546:5;-1:-1:-1;4602:2:25;4587:18;;4574:32;-1:-1:-1;;;;;4618:30:25;;4615:50;;;4661:1;4658;4651:12;4615:50;4684:22;;4737:4;4729:13;;4725:27;-1:-1:-1;4715:55:25;;4766:1;4763;4756:12;4715:55;4802:2;4789:16;4827:48;4843:31;4871:2;4843:31;:::i;:::-;4827:48;:::i;:::-;4898:2;4891:5;4884:17;4938:7;4933:2;4928;4924;4920:11;4916:20;4913:33;4910:53;;;4959:1;4956;4949:12;4910:53;5014:2;5009;5005;5001:11;4996:2;4989:5;4985:14;4972:45;5058:1;5053:2;5048;5041:5;5037:14;5033:23;5026:34;5079:5;5069:15;;;;;5103:37;5136:2;5125:9;5121:18;5103:37;:::i;:::-;5093:47;;4270:876;;;;;:::o;5333:131::-;-1:-1:-1;;;;;5408:31:25;;5398:42;;5388:70;;5454:1;5451;5444:12;5469:247;5528:6;5581:2;5569:9;5560:7;5556:23;5552:32;5549:52;;;5597:1;5594;5587:12;5549:52;5636:9;5623:23;5655:31;5680:5;5655:31;:::i;5960:258::-;6032:1;6042:113;6056:6;6053:1;6050:13;6042:113;;;6132:11;;;6126:18;6113:11;;;6106:39;6078:2;6071:10;6042:113;;;6173:6;6170:1;6167:13;6164:48;;;6208:1;6199:6;6194:3;6190:16;6183:27;6164:48;;5960:258;;;:::o;6223:257::-;6264:3;6302:5;6296:12;6329:6;6324:3;6317:19;6345:63;6401:6;6394:4;6389:3;6385:14;6378:4;6371:5;6367:16;6345:63;:::i;:::-;6462:2;6441:15;-1:-1:-1;;6437:29:25;6428:39;;;;6469:4;6424:50;;6223:257;-1:-1:-1;;6223:257:25:o;6485:217::-;6632:2;6621:9;6614:21;6595:4;6652:44;6692:2;6681:9;6677:18;6669:6;6652:44;:::i;6707:384::-;6773:6;6781;6834:2;6822:9;6813:7;6809:23;6805:32;6802:52;;;6850:1;6847;6840:12;6802:52;6889:9;6876:23;6908:30;6932:5;6908:30;:::i;:::-;6957:5;-1:-1:-1;7014:2:25;6999:18;;6986:32;7027;6986;7027;:::i;:::-;7078:7;7068:17;;;6707:384;;;;;:::o;7538:750::-;7633:6;7641;7649;7657;7665;7718:3;7706:9;7697:7;7693:23;7689:33;7686:53;;;7735:1;7732;7725:12;7686:53;7774:9;7761:23;7793:30;7817:5;7793:30;:::i;:::-;7842:5;-1:-1:-1;7899:2:25;7884:18;;7871:32;7912;7871;7912;:::i;:::-;7963:7;-1:-1:-1;8017:2:25;8002:18;;7989:32;;-1:-1:-1;8072:2:25;8057:18;;8044:32;-1:-1:-1;;;;;8088:30:25;;8085:50;;;8131:1;8128;8121:12;8085:50;8170:58;8220:7;8211:6;8200:9;8196:22;8170:58;:::i;:::-;7538:750;;;;-1:-1:-1;7538:750:25;;-1:-1:-1;8247:8:25;;8144:84;7538:750;-1:-1:-1;;;7538:750:25:o;8293:452::-;8368:6;8376;8384;8437:2;8425:9;8416:7;8412:23;8408:32;8405:52;;;8453:1;8450;8443:12;8405:52;8492:9;8479:23;8511:30;8535:5;8511:30;:::i;:::-;8560:5;-1:-1:-1;8617:2:25;8602:18;;8589:32;8630;8589;8630;:::i;:::-;8293:452;;8681:7;;-1:-1:-1;;;8735:2:25;8720:18;;;;8707:32;;8293:452::o;9174:594::-;9258:6;9266;9274;9282;9335:3;9323:9;9314:7;9310:23;9306:33;9303:53;;;9352:1;9349;9342:12;9303:53;9391:9;9378:23;9410:30;9434:5;9410:30;:::i;:::-;9459:5;-1:-1:-1;9516:2:25;9501:18;;9488:32;9529;9488;9529;:::i;:::-;9580:7;-1:-1:-1;9639:2:25;9624:18;;9611:32;9652:33;9611:32;9652:33;:::i;:::-;9174:594;;;;-1:-1:-1;9704:7:25;;9758:2;9743:18;9730:32;;-1:-1:-1;;9174:594:25:o;10132:380::-;10211:1;10207:12;;;;10254;;;10275:61;;10329:4;10321:6;10317:17;10307:27;;10275:61;10382:2;10374:6;10371:14;10351:18;10348:38;10345:161;;;10428:10;10423:3;10419:20;10416:1;10409:31;10463:4;10460:1;10453:15;10491:4;10488:1;10481:15;10345:161;;10132:380;;;:::o;10517:271::-;10700:6;10692;10687:3;10674:33;10656:3;10726:16;;10751:13;;;10726:16;10517:271;-1:-1:-1;10517:271:25:o;11393:266::-;11481:6;11476:3;11469:19;11533:6;11526:5;11519:4;11514:3;11510:14;11497:43;-1:-1:-1;11585:1:25;11560:16;;;11578:4;11556:27;;;11549:38;;;;11641:2;11620:15;;;-1:-1:-1;;11616:29:25;11607:39;;;11603:50;;11393:266::o;11664:326::-;11859:6;11851;11847:19;11836:9;11829:38;11903:2;11898;11887:9;11883:18;11876:30;11810:4;11923:61;11980:2;11969:9;11965:18;11957:6;11949;11923:61;:::i;12760:127::-;12821:10;12816:3;12812:20;12809:1;12802:31;12852:4;12849:1;12842:15;12876:4;12873:1;12866:15;12892:125;12932:4;12960:1;12957;12954:8;12951:34;;;12965:18;;:::i;:::-;-1:-1:-1;13002:9:25;;12892:125::o;13022:382::-;13233:6;13225;13220:3;13207:33;13325:2;13321:15;;;;-1:-1:-1;;13317:53:25;13259:16;;13306:65;;;13395:2;13387:11;;13022:382;-1:-1:-1;13022:382:25:o;13409:498::-;13609:4;13638:6;13683:2;13675:6;13671:15;13660:9;13653:34;13735:2;13727:6;13723:15;13718:2;13707:9;13703:18;13696:43;;13775:6;13770:2;13759:9;13755:18;13748:34;13818:3;13813:2;13802:9;13798:18;13791:31;13839:62;13896:3;13885:9;13881:19;13873:6;13865;13839:62;:::i;:::-;13831:70;13409:498;-1:-1:-1;;;;;;;13409:498:25:o;14718:493::-;14967:6;14959;14955:19;14944:9;14937:38;15011:3;15006:2;14995:9;14991:18;14984:31;14918:4;15032:62;15089:3;15078:9;15074:19;15066:6;15058;15032:62;:::i;:::-;-1:-1:-1;;;;;15130:31:25;;;;15125:2;15110:18;;15103:59;-1:-1:-1;15193:2:25;15178:18;15171:34;15024:70;14718:493;-1:-1:-1;;;14718:493:25:o;16797:634::-;16876:6;16929:2;16917:9;16908:7;16904:23;16900:32;16897:52;;;16945:1;16942;16935:12;16897:52;16978:9;16972:16;-1:-1:-1;;;;;17003:6:25;17000:30;16997:50;;;17043:1;17040;17033:12;16997:50;17066:22;;17119:4;17111:13;;17107:27;-1:-1:-1;17097:55:25;;17148:1;17145;17138:12;17097:55;17177:2;17171:9;17202:48;17218:31;17246:2;17218:31;:::i;17202:48::-;17273:2;17266:5;17259:17;17313:7;17308:2;17303;17299;17295:11;17291:20;17288:33;17285:53;;;17334:1;17331;17324:12;17285:53;17347:54;17398:2;17393;17386:5;17382:14;17377:2;17373;17369:11;17347:54;:::i;17436:555::-;17693:6;17685;17681:19;17670:9;17663:38;17737:3;17732:2;17721:9;17717:18;17710:31;17644:4;17764:45;17804:3;17793:9;17789:19;17781:6;17764:45;:::i;:::-;-1:-1:-1;;;;;17849:6:25;17845:31;17840:2;17829:9;17825:18;17818:59;17925:9;17917:6;17913:22;17908:2;17897:9;17893:18;17886:50;17953:32;17978:6;17970;17953:32;:::i;17996:274::-;18125:3;18163:6;18157:13;18179:53;18225:6;18220:3;18213:4;18205:6;18201:17;18179:53;:::i;:::-;18248:16;;;;;17996:274;-1:-1:-1;;17996:274:25:o;18275:716::-;18578:6;18570;18566:19;18555:9;18548:38;18622:3;18617:2;18606:9;18602:18;18595:31;18529:4;18649:45;18689:3;18678:9;18674:19;18666:6;18649:45;:::i;:::-;-1:-1:-1;;;;;18734:6:25;18730:31;18725:2;18714:9;18710:18;18703:59;18810:9;18802:6;18798:22;18793:2;18782:9;18778:18;18771:50;18844:32;18869:6;18861;18844:32;:::i;:::-;18830:46;;18925:9;18917:6;18913:22;18907:3;18896:9;18892:19;18885:51;18953:32;18978:6;18970;18953:32;:::i;:::-;18945:40;18275:716;-1:-1:-1;;;;;;;;18275:716:25:o;19357:698::-;19396:7;19444:1;19440:2;19429:17;19481:1;19477:2;19466:17;-1:-1:-1;;;;;19564:1:25;19559:3;19555:11;19594:1;19589:3;19585:11;19641:3;19637:2;19633:12;19628:3;19625:21;19620:2;19616;19612:11;19608:39;19605:65;;;19650:18;;:::i;:::-;-1:-1:-1;;19756:1:25;19747:11;;19774;;;19796:13;;;19787:23;;19770:41;19767:67;;;19814:18;;:::i;:::-;19862:1;19857:3;19853:11;19843:21;;19911:3;19907:2;19902:13;19897:3;19893:23;19888:2;19884;19880:11;19876:41;19873:67;;;19920:18;;:::i;:::-;19987:3;19983:2;19978:13;19973:3;19969:23;19964:2;19960;19956:11;19952:41;19949:67;;;19996:18;;:::i;:::-;-1:-1:-1;;;20036:13:25;;;;;19357:698;-1:-1:-1;;;;;19357:698:25:o;20060:398::-;20099:4;20144:1;20140:2;20129:17;20181:1;20177:2;20166:17;20211:1;20206:3;20202:11;20295:3;-1:-1:-1;;;;;20254:39:25;20250:49;20245:3;20241:59;20236:2;20229:10;20225:76;20222:102;;;20304:18;;:::i;:::-;20393:3;-1:-1:-1;;;;;20353:44:25;20348:3;20344:54;20340:2;20336:63;20333:89;;;20402:18;;:::i;:::-;-1:-1:-1;20439:13:25;;;20060:398;-1:-1:-1;;;20060:398:25:o;20874:128::-;20914:3;20945:1;20941:6;20938:1;20935:13;20932:39;;;20951:18;;:::i;:::-;-1:-1:-1;20987:9:25;;20874:128::o;21696:729::-;21759:5;21807:4;21795:9;21790:3;21786:19;21782:30;21779:50;;;21825:1;21822;21815:12;21779:50;21858:2;21852:9;21900:4;21892:6;21888:17;21971:6;21959:10;21956:22;-1:-1:-1;;;;;21923:10:25;21920:34;21917:62;21914:88;;;21982:18;;:::i;:::-;22022:10;22018:2;22011:22;;22051:6;22042:15;;22087:9;22081:16;22106:32;22130:7;22106:32;:::i;:::-;22147:23;;22215:2;22200:18;;22194:25;22228:32;22194:25;22228:32;:::i;:::-;22293:7;22288:2;22280:6;22276:15;22269:32;;22355:2;22344:9;22340:18;22334:25;22329:2;22321:6;22317:15;22310:50;22414:2;22403:9;22399:18;22393:25;22388:2;22380:6;22376:15;22369:50;;21696:729;;;;:::o;22430:698::-;22589:6;22597;22605;22613;22621;22674:3;22662:9;22653:7;22649:23;22645:33;22642:53;;;22691:1;22688;22681:12;22642:53;22723:9;22717:16;22742:30;22766:5;22742:30;:::i;:::-;22841:2;22826:18;;22820:25;22791:5;;-1:-1:-1;22854:33:25;22820:25;22854:33;:::i;:::-;22953:2;22938:18;;22932:25;22906:7;;-1:-1:-1;22932:25:25;-1:-1:-1;22976:63:25;23031:7;23026:2;23011:18;;22976:63;:::i;:::-;22966:73;;23058:64;23114:7;23108:3;23097:9;23093:19;23058:64;:::i;:::-;23048:74;;22430:698;;;;;;;;:::o;23428:555::-;23779:6;23767:19;;23749:38;;-1:-1:-1;;;;;23823:32:25;;23818:2;23803:18;;23796:60;23736:3;23721:19;;23865:51;23912:2;23897:18;;23889:6;23225:5;23219:12;23215:2;23204:28;23199:3;23192:41;23297:4;23290:5;23286:16;23280:23;23276:2;23265:39;23258:4;23253:3;23249:14;23242:63;23354:4;23347:5;23343:16;23337:23;23330:4;23325:3;23321:14;23314:47;23410:4;23403:5;23399:16;23393:23;23386:4;23381:3;23377:14;23370:47;;;23133:290;23865:51;23219:12;;23215:2;23204:28;;;23972:3;23957:19;;23192:41;23297:4;23286:16;;23280:23;23265:39;;23249:14;;;23242:63;23354:4;23343:16;;23337:23;23321:14;;;23314:47;23410:4;23399:16;;23393:23;23377:14;;;23370:47;23925:52;23133:290;23988:372;24089:6;24097;24150:3;24138:9;24129:7;24125:23;24121:33;24118:53;;;24167:1;24164;24157:12;24118:53;24199:9;24193:16;24218:30;24242:5;24218:30;:::i;:::-;24267:5;-1:-1:-1;24291:63:25;24346:7;24341:2;24326:18;;24291:63;:::i;:::-;24281:73;;23988:372;;;;;:::o;24365:323::-;24614:6;24602:19;;24584:38;;24571:3;24556:19;;24631:51;24678:2;24663:18;;24655:6;23225:5;23219:12;23215:2;23204:28;23199:3;23192:41;23297:4;23290:5;23286:16;23280:23;23276:2;23265:39;23258:4;23253:3;23249:14;23242:63;23354:4;23347:5;23343:16;23337:23;23330:4;23325:3;23321:14;23314:47;23410:4;23403:5;23399:16;23393:23;23386:4;23381:3;23377:14;23370:47;;;23133:290"},"gasEstimates":{"creation":{"codeDepositCost":"1942600","executionCost":"infinite","totalCost":"infinite"},"external":{"balanceOf(address)":"7744","delegationHook()":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getPointValue((int128,int128,uint256,uint256))":"infinite","getTrustedRemoteAddress(uint16)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","locked__end(address)":"2569","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","owner()":"2377","precrime()":"2405","renounceOwnership()":"infinite","retryMessage(uint16,bytes,uint64,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMinDstGas(uint16,uint16,uint256)":"infinite","setPrecrime(address)":"27893","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","totalSupply()":"7438","totalSupplyPoint()":"6700","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","userPoints(address)":"6958"},"internal":{"_getPointValue(struct IVotingEscrow.Point memory)":"infinite","_nonblockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite","_updateTotalSupplyFromChain(uint16,bytes memory)":"infinite","_updateUserAndTotalSupplyFromChain(uint16,bytes memory)":"infinite"}},"methodIdentifiers":{"balanceOf(address)":"70a08231","delegationHook()":"74d2495f","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getPointValue((int128,int128,uint256,uint256))":"378ef708","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","locked__end(address)":"adc63589","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","totalSupply()":"18160ddd","totalSupplyPoint()":"f4182acb","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","userPoints(address)":"f50ddbc7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegationHook\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"TotalSupplyFromChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"userPoint\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"UserBalFromChain\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationHook\",\"outputs\":[{\"internalType\":\"contract IL2LayerZeroDelegation\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"_point\",\"type\":\"tuple\"}],\"name\":\"getPointValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"locked__end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupplyPoint\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userPoints\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OmniVotingEscrowChild.sol\":\"OmniVotingEscrowChild\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/OmniVotingEscrowChild.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"./interfaces/IVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IL2LayerZeroDelegation.sol\\\";\\nimport \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\n\\ncontract OmniVotingEscrowChild is NonblockingLzApp {\\n mapping(address => uint) public locked__end; // -> end of lock period\\n mapping(address => IVotingEscrow.Point) public userPoints; // -> balanceOf\\n IVotingEscrow.Point public totalSupplyPoint; // -> totalSupply\\n\\n // Packet types for child chains:\\n uint16 PT_USER = 0; // user balance and total supply update\\n uint16 PT_TS = 1; // total supply update\\n\\n IL2LayerZeroDelegation public immutable delegationHook;\\n\\n event UserBalFromChain(uint16 srcChainId, address user, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\\n event TotalSupplyFromChain(uint16 srcChainId, IVotingEscrow.Point totalSupplyPoint);\\n\\n constructor(address _lzEndpoint, address _delegationHook) NonblockingLzApp(_lzEndpoint) {\\n require(_delegationHook != address(0x0), \\\"OmniVotingEscrowChild: delegation hook cannot be 0x0\\\");\\n delegationHook = IL2LayerZeroDelegation(_delegationHook);\\n }\\n\\n function _nonblockingLzReceive(\\n uint16 _srcChainId,\\n bytes memory, /*_srcAddress*/\\n uint64, /*_nonce*/\\n bytes memory _payload\\n ) internal virtual override {\\n uint16 packetType;\\n assembly {\\n packetType := mload(add(_payload, 32))\\n }\\n\\n if (packetType == PT_USER) {\\n _updateUserAndTotalSupplyFromChain(_srcChainId, _payload);\\n } else if (packetType == PT_TS) {\\n _updateTotalSupplyFromChain(_srcChainId, _payload);\\n } else {\\n revert(\\\"OmniVotingEscrowChild: unknown packet type\\\");\\n }\\n }\\n\\n function _updateUserAndTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\\n (, address _userAddress, uint _lockedEnd, IVotingEscrow.Point memory _userPoint, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, address, uint, IVotingEscrow.Point, IVotingEscrow.Point));\\n locked__end[_userAddress] = _lockedEnd;\\n userPoints[_userAddress] = _userPoint;\\n totalSupplyPoint = _totalSupplyPoint;\\n\\n delegationHook.onVeBalBridged(_userAddress);\\n emit UserBalFromChain(_srcChainId, _userAddress, _userPoint, _totalSupplyPoint);\\n }\\n\\n function _updateTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\\n (, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, IVotingEscrow.Point));\\n totalSupplyPoint = _totalSupplyPoint;\\n\\n delegationHook.onVeBalSupplyUpdate();\\n emit TotalSupplyFromChain(_srcChainId, _totalSupplyPoint);\\n }\\n\\n function balanceOf(address _user) public view returns (uint) {\\n return _getPointValue(userPoints[_user]);\\n }\\n\\n function totalSupply() public view returns (uint) {\\n return _getPointValue(totalSupplyPoint);\\n }\\n\\n // external for testing\\n function getPointValue(IVotingEscrow.Point memory _point) external view returns (uint) {\\n return _getPointValue(_point);\\n }\\n\\n function _getPointValue(IVotingEscrow.Point memory _point) internal view returns (uint) {\\n IVotingEscrow.Point memory p = _point;\\n\\n int128 bias = p.bias - (p.slope * int128(uint128(block.timestamp - p.ts)));\\n return bias < 0 ? 0 : uint(uint128(bias));\\n }\\n}\\n\",\"keccak256\":\"0xf1df2e4f033de0733c17b0317d5e7c5e272efd27ba766afb51bb4e25a323b81b\",\"license\":\"MIT\"},\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":4106,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"locked__end","offset":0,"slot":"5","type":"t_mapping(t_address,t_uint256)"},{"astId":4111,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"userPoints","offset":0,"slot":"6","type":"t_mapping(t_address,t_struct(Point)4477_storage)"},{"astId":4114,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"totalSupplyPoint","offset":0,"slot":"7","type":"t_struct(Point)4477_storage"},{"astId":4117,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"PT_USER","offset":0,"slot":"10","type":"t_uint16"},{"astId":4120,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"PT_TS","offset":2,"slot":"10","type":"t_uint16"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_address,t_struct(Point)4477_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct IVotingEscrow.Point)","numberOfBytes":"32","value":"t_struct(Point)4477_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_struct(Point)4477_storage":{"encoding":"inplace","label":"struct IVotingEscrow.Point","members":[{"astId":4470,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"bias","offset":0,"slot":"0","type":"t_int128"},{"astId":4472,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"slope","offset":16,"slot":"0","type":"t_int128"},{"astId":4474,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"ts","offset":0,"slot":"1","type":"t_uint256"},{"astId":4476,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"blk","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"IL2LayerZeroDelegation":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"onVeBalBridged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onVeBalSupplyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"onVeBalBridged(address)":"df130bfe","onVeBalSupplyUpdate()":"96345fb5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"onVeBalBridged\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onVeBalSupplyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":\"IL2LayerZeroDelegation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.","version":1}}},"contracts/interfaces/IOmniVotingEscrow.sol":{"IOmniVotingEscrow":{"abi":[{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendTotalSupply","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendUserBalance","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendTotalSupply","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendUserBalance","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"Partial voting escrow bridge interface. See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"estimateSendTotalSupply(uint16,bool,bytes)":"16334c8f","estimateSendUserBalance(uint16,bool,bytes)":"65d092d0","sendTotalSupply(uint16,address,address,bytes)":"416b154a","sendUserBalance(address,uint16,address,address,bytes)":"4a759489"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendUserBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendTotalSupply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendUserBalance\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Partial voting escrow bridge interface. See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":\"IOmniVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IVotingEscrow.sol":{"IVotingEscrow":{"abi":[{"inputs":[],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"locked__end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"point_history","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"user_point_epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"user_point_history","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"checkpoint()":"c2c4c5c1","epoch()":"900cf0cf","locked__end(address)":"adc63589","point_history(uint256)":"d1febfb9","user_point_epoch(address)":"010ae757","user_point_history(address,uint256)":"28d09d47"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"locked__end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"point_history\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"user_point_epoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"user_point_history\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IVotingEscrow.sol\":\"IVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IVotingEscrowRemapper.sol":{"IVotingEscrowRemapper":{"abi":[{"inputs":[{"internalType":"address","name":"localUser","type":"address"},{"internalType":"uint16","name":"chainId","type":"uint16"}],"name":"getRemoteUser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVotingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"getRemoteUser(address,uint16)":{"details":"Returns `address(0)` if the remapping does not exist for the given local user.","params":{"chainId":"- The chain ID of the network which the remote user is on.","localUser":"- Address of the user on the local chain which are querying the remote address for."}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRemoteUser(address,uint16)":"bda75c38","getVotingEscrow()":"08b0308a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"getRemoteUser\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVotingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRemoteUser(address,uint16)\":{\"details\":\"Returns `address(0)` if the remapping does not exist for the given local user.\",\"params\":{\"chainId\":\"- The chain ID of the network which the remote user is on.\",\"localUser\":\"- Address of the user on the local chain which are querying the remote address for.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getRemoteUser(address,uint16)\":{\"notice\":\"Returns the remote user corresponding to an address on the local chain.\"},\"getVotingEscrow()\":{\"notice\":\"Returns Voting Escrow contract address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IVotingEscrowRemapper.sol\":\"IVotingEscrowRemapper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"getRemoteUser(address,uint16)":{"notice":"Returns the remote user corresponding to an address on the local chain."},"getVotingEscrow()":{"notice":"Returns Voting Escrow contract address."}},"version":1}}},"contracts/mocks/ERC20Mock.sol":{"ERC20Mock":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"@_4557":{"entryPoint":null,"id":4557,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":298,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":481,"id":null,"parameterSlots":2,"returnSlots":2},"extract_byte_array_length":{"entryPoint":587,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":276,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1985:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1658:325:25","statements":[{"nodeType":"YulAssignment","src":"1668:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1682:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1685:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1668:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1699:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1729:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"1735:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1725:3:25"},"nodeType":"YulFunctionCall","src":"1725:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1703:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1776:31:25","statements":[{"nodeType":"YulAssignment","src":"1778:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1792:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1800:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1788:3:25"},"nodeType":"YulFunctionCall","src":"1788:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1778:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1756:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:25"},"nodeType":"YulFunctionCall","src":"1749:26:25"},"nodeType":"YulIf","src":"1746:61:25"},{"body":{"nodeType":"YulBlock","src":"1866:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1887:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1894:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1899:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1890:3:25"},"nodeType":"YulFunctionCall","src":"1890:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:25"},"nodeType":"YulFunctionCall","src":"1880:31:25"},"nodeType":"YulExpressionStatement","src":"1880:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1934:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1924:6:25"},"nodeType":"YulFunctionCall","src":"1924:15:25"},"nodeType":"YulExpressionStatement","src":"1924:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1962:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1952:6:25"},"nodeType":"YulFunctionCall","src":"1952:15:25"},"nodeType":"YulExpressionStatement","src":"1952:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1822:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1845:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1842:2:25"},"nodeType":"YulFunctionCall","src":"1842:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1819:2:25"},"nodeType":"YulFunctionCall","src":"1819:38:25"},"nodeType":"YulIf","src":"1816:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1638:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1603:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000be238038062000be28339810160408190526200003491620001e1565b8151829082906200004d9060039060208501906200006e565b508051620000639060049060208401906200006e565b505050505062000288565b8280546200007c906200024b565b90600052602060002090601f016020900481019282620000a05760008555620000eb565b82601f10620000bb57805160ff1916838001178555620000eb565b82800160010185558215620000eb579182015b82811115620000eb578251825591602001919060010190620000ce565b50620000f9929150620000fd565b5090565b5b80821115620000f95760008155600101620000fe565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013c57600080fd5b81516001600160401b038082111562000159576200015962000114565b604051601f8301601f19908116603f0116810190828211818310171562000184576200018462000114565b81604052838152602092508683858801011115620001a157600080fd5b600091505b83821015620001c55785820183015181830184015290820190620001a6565b83821115620001d75760008385830101525b9695505050505050565b60008060408385031215620001f557600080fd5b82516001600160401b03808211156200020d57600080fd5b6200021b868387016200012a565b935060208501519150808211156200023257600080fd5b5062000241858286016200012a565b9150509250929050565b600181811c908216806200026057607f821691505b602082108114156200028257634e487b7160e01b600052602260045260246000fd5b50919050565b61094a80620002986000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220a999ce877599ec6ac1fad0880e2252e30ef43d5fc38a48310c06dcb2d702326a64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xBE2 CODESIZE SUB DUP1 PUSH3 0xBE2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1E1 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH3 0x4D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x6E JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x63 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x6E JUMP JUMPDEST POP POP POP POP POP PUSH3 0x288 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x7C SWAP1 PUSH3 0x24B JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0xA0 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xEB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xBB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xEB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xEB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xEB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xCE JUMP JUMPDEST POP PUSH3 0xF9 SWAP3 SWAP2 POP PUSH3 0xFD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xFE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x159 JUMPI PUSH3 0x159 PUSH3 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x184 JUMPI PUSH3 0x184 PUSH3 0x114 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1C5 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x1A6 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1D7 JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x21B DUP7 DUP4 DUP8 ADD PUSH3 0x12A JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x241 DUP6 DUP3 DUP7 ADD PUSH3 0x12A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x260 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x282 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94A DUP1 PUSH3 0x298 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 SWAP10 0xCE DUP8 PUSH22 0x99EC6AC1FAD0880E2252E30EF43D5FC38A48310C06DC 0xB2 0xD7 MUL ORIGIN PUSH11 0x64736F6C634300080A0033 ","sourceMap":"132:206:20:-:0;;;166:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13:10;;228:5:20;;235:7;;2042:13:10;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;166:80:20;;132:206;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;132:206:20;;;-1:-1:-1;132:206:20;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1603:380::-;1682:1;1678:12;;;;1725;;;1746:61;;1800:4;1792:6;1788:17;1778:27;;1746:61;1853:2;1845:6;1842:14;1822:18;1819:38;1816:161;;;1899:10;1894:3;1890:20;1887:1;1880:31;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1816:161;;1603:380;;;:::o;:::-;132:206:20;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":902,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":1736,"id":3400,"parameterSlots":2,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1194,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1316,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":859,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":594,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":717,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":654,"id":3225,"parameterSlots":2,"returnSlots":1},"@mint_4570":{"entryPoint":688,"id":4570,"parameterSlots":2,"returnSlots":0},"@name_3051":{"entryPoint":448,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":702,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":618,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":845,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2012,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2176,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2082,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2040,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1927,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2286,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2227,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6166:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"},{"body":{"nodeType":"YulBlock","src":"5983:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6011:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:25"},"nodeType":"YulFunctionCall","src":"5993:21:25"},"nodeType":"YulExpressionStatement","src":"5993:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6034:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6045:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6030:3:25"},"nodeType":"YulFunctionCall","src":"6030:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6050:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6023:6:25"},"nodeType":"YulFunctionCall","src":"6023:30:25"},"nodeType":"YulExpressionStatement","src":"6023:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6069:3:25"},"nodeType":"YulFunctionCall","src":"6069:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"6089:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6062:6:25"},"nodeType":"YulFunctionCall","src":"6062:61:25"},"nodeType":"YulExpressionStatement","src":"6062:61:25"},{"nodeType":"YulAssignment","src":"6132:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6155:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6140:3:25"},"nodeType":"YulFunctionCall","src":"6140:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6132:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5960:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5974:4:25","type":""}],"src":"5809:355:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220a999ce877599ec6ac1fad0880e2252e30ef43d5fc38a48310c06dcb2d702326a64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 SWAP10 0xCE DUP8 PUSH22 0x99EC6AC1FAD0880E2252E30EF43D5FC38A48310C06DC 0xB2 0xD7 MUL ORIGIN PUSH11 0x64736F6C634300080A0033 ","sourceMap":"132:206:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:10;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;252:84:20:-;;;;;;:::i;:::-;;:::i;:::-;;3406:125:10;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;252:84:20:-;310:19;316:3;321:7;310:5;:19::i;:::-;252:84;;:::o;2365:102:10:-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;8567:535;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;6011:2:25;8642:65:10;;;5993:21:25;6050:2;6030:18;;;6023:30;6089:33;6069:18;;;6062:61;6140:18;;8642:65:10;5809:355:25;8642:65:10;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1391:25:25;;;8999:37:10;;1364:18:25;8999:37:10;;;;;;;252:84:20;;:::o;14:597:25:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"475600","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"27089","mint(address,uint256)":"50800","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/ERC20Mock.sol\":\"ERC20Mock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/mocks/ERC20Mock.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\n// this is a MOCK\\ncontract ERC20Mock is ERC20 {\\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}\\n\\n function mint(address _to, uint _amount) public {\\n _mint(_to, _amount);\\n }\\n}\\n\",\"keccak256\":\"0x4077148f681740d57fff93b1cadd78b0cad1dc7b6f69cf3dac26c550c9d3afec\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/L2LayerZeroDelegation.sol":{"L2LayerZeroDelegation":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"onVeBalBridged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onVeBalSupplyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b5060ab8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806396345fb5146037578063df130bfe146039575b600080fd5b005b603760443660046047565b50565b600060208284031215605857600080fd5b81356001600160a01b0381168114606e57600080fd5b939250505056fea26469706673582212207f5e44f660c3cf1b86fe701dee720d8b0e1c7e7ad89861f829e0eaad55a0cd8364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAB DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x96345FB5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xDF130BFE EQ PUSH1 0x39 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x37 PUSH1 0x44 CALLDATASIZE PUSH1 0x4 PUSH1 0x47 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x5E44F660C3CF1B86FE701DEE720D8B0E1C7E7AD89861F829E0EAAD55A0CD8364 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"123:162:21:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@onVeBalBridged_4582":{"entryPoint":null,"id":4582,"parameterSlots":1,"returnSlots":0},"@onVeBalSupplyUpdate_4586":{"entryPoint":null,"id":4586,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":71,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:302:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:216:25","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:25"},"nodeType":"YulFunctionCall","src":"132:12:25"},"nodeType":"YulExpressionStatement","src":"132:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:25"},"nodeType":"YulFunctionCall","src":"101:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:25"},"nodeType":"YulFunctionCall","src":"97:32:25"},"nodeType":"YulIf","src":"94:52:25"},{"nodeType":"YulVariableDeclaration","src":"155:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"181:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"168:12:25"},"nodeType":"YulFunctionCall","src":"168:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"159:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"254:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:25"},"nodeType":"YulFunctionCall","src":"256:12:25"},"nodeType":"YulExpressionStatement","src":"256:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"213:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"244:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"235:3:25"},"nodeType":"YulFunctionCall","src":"235:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"231:3:25"},"nodeType":"YulFunctionCall","src":"231:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"220:3:25"},"nodeType":"YulFunctionCall","src":"220:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"210:2:25"},"nodeType":"YulFunctionCall","src":"210:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"203:6:25"},"nodeType":"YulFunctionCall","src":"203:50:25"},"nodeType":"YulIf","src":"200:70:25"},{"nodeType":"YulAssignment","src":"279:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"289:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"279:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:25","type":""}],"src":"14:286:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060325760003560e01c806396345fb5146037578063df130bfe146039575b600080fd5b005b603760443660046047565b50565b600060208284031215605857600080fd5b81356001600160a01b0381168114606e57600080fd5b939250505056fea26469706673582212207f5e44f660c3cf1b86fe701dee720d8b0e1c7e7ad89861f829e0eaad55a0cd8364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x96345FB5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xDF130BFE EQ PUSH1 0x39 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x37 PUSH1 0x44 CALLDATASIZE PUSH1 0x4 PUSH1 0x47 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x5E44F660C3CF1B86FE701DEE720D8B0E1C7E7AD89861F829E0EAAD55A0CD8364 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"123:162:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241:42;;186:49;;;;;;:::i;:::-;;;14:286:25;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:25;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:25:o"},"gasEstimates":{"creation":{"codeDepositCost":"34200","executionCost":"87","totalCost":"34287"},"external":{"onVeBalBridged(address)":"257","onVeBalSupplyUpdate()":"98"}},"methodIdentifiers":{"onVeBalBridged(address)":"df130bfe","onVeBalSupplyUpdate()":"96345fb5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"onVeBalBridged\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onVeBalSupplyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/L2LayerZeroDelegation.sol\":\"L2LayerZeroDelegation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"},\"contracts/mocks/L2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../interfaces/IL2LayerZeroDelegation.sol\\\";\\n\\ncontract L2LayerZeroDelegation is IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external {}\\n\\n function onVeBalSupplyUpdate() external {}\\n}\\n\",\"keccak256\":\"0xf0c694b6e109e237ddd072f43d55e6605e2fe62f0cf2bb647c786a41641dbd75\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/LZEndpointMock.sol":{"LZMock":{"abi":[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ValueTransferFailed","type":"event"},{"inputs":[],"name":"blockNextMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdapterParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getLengthOfQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lzEndpointLookup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"msgsToDeliver","outputs":[{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMsgBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeConfig","outputs":[{"internalType":"uint256","name":"zroFee","type":"uint256"},{"internalType":"uint256","name":"nativeBP","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerFeeConfig","outputs":[{"internalType":"uint128","name":"dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"baseGas","type":"uint64"},{"internalType":"uint64","name":"gasPerByte","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"setDefaultAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destAddr","type":"address"},{"internalType":"address","name":"lzEndpointAddr","type":"address"}],"name":"setDestLzEndpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleFee","type":"uint256"}],"name":"setOracleFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"},{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"_dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"_dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"_baseGas","type":"uint64"},{"internalType":"uint64","name":"_gasPerByte","type":"uint64"}],"name":"setRelayerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1343":{"entryPoint":null,"id":1343,"parameterSlots":1,"returnSlots":0},"@_4602":{"entryPoint":null,"id":4602,"parameterSlots":1,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":299,"id":258,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":506,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"extract_byte_array_length":{"entryPoint":551,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:958:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"94:196:25","statements":[{"body":{"nodeType":"YulBlock","src":"140:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"149:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"152:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"142:6:25"},"nodeType":"YulFunctionCall","src":"142:12:25"},"nodeType":"YulExpressionStatement","src":"142:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"115:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"124:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"111:3:25"},"nodeType":"YulFunctionCall","src":"111:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"136:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"107:3:25"},"nodeType":"YulFunctionCall","src":"107:32:25"},"nodeType":"YulIf","src":"104:52:25"},{"nodeType":"YulVariableDeclaration","src":"165:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"184:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"178:5:25"},"nodeType":"YulFunctionCall","src":"178:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"246:6:25"},"nodeType":"YulFunctionCall","src":"246:12:25"},"nodeType":"YulExpressionStatement","src":"246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"234:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"223:3:25"},"nodeType":"YulFunctionCall","src":"223:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"213:2:25"},"nodeType":"YulFunctionCall","src":"213:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"206:6:25"},"nodeType":"YulFunctionCall","src":"206:37:25"},"nodeType":"YulIf","src":"203:57:25"},{"nodeType":"YulAssignment","src":"269:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"279:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"269:6:25"}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"60:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"71:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"83:6:25","type":""}],"src":"14:276:25"},{"body":{"nodeType":"YulBlock","src":"440:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"457:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"475:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"488:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"493:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"484:3:25"},"nodeType":"YulFunctionCall","src":"484:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"462:3:25"},"nodeType":"YulFunctionCall","src":"462:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"450:6:25"},"nodeType":"YulFunctionCall","src":"450:51:25"},"nodeType":"YulExpressionStatement","src":"450:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"521:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"526:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"530:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"510:6:25"},"nodeType":"YulFunctionCall","src":"510:27:25"},"nodeType":"YulExpressionStatement","src":"510:27:25"},{"nodeType":"YulAssignment","src":"546:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"557:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"562:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"553:3:25"},"nodeType":"YulFunctionCall","src":"553:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"546:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"408:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"413:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"421:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"432:3:25","type":""}],"src":"295:276:25"},{"body":{"nodeType":"YulBlock","src":"631:325:25","statements":[{"nodeType":"YulAssignment","src":"641:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"655:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"658:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"651:3:25"},"nodeType":"YulFunctionCall","src":"651:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"641:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"672:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"702:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"698:3:25"},"nodeType":"YulFunctionCall","src":"698:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"676:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"749:31:25","statements":[{"nodeType":"YulAssignment","src":"751:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"765:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"773:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"751:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"729:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"722:6:25"},"nodeType":"YulFunctionCall","src":"722:26:25"},"nodeType":"YulIf","src":"719:61:25"},{"body":{"nodeType":"YulBlock","src":"839:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"860:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"867:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"872:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"863:3:25"},"nodeType":"YulFunctionCall","src":"863:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"853:6:25"},"nodeType":"YulFunctionCall","src":"853:31:25"},"nodeType":"YulExpressionStatement","src":"853:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"907:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"897:6:25"},"nodeType":"YulFunctionCall","src":"897:15:25"},"nodeType":"YulExpressionStatement","src":"897:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"932:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"925:6:25"},"nodeType":"YulFunctionCall","src":"925:15:25"},"nodeType":"YulExpressionStatement","src":"925:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"795:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"826:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"815:2:25"},"nodeType":"YulFunctionCall","src":"815:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"792:2:25"},"nodeType":"YulFunctionCall","src":"792:38:25"},"nodeType":"YulIf","src":"789:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"611:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"620:6:25","type":""}],"src":"576:380:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff19166101011790553480156200002057600080fd5b50604051620030ba380380620030ba8339810160408190526200004391620001fa565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e8918301829052600455600555662386f26fc1000060065581906200010c9062030d40906200012b811b62001c9d17901c565b8051620001229160079160209091019062000154565b50505062000264565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b828054620001629062000227565b90600052602060002090601f016020900481019282620001865760008555620001d1565b82601f10620001a157805160ff1916838001178555620001d1565b82800160010185558215620001d1579182015b82811115620001d1578251825591602001919060010190620001b4565b50620001df929150620001e3565b5090565b5b80821115620001df5760008155600101620001e4565b6000602082840312156200020d57600080fd5b815161ffff811681146200022057600080fd5b9392505050565b600181811c908216806200023c57607f821691505b602082108114156200025e57634e487b7160e01b600052602260045260246000fd5b50919050565b612e4680620002746000396000f3fe60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fcd2d38b724f9c9e5d1ac5abffe439ca2f05c406fdb9d323fa90177d94e6804364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x30BA CODESIZE SUB DUP1 PUSH3 0x30BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x43 SWAP2 PUSH3 0x1FA JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP4 AND OR DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH5 0x2540BE400 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0x8AC7230489E80000 DUP3 DUP5 ADD MSTORE PUSH1 0x64 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH21 0x2540BE400000000000000000000000002540BE400 PUSH1 0x2 SSTORE PUSH25 0x1000000000000006400000000000000008AC7230489E80000 PUSH1 0x3 SSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH8 0xDE0B6B3A7640000 DUP1 DUP3 MSTORE PUSH2 0x3E8 SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x4 SSTORE PUSH1 0x5 SSTORE PUSH7 0x2386F26FC10000 PUSH1 0x6 SSTORE DUP2 SWAP1 PUSH3 0x10C SWAP1 PUSH3 0x30D40 SWAP1 PUSH3 0x12B DUP2 SHL PUSH3 0x1C9D OR SWAP1 SHR JUMP JUMPDEST DUP1 MLOAD PUSH3 0x122 SWAP2 PUSH1 0x7 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x154 JUMP JUMPDEST POP POP POP PUSH3 0x264 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x162 SWAP1 PUSH3 0x227 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x186 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1D1 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1A1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1D1 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1D1 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1D1 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B4 JUMP JUMPDEST POP PUSH3 0x1DF SWAP3 SWAP2 POP PUSH3 0x1E3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DF JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH3 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x23C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E46 DUP1 PUSH3 0x274 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xD2 0xD3 DUP12 PUSH19 0x4F9C9E5D1AC5ABFFE439CA2F05C406FDB9D323 STATICCALL SWAP1 OR PUSH30 0x94E6804364736F6C634300080A0033000000000000000000000000000000 ","sourceMap":"768:98:22:-:0;;;1950:38:6;;;-1:-1:-1;;1994:41:6;;;;;808:56:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3418:11:6;:22;;-1:-1:-1;;3418:22:6;;;;;;;3493:222;;;;;;;;3539:4;3493:222;;;;;;;;;;;3647:4;3493:222;;;;3674:3;3493:222;;;;;;;;;;;;3474:241;:16;:241;;;;3745:49;;;;;;;;3772:4;3745:49;;;3788:4;3745:49;;;;;;3725:17;:69;;;3826:4;3814:9;:16;3418:22;;3863:39;;3895:6;;3863:31;;;;;:39;;:::i;:::-;3840:62;;;;:20;;:62;;;;;;:::i;:::-;;3379:530;808:56:22;768:98;;918:238:3;1114:35;;;-1:-1:-1;;;1114:35:3;;;450:51:25;517:11;;;;510:27;;;;1114:35:3;;;;;;;;;;553:12:25;;1114:35:3;;;918:238::o;768:98:22:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;768:98:22;;;-1:-1:-1;768:98:22;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:276:25;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:6;227:5;223:18;216:5;213:29;203:57;;256:1;253;246:12;203:57;279:5;14:276;-1:-1:-1;;;14:276:25:o;576:380::-;655:1;651:12;;;;698;;;719:61;;773:4;765:6;761:17;751:27;;719:61;826:2;818:6;815:14;795:18;792:38;789:161;;;872:10;867:3;863:20;860:1;853:31;907:4;904:1;897:15;935:4;932:1;925:15;789:161;;576:380;;;:::o;:::-;768:98:22;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_2326":{"entryPoint":7837,"id":2326,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_2356":{"entryPoint":7776,"id":2356,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_2452":{"entryPoint":7366,"id":2452,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_2175":{"entryPoint":null,"id":2175,"parameterSlots":0,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":7325,"id":258,"parameterSlots":1,"returnSlots":1},"@decodeAdapterParams_375":{"entryPoint":8340,"id":375,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_1168":{"entryPoint":2595,"id":1168,"parameterSlots":0,"returnSlots":0},"@estimateFees_1824":{"entryPoint":2737,"id":1824,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_2150":{"entryPoint":2992,"id":2150,"parameterSlots":3,"returnSlots":0},"@getChainId_1833":{"entryPoint":null,"id":1833,"parameterSlots":0,"returnSlots":1},"@getConfig_2029":{"entryPoint":null,"id":2029,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_1743":{"entryPoint":7256,"id":1743,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_2167":{"entryPoint":3319,"id":2167,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_1760":{"entryPoint":null,"id":1760,"parameterSlots":2,"returnSlots":1},"@getReceiveLibraryAddress_1990":{"entryPoint":null,"id":1990,"parameterSlots":1,"returnSlots":1},"@getReceiveVersion_2051":{"entryPoint":null,"id":2051,"parameterSlots":1,"returnSlots":1},"@getSendLibraryAddress_1976":{"entryPoint":null,"id":1976,"parameterSlots":1,"returnSlots":1},"@getSendVersion_2040":{"entryPoint":null,"id":2040,"parameterSlots":1,"returnSlots":1},"@hasStoredPayload_1962":{"entryPoint":2272,"id":1962,"parameterSlots":3,"returnSlots":1},"@inboundNonce_1174":{"entryPoint":null,"id":1174,"parameterSlots":0,"returnSlots":0},"@isReceivingPayload_2012":{"entryPoint":null,"id":2012,"parameterSlots":0,"returnSlots":1},"@isSendingPayload_2001":{"entryPoint":null,"id":2001,"parameterSlots":0,"returnSlots":1},"@lzEndpointLookup_1154":{"entryPoint":null,"id":1154,"parameterSlots":0,"returnSlots":0},"@mockChainId_1156":{"entryPoint":null,"id":1156,"parameterSlots":0,"returnSlots":0},"@msgsToDeliver_1195":{"entryPoint":2342,"id":1195,"parameterSlots":0,"returnSlots":0},"@nextMsgBlocked_1158":{"entryPoint":null,"id":1158,"parameterSlots":0,"returnSlots":0},"@oracleFee_1166":{"entryPoint":null,"id":1166,"parameterSlots":0,"returnSlots":0},"@outboundNonce_1180":{"entryPoint":null,"id":1180,"parameterSlots":0,"returnSlots":0},"@protocolFeeConfig_1164":{"entryPoint":null,"id":1164,"parameterSlots":0,"returnSlots":0},"@receivePayload_1726":{"entryPoint":3913,"id":1726,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_1161":{"entryPoint":null,"id":1161,"parameterSlots":0,"returnSlots":0},"@retryPayload_1934":{"entryPoint":3379,"id":1934,"parameterSlots":5,"returnSlots":0},"@send_1519":{"entryPoint":5798,"id":1519,"parameterSlots":7,"returnSlots":0},"@setConfig_2064":{"entryPoint":null,"id":2064,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_2273":{"entryPoint":7233,"id":2273,"parameterSlots":1,"returnSlots":0},"@setDestLzEndpoint_2189":{"entryPoint":null,"id":2189,"parameterSlots":2,"returnSlots":0},"@setOracleFee_2263":{"entryPoint":null,"id":2263,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_2253":{"entryPoint":null,"id":2253,"parameterSlots":2,"returnSlots":0},"@setReceiveVersion_2078":{"entryPoint":null,"id":2078,"parameterSlots":1,"returnSlots":0},"@setRelayerPrice_2233":{"entryPoint":null,"id":2233,"parameterSlots":5,"returnSlots":0},"@setSendVersion_2071":{"entryPoint":null,"id":2071,"parameterSlots":1,"returnSlots":0},"@storedPayload_1187":{"entryPoint":null,"id":1187,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":9058,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":9029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":10242,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":10826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":9696,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":8981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":10034,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":9797,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9130,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":10272,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":10089,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":9957,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":10447,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":9374,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10749,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":10646,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":10217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":9597,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint128":{"entryPoint":9650,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint16":{"entryPoint":8958,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":9673,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":11007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10886,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9537,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11048,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11339,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed":{"entryPoint":11155,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11078,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11695,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11453,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10983,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":11657,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11590,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":11610,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11267,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":10902,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":11312,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint64":{"entryPoint":11228,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10961,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11568,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":11770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11290,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9212,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9008,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:26605:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"143:119:25","statements":[{"nodeType":"YulAssignment","src":"153:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"165:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"176:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"161:3:25"},"nodeType":"YulFunctionCall","src":"161:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"153:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"206:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"188:6:25"},"nodeType":"YulFunctionCall","src":"188:25:25"},"nodeType":"YulExpressionStatement","src":"188:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"233:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"229:3:25"},"nodeType":"YulFunctionCall","src":"229:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"249:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"222:6:25"},"nodeType":"YulFunctionCall","src":"222:34:25"},"nodeType":"YulExpressionStatement","src":"222:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"115:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"123:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"134:4:25","type":""}],"src":"14:248:25"},{"body":{"nodeType":"YulBlock","src":"315:111:25","statements":[{"nodeType":"YulAssignment","src":"325:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"325:5:25"}]},{"body":{"nodeType":"YulBlock","src":"404:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"413:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"416:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"406:6:25"},"nodeType":"YulFunctionCall","src":"406:12:25"},"nodeType":"YulExpressionStatement","src":"406:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"376:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"387:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"394:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"383:3:25"},"nodeType":"YulFunctionCall","src":"383:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"373:2:25"},"nodeType":"YulFunctionCall","src":"373:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"366:6:25"},"nodeType":"YulFunctionCall","src":"366:37:25"},"nodeType":"YulIf","src":"363:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"294:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"305:5:25","type":""}],"src":"267:159:25"},{"body":{"nodeType":"YulBlock","src":"500:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"546:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"555:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"558:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"548:6:25"},"nodeType":"YulFunctionCall","src":"548:12:25"},"nodeType":"YulExpressionStatement","src":"548:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"521:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"530:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"542:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"513:3:25"},"nodeType":"YulFunctionCall","src":"513:32:25"},"nodeType":"YulIf","src":"510:52:25"},{"nodeType":"YulAssignment","src":"571:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"599:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"581:17:25"},"nodeType":"YulFunctionCall","src":"581:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"571:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"466:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"477:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"489:6:25","type":""}],"src":"431:184:25"},{"body":{"nodeType":"YulBlock","src":"665:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"729:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"738:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"741:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"731:6:25"},"nodeType":"YulFunctionCall","src":"731:12:25"},"nodeType":"YulExpressionStatement","src":"731:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"699:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"714:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"719:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"710:3:25"},"nodeType":"YulFunctionCall","src":"710:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"723:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"706:3:25"},"nodeType":"YulFunctionCall","src":"706:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"695:3:25"},"nodeType":"YulFunctionCall","src":"695:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"685:2:25"},"nodeType":"YulFunctionCall","src":"685:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:50:25"},"nodeType":"YulIf","src":"675:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"654:5:25","type":""}],"src":"620:131:25"},{"body":{"nodeType":"YulBlock","src":"826:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"872:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"881:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"884:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"874:6:25"},"nodeType":"YulFunctionCall","src":"874:12:25"},"nodeType":"YulExpressionStatement","src":"874:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"847:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"843:3:25"},"nodeType":"YulFunctionCall","src":"843:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"868:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"839:3:25"},"nodeType":"YulFunctionCall","src":"839:32:25"},"nodeType":"YulIf","src":"836:52:25"},{"nodeType":"YulVariableDeclaration","src":"897:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"910:12:25"},"nodeType":"YulFunctionCall","src":"910:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"901:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"967:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"942:24:25"},"nodeType":"YulFunctionCall","src":"942:31:25"},"nodeType":"YulExpressionStatement","src":"942:31:25"},{"nodeType":"YulAssignment","src":"982:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"992:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"792:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"803:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"815:6:25","type":""}],"src":"756:247:25"},{"body":{"nodeType":"YulBlock","src":"1107:89:25","statements":[{"nodeType":"YulAssignment","src":"1117:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1129:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1125:3:25"},"nodeType":"YulFunctionCall","src":"1125:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1117:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1159:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1174:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1182:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1170:3:25"},"nodeType":"YulFunctionCall","src":"1170:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1152:6:25"},"nodeType":"YulFunctionCall","src":"1152:38:25"},"nodeType":"YulExpressionStatement","src":"1152:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1076:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1087:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1098:4:25","type":""}],"src":"1008:188:25"},{"body":{"nodeType":"YulBlock","src":"1273:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"1322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1324:6:25"},"nodeType":"YulFunctionCall","src":"1324:12:25"},"nodeType":"YulExpressionStatement","src":"1324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1309:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1297:3:25"},"nodeType":"YulFunctionCall","src":"1297:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"1316:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1293:3:25"},"nodeType":"YulFunctionCall","src":"1293:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1286:6:25"},"nodeType":"YulFunctionCall","src":"1286:35:25"},"nodeType":"YulIf","src":"1283:55:25"},{"nodeType":"YulAssignment","src":"1347:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1357:12:25"},"nodeType":"YulFunctionCall","src":"1357:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1347:6:25"}]},{"body":{"nodeType":"YulBlock","src":"1420:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1429:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1432:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1422:6:25"},"nodeType":"YulFunctionCall","src":"1422:12:25"},"nodeType":"YulExpressionStatement","src":"1422:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1392:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1400:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:25"},"nodeType":"YulFunctionCall","src":"1389:30:25"},"nodeType":"YulIf","src":"1386:50:25"},{"nodeType":"YulAssignment","src":"1445:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1461:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1457:3:25"},"nodeType":"YulFunctionCall","src":"1457:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1445:8:25"}]},{"body":{"nodeType":"YulBlock","src":"1526:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1535:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1538:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1528:6:25"},"nodeType":"YulFunctionCall","src":"1528:12:25"},"nodeType":"YulExpressionStatement","src":"1528:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1497:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"1505:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"1514:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1489:3:25"},"nodeType":"YulFunctionCall","src":"1489:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"1521:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1486:2:25"},"nodeType":"YulFunctionCall","src":"1486:39:25"},"nodeType":"YulIf","src":"1483:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1236:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"1244:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1252:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"1262:6:25","type":""}],"src":"1201:347:25"},{"body":{"nodeType":"YulBlock","src":"1658:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"1704:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1713:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1706:6:25"},"nodeType":"YulFunctionCall","src":"1706:12:25"},"nodeType":"YulExpressionStatement","src":"1706:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1679:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1688:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1675:3:25"},"nodeType":"YulFunctionCall","src":"1675:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1700:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1671:3:25"},"nodeType":"YulFunctionCall","src":"1671:32:25"},"nodeType":"YulIf","src":"1668:52:25"},{"nodeType":"YulAssignment","src":"1729:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1757:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1739:17:25"},"nodeType":"YulFunctionCall","src":"1739:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1729:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1776:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1803:3:25"},"nodeType":"YulFunctionCall","src":"1803:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1790:12:25"},"nodeType":"YulFunctionCall","src":"1790:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1865:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1874:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1877:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1867:6:25"},"nodeType":"YulFunctionCall","src":"1867:12:25"},"nodeType":"YulExpressionStatement","src":"1867:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1837:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1845:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1834:2:25"},"nodeType":"YulFunctionCall","src":"1834:30:25"},"nodeType":"YulIf","src":"1831:50:25"},{"nodeType":"YulVariableDeclaration","src":"1890:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1946:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1957:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1942:3:25"},"nodeType":"YulFunctionCall","src":"1942:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1966:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1916:25:25"},"nodeType":"YulFunctionCall","src":"1916:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1894:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1904:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1983:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1993:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1983:6:25"}]},{"nodeType":"YulAssignment","src":"2010:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2020:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2010:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1639:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1553:481:25"},{"body":{"nodeType":"YulBlock","src":"2134:92:25","statements":[{"nodeType":"YulAssignment","src":"2144:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2156:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2167:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2152:3:25"},"nodeType":"YulFunctionCall","src":"2152:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2144:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2186:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2211:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2204:6:25"},"nodeType":"YulFunctionCall","src":"2204:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2197:6:25"},"nodeType":"YulFunctionCall","src":"2197:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:25"},"nodeType":"YulFunctionCall","src":"2179:41:25"},"nodeType":"YulExpressionStatement","src":"2179:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2103:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2114:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2125:4:25","type":""}],"src":"2039:187:25"},{"body":{"nodeType":"YulBlock","src":"2263:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2280:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2287:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2292:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2283:3:25"},"nodeType":"YulFunctionCall","src":"2283:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2273:6:25"},"nodeType":"YulFunctionCall","src":"2273:31:25"},"nodeType":"YulExpressionStatement","src":"2273:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2320:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2323:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2313:6:25"},"nodeType":"YulFunctionCall","src":"2313:15:25"},"nodeType":"YulExpressionStatement","src":"2313:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2344:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2347:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2337:6:25"},"nodeType":"YulFunctionCall","src":"2337:15:25"},"nodeType":"YulExpressionStatement","src":"2337:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2231:127:25"},{"body":{"nodeType":"YulBlock","src":"2415:666:25","statements":[{"body":{"nodeType":"YulBlock","src":"2464:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2473:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2476:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2466:6:25"},"nodeType":"YulFunctionCall","src":"2466:12:25"},"nodeType":"YulExpressionStatement","src":"2466:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2443:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2451:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2439:3:25"},"nodeType":"YulFunctionCall","src":"2439:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"2458:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2435:3:25"},"nodeType":"YulFunctionCall","src":"2435:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2428:6:25"},"nodeType":"YulFunctionCall","src":"2428:35:25"},"nodeType":"YulIf","src":"2425:55:25"},{"nodeType":"YulVariableDeclaration","src":"2489:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2512:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2499:12:25"},"nodeType":"YulFunctionCall","src":"2499:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2493:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2528:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"2538:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2532:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2579:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2581:16:25"},"nodeType":"YulFunctionCall","src":"2581:18:25"},"nodeType":"YulExpressionStatement","src":"2581:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2571:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2575:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2568:2:25"},"nodeType":"YulFunctionCall","src":"2568:10:25"},"nodeType":"YulIf","src":"2565:36:25"},{"nodeType":"YulVariableDeclaration","src":"2610:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2624:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2620:3:25"},"nodeType":"YulFunctionCall","src":"2620:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2614:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2636:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2656:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2650:5:25"},"nodeType":"YulFunctionCall","src":"2650:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2640:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2668:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2690:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2714:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"2718:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2710:3:25"},"nodeType":"YulFunctionCall","src":"2710:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2725:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2706:3:25"},"nodeType":"YulFunctionCall","src":"2706:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2702:3:25"},"nodeType":"YulFunctionCall","src":"2702:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2698:3:25"},"nodeType":"YulFunctionCall","src":"2698:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2686:3:25"},"nodeType":"YulFunctionCall","src":"2686:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2672:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2798:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2800:16:25"},"nodeType":"YulFunctionCall","src":"2800:18:25"},"nodeType":"YulExpressionStatement","src":"2800:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2757:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2769:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2754:2:25"},"nodeType":"YulFunctionCall","src":"2754:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2777:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2789:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2774:2:25"},"nodeType":"YulFunctionCall","src":"2774:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2751:2:25"},"nodeType":"YulFunctionCall","src":"2751:46:25"},"nodeType":"YulIf","src":"2748:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2836:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2840:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2829:6:25"},"nodeType":"YulFunctionCall","src":"2829:22:25"},"nodeType":"YulExpressionStatement","src":"2829:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2867:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2875:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2860:6:25"},"nodeType":"YulFunctionCall","src":"2860:18:25"},"nodeType":"YulExpressionStatement","src":"2860:18:25"},{"body":{"nodeType":"YulBlock","src":"2926:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2935:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2928:6:25"},"nodeType":"YulFunctionCall","src":"2928:12:25"},"nodeType":"YulExpressionStatement","src":"2928:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2901:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2909:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"2914:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2893:3:25"},"nodeType":"YulFunctionCall","src":"2893:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"2921:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2890:2:25"},"nodeType":"YulFunctionCall","src":"2890:35:25"},"nodeType":"YulIf","src":"2887:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2968:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2976:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2964:3:25"},"nodeType":"YulFunctionCall","src":"2964:17:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2983:3:25"},"nodeType":"YulFunctionCall","src":"2983:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3002:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2951:12:25"},"nodeType":"YulFunctionCall","src":"2951:54:25"},"nodeType":"YulExpressionStatement","src":"2951:54:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3029:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3037:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3025:3:25"},"nodeType":"YulFunctionCall","src":"3025:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"3042:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:25"},"nodeType":"YulFunctionCall","src":"3021:26:25"},{"kind":"number","nodeType":"YulLiteral","src":"3049:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3014:6:25"},"nodeType":"YulFunctionCall","src":"3014:37:25"},"nodeType":"YulExpressionStatement","src":"3014:37:25"},{"nodeType":"YulAssignment","src":"3060:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3069:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3060:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2389:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"2397:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2405:5:25","type":""}],"src":"2363:718:25"},{"body":{"nodeType":"YulBlock","src":"3198:348:25","statements":[{"body":{"nodeType":"YulBlock","src":"3244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3246:6:25"},"nodeType":"YulFunctionCall","src":"3246:12:25"},"nodeType":"YulExpressionStatement","src":"3246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3219:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3228:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3215:3:25"},"nodeType":"YulFunctionCall","src":"3215:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3240:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3211:3:25"},"nodeType":"YulFunctionCall","src":"3211:32:25"},"nodeType":"YulIf","src":"3208:52:25"},{"nodeType":"YulAssignment","src":"3269:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3297:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3279:17:25"},"nodeType":"YulFunctionCall","src":"3279:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3269:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3316:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3347:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3358:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3343:3:25"},"nodeType":"YulFunctionCall","src":"3343:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3330:12:25"},"nodeType":"YulFunctionCall","src":"3330:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3320:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3405:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3414:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3417:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3407:6:25"},"nodeType":"YulFunctionCall","src":"3407:12:25"},"nodeType":"YulExpressionStatement","src":"3407:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3377:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3385:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3374:2:25"},"nodeType":"YulFunctionCall","src":"3374:30:25"},"nodeType":"YulIf","src":"3371:50:25"},{"nodeType":"YulAssignment","src":"3430:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3461:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3472:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3457:3:25"},"nodeType":"YulFunctionCall","src":"3457:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3481:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3440:16:25"},"nodeType":"YulFunctionCall","src":"3440:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3430:6:25"}]},{"nodeType":"YulAssignment","src":"3498:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3536:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:25"},"nodeType":"YulFunctionCall","src":"3521:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3508:12:25"},"nodeType":"YulFunctionCall","src":"3508:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3498:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3148:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3159:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3171:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3179:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3187:6:25","type":""}],"src":"3086:460:25"},{"body":{"nodeType":"YulBlock","src":"3600:422:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3610:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3630:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3624:5:25"},"nodeType":"YulFunctionCall","src":"3624:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3614:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3652:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3657:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3645:6:25"},"nodeType":"YulFunctionCall","src":"3645:19:25"},"nodeType":"YulExpressionStatement","src":"3645:19:25"},{"nodeType":"YulVariableDeclaration","src":"3673:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3682:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3677:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3744:110:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3758:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3768:4:25","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3762:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3800:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"3805:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3796:3:25"},"nodeType":"YulFunctionCall","src":"3796:11:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3809:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:25"},"nodeType":"YulFunctionCall","src":"3792:20:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3828:5:25"},{"name":"i","nodeType":"YulIdentifier","src":"3835:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3824:3:25"},"nodeType":"YulFunctionCall","src":"3824:13:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3839:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3820:3:25"},"nodeType":"YulFunctionCall","src":"3820:22:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3814:5:25"},"nodeType":"YulFunctionCall","src":"3814:29:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3785:6:25"},"nodeType":"YulFunctionCall","src":"3785:59:25"},"nodeType":"YulExpressionStatement","src":"3785:59:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3703:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3706:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3700:2:25"},"nodeType":"YulFunctionCall","src":"3700:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3714:21:25","statements":[{"nodeType":"YulAssignment","src":"3716:17:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3725:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"3728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:25"},"nodeType":"YulFunctionCall","src":"3721:12:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3716:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"3696:3:25","statements":[]},"src":"3692:162:25"},{"body":{"nodeType":"YulBlock","src":"3888:62:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3917:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3922:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:25"},"nodeType":"YulFunctionCall","src":"3913:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"3931:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3909:3:25"},"nodeType":"YulFunctionCall","src":"3909:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"3938:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3902:6:25"},"nodeType":"YulFunctionCall","src":"3902:38:25"},"nodeType":"YulExpressionStatement","src":"3902:38:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3869:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3872:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3866:2:25"},"nodeType":"YulFunctionCall","src":"3866:13:25"},"nodeType":"YulIf","src":"3863:87:25"},{"nodeType":"YulAssignment","src":"3959:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3974:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3995:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:25"},"nodeType":"YulFunctionCall","src":"3983:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4004:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3979:3:25"},"nodeType":"YulFunctionCall","src":"3979:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3970:3:25"},"nodeType":"YulFunctionCall","src":"3970:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:25"},"nodeType":"YulFunctionCall","src":"3966:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3959:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3577:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3584:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3592:3:25","type":""}],"src":"3551:471:25"},{"body":{"nodeType":"YulBlock","src":"4200:235:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4232:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4253:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4240:3:25"},"nodeType":"YulFunctionCall","src":"4240:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4228:3:25"},"nodeType":"YulFunctionCall","src":"4228:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4210:6:25"},"nodeType":"YulFunctionCall","src":"4210:51:25"},"nodeType":"YulExpressionStatement","src":"4210:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4281:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4292:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4277:3:25"},"nodeType":"YulFunctionCall","src":"4277:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4297:3:25"},"nodeType":"YulFunctionCall","src":"4297:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:25"},"nodeType":"YulFunctionCall","src":"4270:59:25"},"nodeType":"YulExpressionStatement","src":"4270:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4349:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:25"},"nodeType":"YulFunctionCall","src":"4345:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:25","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4338:6:25"},"nodeType":"YulFunctionCall","src":"4338:30:25"},"nodeType":"YulExpressionStatement","src":"4338:30:25"},{"nodeType":"YulAssignment","src":"4377:52:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4402:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4414:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4425:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:25"},"nodeType":"YulFunctionCall","src":"4410:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4385:16:25"},"nodeType":"YulFunctionCall","src":"4385:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4377:4:25"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4153:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4164:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4172:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4180:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4191:4:25","type":""}],"src":"4027:408:25"},{"body":{"nodeType":"YulBlock","src":"4527:161:25","statements":[{"body":{"nodeType":"YulBlock","src":"4573:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4582:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4585:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4575:6:25"},"nodeType":"YulFunctionCall","src":"4575:12:25"},"nodeType":"YulExpressionStatement","src":"4575:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4548:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4557:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4544:3:25"},"nodeType":"YulFunctionCall","src":"4544:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4569:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4540:3:25"},"nodeType":"YulFunctionCall","src":"4540:32:25"},"nodeType":"YulIf","src":"4537:52:25"},{"nodeType":"YulAssignment","src":"4598:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4608:12:25"},"nodeType":"YulFunctionCall","src":"4608:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4598:6:25"}]},{"nodeType":"YulAssignment","src":"4640:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4663:3:25"},"nodeType":"YulFunctionCall","src":"4663:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4650:12:25"},"nodeType":"YulFunctionCall","src":"4650:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4640:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4485:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4496:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4508:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4516:6:25","type":""}],"src":"4440:248:25"},{"body":{"nodeType":"YulBlock","src":"4812:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4840:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4822:6:25"},"nodeType":"YulFunctionCall","src":"4822:21:25"},"nodeType":"YulExpressionStatement","src":"4822:21:25"},{"nodeType":"YulAssignment","src":"4852:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:25"},"nodeType":"YulFunctionCall","src":"4885:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4860:16:25"},"nodeType":"YulFunctionCall","src":"4860:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4852:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4781:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4792:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4803:4:25","type":""}],"src":"4693:217:25"},{"body":{"nodeType":"YulBlock","src":"4964:139:25","statements":[{"nodeType":"YulAssignment","src":"4974:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4996:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4983:12:25"},"nodeType":"YulFunctionCall","src":"4983:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4974:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5081:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5090:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5093:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5083:6:25"},"nodeType":"YulFunctionCall","src":"5083:12:25"},"nodeType":"YulExpressionStatement","src":"5083:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5025:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5036:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5043:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5032:3:25"},"nodeType":"YulFunctionCall","src":"5032:46:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5022:2:25"},"nodeType":"YulFunctionCall","src":"5022:57:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5015:6:25"},"nodeType":"YulFunctionCall","src":"5015:65:25"},"nodeType":"YulIf","src":"5012:85:25"}]},"name":"abi_decode_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4943:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4954:5:25","type":""}],"src":"4915:188:25"},{"body":{"nodeType":"YulBlock","src":"5156:123:25","statements":[{"nodeType":"YulAssignment","src":"5166:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5188:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5175:12:25"},"nodeType":"YulFunctionCall","src":"5175:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5166:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5259:6:25"},"nodeType":"YulFunctionCall","src":"5259:12:25"},"nodeType":"YulExpressionStatement","src":"5259:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5228:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5235:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5224:3:25"},"nodeType":"YulFunctionCall","src":"5224:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5214:2:25"},"nodeType":"YulFunctionCall","src":"5214:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5207:6:25"},"nodeType":"YulFunctionCall","src":"5207:49:25"},"nodeType":"YulIf","src":"5204:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5135:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5146:5:25","type":""}],"src":"5108:171:25"},{"body":{"nodeType":"YulBlock","src":"5420:344:25","statements":[{"body":{"nodeType":"YulBlock","src":"5467:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5476:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5479:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:25"},"nodeType":"YulFunctionCall","src":"5469:12:25"},"nodeType":"YulExpressionStatement","src":"5469:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5441:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5450:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5437:3:25"},"nodeType":"YulFunctionCall","src":"5437:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5462:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5433:3:25"},"nodeType":"YulFunctionCall","src":"5433:33:25"},"nodeType":"YulIf","src":"5430:53:25"},{"nodeType":"YulAssignment","src":"5492:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5521:9:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5502:18:25"},"nodeType":"YulFunctionCall","src":"5502:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5492:6:25"}]},{"nodeType":"YulAssignment","src":"5540:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5573:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5584:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5569:3:25"},"nodeType":"YulFunctionCall","src":"5569:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5550:18:25"},"nodeType":"YulFunctionCall","src":"5550:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5540:6:25"}]},{"nodeType":"YulAssignment","src":"5597:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5630:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5641:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5626:3:25"},"nodeType":"YulFunctionCall","src":"5626:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5607:18:25"},"nodeType":"YulFunctionCall","src":"5607:38:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5597:6:25"}]},{"nodeType":"YulAssignment","src":"5654:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5686:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5697:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5682:3:25"},"nodeType":"YulFunctionCall","src":"5682:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5664:17:25"},"nodeType":"YulFunctionCall","src":"5664:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5654:6:25"}]},{"nodeType":"YulAssignment","src":"5710:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5753:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:25"},"nodeType":"YulFunctionCall","src":"5738:19:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5720:17:25"},"nodeType":"YulFunctionCall","src":"5720:38:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5710:6:25"}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5354:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5365:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5377:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5385:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5393:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5401:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5409:6:25","type":""}],"src":"5284:480:25"},{"body":{"nodeType":"YulBlock","src":"5921:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"5968:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5977:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5980:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5970:6:25"},"nodeType":"YulFunctionCall","src":"5970:12:25"},"nodeType":"YulExpressionStatement","src":"5970:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5938:3:25"},"nodeType":"YulFunctionCall","src":"5938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5963:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5934:3:25"},"nodeType":"YulFunctionCall","src":"5934:33:25"},"nodeType":"YulIf","src":"5931:53:25"},{"nodeType":"YulAssignment","src":"5993:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6021:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6003:17:25"},"nodeType":"YulFunctionCall","src":"6003:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5993:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6040:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6070:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6081:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6066:3:25"},"nodeType":"YulFunctionCall","src":"6066:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6053:12:25"},"nodeType":"YulFunctionCall","src":"6053:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6044:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6119:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6094:24:25"},"nodeType":"YulFunctionCall","src":"6094:31:25"},"nodeType":"YulExpressionStatement","src":"6094:31:25"},{"nodeType":"YulAssignment","src":"6134:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6144:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6134:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6158:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6185:3:25"},"nodeType":"YulFunctionCall","src":"6185:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6172:12:25"},"nodeType":"YulFunctionCall","src":"6172:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6162:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6213:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6217:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6268:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6280:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6270:6:25"},"nodeType":"YulFunctionCall","src":"6270:12:25"},"nodeType":"YulExpressionStatement","src":"6270:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6256:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6264:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6253:2:25"},"nodeType":"YulFunctionCall","src":"6253:14:25"},"nodeType":"YulIf","src":"6250:34:25"},{"nodeType":"YulAssignment","src":"6293:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6324:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6335:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6320:3:25"},"nodeType":"YulFunctionCall","src":"6320:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6344:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6303:16:25"},"nodeType":"YulFunctionCall","src":"6303:49:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6293:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6361:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6393:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6404:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6389:3:25"},"nodeType":"YulFunctionCall","src":"6389:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6376:12:25"},"nodeType":"YulFunctionCall","src":"6376:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6365:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6465:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6474:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6477:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6467:6:25"},"nodeType":"YulFunctionCall","src":"6467:12:25"},"nodeType":"YulExpressionStatement","src":"6467:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6430:7:25"},{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6453:7:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6446:6:25"},"nodeType":"YulFunctionCall","src":"6446:15:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6439:6:25"},"nodeType":"YulFunctionCall","src":"6439:23:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6427:2:25"},"nodeType":"YulFunctionCall","src":"6427:36:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6420:6:25"},"nodeType":"YulFunctionCall","src":"6420:44:25"},"nodeType":"YulIf","src":"6417:64:25"},{"nodeType":"YulAssignment","src":"6490:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6500:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6490:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6516:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6549:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6560:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6545:3:25"},"nodeType":"YulFunctionCall","src":"6545:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6532:12:25"},"nodeType":"YulFunctionCall","src":"6532:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6520:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6594:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6603:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6606:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6596:6:25"},"nodeType":"YulFunctionCall","src":"6596:12:25"},"nodeType":"YulExpressionStatement","src":"6596:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6580:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6590:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6577:2:25"},"nodeType":"YulFunctionCall","src":"6577:16:25"},"nodeType":"YulIf","src":"6574:36:25"},{"nodeType":"YulAssignment","src":"6619:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6650:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6661:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6646:3:25"},"nodeType":"YulFunctionCall","src":"6646:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6672:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6629:16:25"},"nodeType":"YulFunctionCall","src":"6629:51:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6619:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5855:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5866:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5878:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5886:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5894:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5902:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5910:6:25","type":""}],"src":"5769:917:25"},{"body":{"nodeType":"YulBlock","src":"6792:102:25","statements":[{"nodeType":"YulAssignment","src":"6802:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6814:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6825:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6810:3:25"},"nodeType":"YulFunctionCall","src":"6810:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6802:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6844:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6859:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6875:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6880:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6871:3:25"},"nodeType":"YulFunctionCall","src":"6871:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6884:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6867:3:25"},"nodeType":"YulFunctionCall","src":"6867:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6855:3:25"},"nodeType":"YulFunctionCall","src":"6855:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6837:6:25"},"nodeType":"YulFunctionCall","src":"6837:51:25"},"nodeType":"YulExpressionStatement","src":"6837:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6761:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6772:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6783:4:25","type":""}],"src":"6691:203:25"},{"body":{"nodeType":"YulBlock","src":"6994:297:25","statements":[{"body":{"nodeType":"YulBlock","src":"7040:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7049:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7052:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7042:6:25"},"nodeType":"YulFunctionCall","src":"7042:12:25"},"nodeType":"YulExpressionStatement","src":"7042:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7015:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7011:3:25"},"nodeType":"YulFunctionCall","src":"7011:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7036:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:32:25"},"nodeType":"YulIf","src":"7004:52:25"},{"nodeType":"YulAssignment","src":"7065:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7093:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7075:17:25"},"nodeType":"YulFunctionCall","src":"7075:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7065:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7112:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7143:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7154:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7139:3:25"},"nodeType":"YulFunctionCall","src":"7139:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7126:12:25"},"nodeType":"YulFunctionCall","src":"7126:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7116:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7201:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7210:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7213:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7203:6:25"},"nodeType":"YulFunctionCall","src":"7203:12:25"},"nodeType":"YulExpressionStatement","src":"7203:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7173:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7181:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7170:2:25"},"nodeType":"YulFunctionCall","src":"7170:30:25"},"nodeType":"YulIf","src":"7167:50:25"},{"nodeType":"YulAssignment","src":"7226:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7257:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"7268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:25"},"nodeType":"YulFunctionCall","src":"7253:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7277:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7236:16:25"},"nodeType":"YulFunctionCall","src":"7236:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7226:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6952:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6963:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6975:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6983:6:25","type":""}],"src":"6899:392:25"},{"body":{"nodeType":"YulBlock","src":"7451:213:25","statements":[{"nodeType":"YulAssignment","src":"7461:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7473:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7484:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7469:3:25"},"nodeType":"YulFunctionCall","src":"7469:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7461:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7503:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7518:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7526:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7514:3:25"},"nodeType":"YulFunctionCall","src":"7514:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7496:6:25"},"nodeType":"YulFunctionCall","src":"7496:50:25"},"nodeType":"YulExpressionStatement","src":"7496:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7566:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7577:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7562:3:25"},"nodeType":"YulFunctionCall","src":"7562:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7586:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7602:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7607:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7598:3:25"},"nodeType":"YulFunctionCall","src":"7598:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7611:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7594:3:25"},"nodeType":"YulFunctionCall","src":"7594:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7582:3:25"},"nodeType":"YulFunctionCall","src":"7582:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7555:6:25"},"nodeType":"YulFunctionCall","src":"7555:60:25"},"nodeType":"YulExpressionStatement","src":"7555:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7635:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7646:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7631:3:25"},"nodeType":"YulFunctionCall","src":"7631:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"7651:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7624:6:25"},"nodeType":"YulFunctionCall","src":"7624:34:25"},"nodeType":"YulExpressionStatement","src":"7624:34:25"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7404:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7415:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7423:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7431:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7442:4:25","type":""}],"src":"7296:368:25"},{"body":{"nodeType":"YulBlock","src":"7755:233:25","statements":[{"body":{"nodeType":"YulBlock","src":"7801:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7810:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7813:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7803:6:25"},"nodeType":"YulFunctionCall","src":"7803:12:25"},"nodeType":"YulExpressionStatement","src":"7803:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7776:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7785:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7772:3:25"},"nodeType":"YulFunctionCall","src":"7772:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7797:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7768:3:25"},"nodeType":"YulFunctionCall","src":"7768:32:25"},"nodeType":"YulIf","src":"7765:52:25"},{"nodeType":"YulAssignment","src":"7826:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7854:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7836:17:25"},"nodeType":"YulFunctionCall","src":"7836:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7826:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7873:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7903:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7914:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7899:3:25"},"nodeType":"YulFunctionCall","src":"7899:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7886:12:25"},"nodeType":"YulFunctionCall","src":"7886:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7877:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7952:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7927:24:25"},"nodeType":"YulFunctionCall","src":"7927:31:25"},"nodeType":"YulExpressionStatement","src":"7927:31:25"},{"nodeType":"YulAssignment","src":"7967:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7977:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7967:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7713:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7724:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7736:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7744:6:25","type":""}],"src":"7669:319:25"},{"body":{"nodeType":"YulBlock","src":"8092:101:25","statements":[{"nodeType":"YulAssignment","src":"8102:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8125:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8110:3:25"},"nodeType":"YulFunctionCall","src":"8110:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8102:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8159:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8167:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8155:3:25"},"nodeType":"YulFunctionCall","src":"8155:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8137:6:25"},"nodeType":"YulFunctionCall","src":"8137:50:25"},"nodeType":"YulExpressionStatement","src":"8137:50:25"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8061:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8072:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8083:4:25","type":""}],"src":"7993:200:25"},{"body":{"nodeType":"YulBlock","src":"8299:76:25","statements":[{"nodeType":"YulAssignment","src":"8309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8317:3:25"},"nodeType":"YulFunctionCall","src":"8317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8351:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8362:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8344:6:25"},"nodeType":"YulFunctionCall","src":"8344:25:25"},"nodeType":"YulExpressionStatement","src":"8344:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8290:4:25","type":""}],"src":"8198:177:25"},{"body":{"nodeType":"YulBlock","src":"8589:385:25","statements":[{"nodeType":"YulAssignment","src":"8599:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8611:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8622:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8607:3:25"},"nodeType":"YulFunctionCall","src":"8607:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8599:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"8635:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8645:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8639:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8695:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8710:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8718:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8706:3:25"},"nodeType":"YulFunctionCall","src":"8706:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8688:6:25"},"nodeType":"YulFunctionCall","src":"8688:34:25"},"nodeType":"YulExpressionStatement","src":"8688:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8738:3:25"},"nodeType":"YulFunctionCall","src":"8738:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8762:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8770:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8758:3:25"},"nodeType":"YulFunctionCall","src":"8758:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8731:6:25"},"nodeType":"YulFunctionCall","src":"8731:43:25"},"nodeType":"YulExpressionStatement","src":"8731:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8805:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8790:3:25"},"nodeType":"YulFunctionCall","src":"8790:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8814:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8822:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8810:3:25"},"nodeType":"YulFunctionCall","src":"8810:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8783:6:25"},"nodeType":"YulFunctionCall","src":"8783:43:25"},"nodeType":"YulExpressionStatement","src":"8783:43:25"},{"nodeType":"YulVariableDeclaration","src":"8835:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8845:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8839:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8894:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8879:3:25"},"nodeType":"YulFunctionCall","src":"8879:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8903:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8911:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8899:3:25"},"nodeType":"YulFunctionCall","src":"8899:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8872:6:25"},"nodeType":"YulFunctionCall","src":"8872:43:25"},"nodeType":"YulExpressionStatement","src":"8872:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8935:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8946:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8931:3:25"},"nodeType":"YulFunctionCall","src":"8931:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8956:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8952:3:25"},"nodeType":"YulFunctionCall","src":"8952:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8924:6:25"},"nodeType":"YulFunctionCall","src":"8924:44:25"},"nodeType":"YulExpressionStatement","src":"8924:44:25"}]},"name":"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8526:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8537:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8545:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8553:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8561:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8569:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8580:4:25","type":""}],"src":"8380:594:25"},{"body":{"nodeType":"YulBlock","src":"9120:648:25","statements":[{"body":{"nodeType":"YulBlock","src":"9166:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9175:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9178:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9168:6:25"},"nodeType":"YulFunctionCall","src":"9168:12:25"},"nodeType":"YulExpressionStatement","src":"9168:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9141:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9137:3:25"},"nodeType":"YulFunctionCall","src":"9137:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9162:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9133:3:25"},"nodeType":"YulFunctionCall","src":"9133:32:25"},"nodeType":"YulIf","src":"9130:52:25"},{"nodeType":"YulAssignment","src":"9191:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9219:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9201:17:25"},"nodeType":"YulFunctionCall","src":"9201:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9191:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9238:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:25"},"nodeType":"YulFunctionCall","src":"9265:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9252:12:25"},"nodeType":"YulFunctionCall","src":"9252:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9242:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9293:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"9303:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9297:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9348:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9357:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9360:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9350:6:25"},"nodeType":"YulFunctionCall","src":"9350:12:25"},"nodeType":"YulExpressionStatement","src":"9350:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9336:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9344:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9333:2:25"},"nodeType":"YulFunctionCall","src":"9333:14:25"},"nodeType":"YulIf","src":"9330:34:25"},{"nodeType":"YulVariableDeclaration","src":"9373:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9429:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9425:3:25"},"nodeType":"YulFunctionCall","src":"9425:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9449:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9399:25:25"},"nodeType":"YulFunctionCall","src":"9399:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"9377:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"9387:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9466:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"9476:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9466:6:25"}]},{"nodeType":"YulAssignment","src":"9493:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"9503:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9493:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9520:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9553:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9564:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9549:3:25"},"nodeType":"YulFunctionCall","src":"9549:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9536:12:25"},"nodeType":"YulFunctionCall","src":"9536:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9524:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9597:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9606:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9609:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9599:6:25"},"nodeType":"YulFunctionCall","src":"9599:12:25"},"nodeType":"YulExpressionStatement","src":"9599:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9583:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9593:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9580:2:25"},"nodeType":"YulFunctionCall","src":"9580:16:25"},"nodeType":"YulIf","src":"9577:36:25"},{"nodeType":"YulVariableDeclaration","src":"9622:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9678:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9689:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9674:3:25"},"nodeType":"YulFunctionCall","src":"9674:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9700:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9648:25:25"},"nodeType":"YulFunctionCall","src":"9648:60:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9626:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9636:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9717:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9727:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9717:6:25"}]},{"nodeType":"YulAssignment","src":"9744:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9754:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9744:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9054:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9065:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9077:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9085:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9093:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9101:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9109:6:25","type":""}],"src":"8979:789:25"},{"body":{"nodeType":"YulBlock","src":"9843:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"9889:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9901:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9891:6:25"},"nodeType":"YulFunctionCall","src":"9891:12:25"},"nodeType":"YulExpressionStatement","src":"9891:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9864:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9873:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9860:3:25"},"nodeType":"YulFunctionCall","src":"9860:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9885:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9856:3:25"},"nodeType":"YulFunctionCall","src":"9856:32:25"},"nodeType":"YulIf","src":"9853:52:25"},{"nodeType":"YulAssignment","src":"9914:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9937:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9924:12:25"},"nodeType":"YulFunctionCall","src":"9924:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9914:6:25"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9809:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9820:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9832:6:25","type":""}],"src":"9773:180:25"},{"body":{"nodeType":"YulBlock","src":"10045:301:25","statements":[{"body":{"nodeType":"YulBlock","src":"10091:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10100:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10103:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10093:6:25"},"nodeType":"YulFunctionCall","src":"10093:12:25"},"nodeType":"YulExpressionStatement","src":"10093:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10066:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10075:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10062:3:25"},"nodeType":"YulFunctionCall","src":"10062:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10058:3:25"},"nodeType":"YulFunctionCall","src":"10058:32:25"},"nodeType":"YulIf","src":"10055:52:25"},{"nodeType":"YulVariableDeclaration","src":"10116:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10142:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10129:12:25"},"nodeType":"YulFunctionCall","src":"10129:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10120:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10161:24:25"},"nodeType":"YulFunctionCall","src":"10161:31:25"},"nodeType":"YulExpressionStatement","src":"10161:31:25"},{"nodeType":"YulAssignment","src":"10201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10201:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10225:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10257:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10268:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10253:3:25"},"nodeType":"YulFunctionCall","src":"10253:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10240:12:25"},"nodeType":"YulFunctionCall","src":"10240:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10229:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10306:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10281:24:25"},"nodeType":"YulFunctionCall","src":"10281:33:25"},"nodeType":"YulExpressionStatement","src":"10281:33:25"},{"nodeType":"YulAssignment","src":"10323:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10333:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10323:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10003:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10014:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10026:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10034:6:25","type":""}],"src":"9958:388:25"},{"body":{"nodeType":"YulBlock","src":"10542:876:25","statements":[{"body":{"nodeType":"YulBlock","src":"10589:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10598:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10601:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10591:6:25"},"nodeType":"YulFunctionCall","src":"10591:12:25"},"nodeType":"YulExpressionStatement","src":"10591:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10563:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10572:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10559:3:25"},"nodeType":"YulFunctionCall","src":"10559:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10584:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10555:3:25"},"nodeType":"YulFunctionCall","src":"10555:33:25"},"nodeType":"YulIf","src":"10552:53:25"},{"nodeType":"YulAssignment","src":"10614:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10642:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10624:17:25"},"nodeType":"YulFunctionCall","src":"10624:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10614:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10661:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10703:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10688:3:25"},"nodeType":"YulFunctionCall","src":"10688:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10675:12:25"},"nodeType":"YulFunctionCall","src":"10675:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10665:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10716:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"10726:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10771:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10780:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10783:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10773:6:25"},"nodeType":"YulFunctionCall","src":"10773:12:25"},"nodeType":"YulExpressionStatement","src":"10773:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10759:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"10767:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10756:2:25"},"nodeType":"YulFunctionCall","src":"10756:14:25"},"nodeType":"YulIf","src":"10753:34:25"},{"nodeType":"YulVariableDeclaration","src":"10796:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10852:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"10863:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10848:3:25"},"nodeType":"YulFunctionCall","src":"10848:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10872:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10822:25:25"},"nodeType":"YulFunctionCall","src":"10822:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"10800:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"10810:8:25","type":""}]},{"nodeType":"YulAssignment","src":"10889:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"10899:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10889:6:25"}]},{"nodeType":"YulAssignment","src":"10916:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"10926:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10943:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10973:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10984:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:25"},"nodeType":"YulFunctionCall","src":"10969:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10956:12:25"},"nodeType":"YulFunctionCall","src":"10956:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10947:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11022:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10997:24:25"},"nodeType":"YulFunctionCall","src":"10997:31:25"},"nodeType":"YulExpressionStatement","src":"10997:31:25"},{"nodeType":"YulAssignment","src":"11037:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"11047:5:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11037:6:25"}]},{"nodeType":"YulAssignment","src":"11061:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11093:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11104:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11089:3:25"},"nodeType":"YulFunctionCall","src":"11089:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"11071:17:25"},"nodeType":"YulFunctionCall","src":"11071:37:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11061:6:25"}]},{"nodeType":"YulAssignment","src":"11117:43:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11155:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11140:3:25"},"nodeType":"YulFunctionCall","src":"11140:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11127:12:25"},"nodeType":"YulFunctionCall","src":"11127:33:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"11117:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11169:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11213:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11198:3:25"},"nodeType":"YulFunctionCall","src":"11198:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11185:12:25"},"nodeType":"YulFunctionCall","src":"11185:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11173:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11247:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11256:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11259:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11249:6:25"},"nodeType":"YulFunctionCall","src":"11249:12:25"},"nodeType":"YulExpressionStatement","src":"11249:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"11233:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11243:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11230:2:25"},"nodeType":"YulFunctionCall","src":"11230:16:25"},"nodeType":"YulIf","src":"11227:36:25"},{"nodeType":"YulVariableDeclaration","src":"11272:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11328:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"11339:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11324:3:25"},"nodeType":"YulFunctionCall","src":"11324:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11350:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"11298:25:25"},"nodeType":"YulFunctionCall","src":"11298:60:25"},"variables":[{"name":"value6_1","nodeType":"YulTypedName","src":"11276:8:25","type":""},{"name":"value7_1","nodeType":"YulTypedName","src":"11286:8:25","type":""}]},{"nodeType":"YulAssignment","src":"11367:18:25","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"11377:8:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"11367:6:25"}]},{"nodeType":"YulAssignment","src":"11394:18:25","value":{"name":"value7_1","nodeType":"YulIdentifier","src":"11404:8:25"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"11394:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10452:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10463:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10475:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10483:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10491:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10499:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10507:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10515:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"10523:6:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"10531:6:25","type":""}],"src":"10351:1067:25"},{"body":{"nodeType":"YulBlock","src":"11622:986:25","statements":[{"body":{"nodeType":"YulBlock","src":"11669:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11678:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11681:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11671:6:25"},"nodeType":"YulFunctionCall","src":"11671:12:25"},"nodeType":"YulExpressionStatement","src":"11671:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11643:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11639:3:25"},"nodeType":"YulFunctionCall","src":"11639:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"11664:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11635:3:25"},"nodeType":"YulFunctionCall","src":"11635:33:25"},"nodeType":"YulIf","src":"11632:53:25"},{"nodeType":"YulAssignment","src":"11694:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11722:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"11704:17:25"},"nodeType":"YulFunctionCall","src":"11704:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11694:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11741:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11772:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11783:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11768:3:25"},"nodeType":"YulFunctionCall","src":"11768:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11755:12:25"},"nodeType":"YulFunctionCall","src":"11755:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11745:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11796:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"11806:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11800:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11851:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11860:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11863:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11853:6:25"},"nodeType":"YulFunctionCall","src":"11853:12:25"},"nodeType":"YulExpressionStatement","src":"11853:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11839:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11847:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11836:2:25"},"nodeType":"YulFunctionCall","src":"11836:14:25"},"nodeType":"YulIf","src":"11833:34:25"},{"nodeType":"YulAssignment","src":"11876:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11907:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"11918:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11903:3:25"},"nodeType":"YulFunctionCall","src":"11903:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11927:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"11886:16:25"},"nodeType":"YulFunctionCall","src":"11886:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11876:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11944:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11973:3:25"},"nodeType":"YulFunctionCall","src":"11973:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11960:12:25"},"nodeType":"YulFunctionCall","src":"11960:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11948:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12021:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12030:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12033:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12023:6:25"},"nodeType":"YulFunctionCall","src":"12023:12:25"},"nodeType":"YulExpressionStatement","src":"12023:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12007:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12017:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12004:2:25"},"nodeType":"YulFunctionCall","src":"12004:16:25"},"nodeType":"YulIf","src":"12001:36:25"},{"nodeType":"YulVariableDeclaration","src":"12046:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12102:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"12113:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12098:3:25"},"nodeType":"YulFunctionCall","src":"12098:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12124:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"12072:25:25"},"nodeType":"YulFunctionCall","src":"12072:60:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"12050:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"12060:8:25","type":""}]},{"nodeType":"YulAssignment","src":"12141:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"12151:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12141:6:25"}]},{"nodeType":"YulAssignment","src":"12168:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"12178:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12168:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12195:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12221:3:25"},"nodeType":"YulFunctionCall","src":"12221:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12208:12:25"},"nodeType":"YulFunctionCall","src":"12208:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12199:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12274:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12249:24:25"},"nodeType":"YulFunctionCall","src":"12249:31:25"},"nodeType":"YulExpressionStatement","src":"12249:31:25"},{"nodeType":"YulAssignment","src":"12289:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"12299:5:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"12289:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12313:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12345:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12356:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12341:3:25"},"nodeType":"YulFunctionCall","src":"12341:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12328:12:25"},"nodeType":"YulFunctionCall","src":"12328:33:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"12317:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"12395:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12370:24:25"},"nodeType":"YulFunctionCall","src":"12370:33:25"},"nodeType":"YulExpressionStatement","src":"12370:33:25"},{"nodeType":"YulAssignment","src":"12412:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"12422:7:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"12412:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12438:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12471:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12482:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12467:3:25"},"nodeType":"YulFunctionCall","src":"12467:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12454:12:25"},"nodeType":"YulFunctionCall","src":"12454:33:25"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"12442:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12516:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12525:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12528:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12518:6:25"},"nodeType":"YulFunctionCall","src":"12518:12:25"},"nodeType":"YulExpressionStatement","src":"12518:12:25"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"12502:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12512:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12499:2:25"},"nodeType":"YulFunctionCall","src":"12499:16:25"},"nodeType":"YulIf","src":"12496:36:25"},{"nodeType":"YulAssignment","src":"12541:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12572:9:25"},{"name":"offset_2","nodeType":"YulIdentifier","src":"12583:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12568:3:25"},"nodeType":"YulFunctionCall","src":"12568:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12594:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"12551:16:25"},"nodeType":"YulFunctionCall","src":"12551:51:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"12541:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11540:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11551:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11563:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11571:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11579:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11587:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11595:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"11603:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"11611:6:25","type":""}],"src":"11423:1185:25"},{"body":{"nodeType":"YulBlock","src":"12741:405:25","statements":[{"body":{"nodeType":"YulBlock","src":"12788:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12797:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12800:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12790:6:25"},"nodeType":"YulFunctionCall","src":"12790:12:25"},"nodeType":"YulExpressionStatement","src":"12790:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12762:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"12771:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12758:3:25"},"nodeType":"YulFunctionCall","src":"12758:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"12783:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12754:3:25"},"nodeType":"YulFunctionCall","src":"12754:33:25"},"nodeType":"YulIf","src":"12751:53:25"},{"nodeType":"YulAssignment","src":"12813:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12841:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12823:17:25"},"nodeType":"YulFunctionCall","src":"12823:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12813:6:25"}]},{"nodeType":"YulAssignment","src":"12860:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12888:3:25"},"nodeType":"YulFunctionCall","src":"12888:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12870:17:25"},"nodeType":"YulFunctionCall","src":"12870:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12860:6:25"}]},{"nodeType":"YulAssignment","src":"12916:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12943:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12954:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12939:3:25"},"nodeType":"YulFunctionCall","src":"12939:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12926:12:25"},"nodeType":"YulFunctionCall","src":"12926:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12967:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13009:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12994:3:25"},"nodeType":"YulFunctionCall","src":"12994:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12981:12:25"},"nodeType":"YulFunctionCall","src":"12981:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12971:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13056:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13065:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13068:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13058:6:25"},"nodeType":"YulFunctionCall","src":"13058:12:25"},"nodeType":"YulExpressionStatement","src":"13058:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13028:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13036:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13025:2:25"},"nodeType":"YulFunctionCall","src":"13025:30:25"},"nodeType":"YulIf","src":"13022:50:25"},{"nodeType":"YulAssignment","src":"13081:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13112:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13123:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13108:3:25"},"nodeType":"YulFunctionCall","src":"13108:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13132:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13091:16:25"},"nodeType":"YulFunctionCall","src":"13091:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13081:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12683:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12694:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12706:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12714:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12722:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12730:6:25","type":""}],"src":"12613:533:25"},{"body":{"nodeType":"YulBlock","src":"13270:341:25","statements":[{"body":{"nodeType":"YulBlock","src":"13317:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13326:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13329:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13319:6:25"},"nodeType":"YulFunctionCall","src":"13319:12:25"},"nodeType":"YulExpressionStatement","src":"13319:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13291:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13300:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13287:3:25"},"nodeType":"YulFunctionCall","src":"13287:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13312:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13283:3:25"},"nodeType":"YulFunctionCall","src":"13283:33:25"},"nodeType":"YulIf","src":"13280:53:25"},{"nodeType":"YulAssignment","src":"13342:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13370:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13352:17:25"},"nodeType":"YulFunctionCall","src":"13352:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13342:6:25"}]},{"nodeType":"YulAssignment","src":"13389:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13421:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13432:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13417:3:25"},"nodeType":"YulFunctionCall","src":"13417:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13399:17:25"},"nodeType":"YulFunctionCall","src":"13399:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13389:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"13445:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13475:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13486:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13471:3:25"},"nodeType":"YulFunctionCall","src":"13471:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13458:12:25"},"nodeType":"YulFunctionCall","src":"13458:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13449:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13524:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"13499:24:25"},"nodeType":"YulFunctionCall","src":"13499:31:25"},"nodeType":"YulExpressionStatement","src":"13499:31:25"},{"nodeType":"YulAssignment","src":"13539:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"13549:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13539:6:25"}]},{"nodeType":"YulAssignment","src":"13563:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13590:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13601:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13586:3:25"},"nodeType":"YulFunctionCall","src":"13586:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13573:12:25"},"nodeType":"YulFunctionCall","src":"13573:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13212:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13223:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13235:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13243:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13251:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13259:6:25","type":""}],"src":"13151:460:25"},{"body":{"nodeType":"YulBlock","src":"13695:241:25","statements":[{"body":{"nodeType":"YulBlock","src":"13741:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13750:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13753:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13743:6:25"},"nodeType":"YulFunctionCall","src":"13743:12:25"},"nodeType":"YulExpressionStatement","src":"13743:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13716:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13725:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13712:3:25"},"nodeType":"YulFunctionCall","src":"13712:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13737:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13708:3:25"},"nodeType":"YulFunctionCall","src":"13708:32:25"},"nodeType":"YulIf","src":"13705:52:25"},{"nodeType":"YulVariableDeclaration","src":"13766:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13793:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13780:12:25"},"nodeType":"YulFunctionCall","src":"13780:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13770:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13846:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13855:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13858:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13848:6:25"},"nodeType":"YulFunctionCall","src":"13848:12:25"},"nodeType":"YulExpressionStatement","src":"13848:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13826:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13815:2:25"},"nodeType":"YulFunctionCall","src":"13815:30:25"},"nodeType":"YulIf","src":"13812:50:25"},{"nodeType":"YulAssignment","src":"13871:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13902:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13913:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13898:3:25"},"nodeType":"YulFunctionCall","src":"13898:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13922:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13881:16:25"},"nodeType":"YulFunctionCall","src":"13881:49:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13871:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13661:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13672:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13684:6:25","type":""}],"src":"13616:320:25"},{"body":{"nodeType":"YulBlock","src":"14088:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14111:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"14116:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14124:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"14098:12:25"},"nodeType":"YulFunctionCall","src":"14098:33:25"},"nodeType":"YulExpressionStatement","src":"14098:33:25"},{"nodeType":"YulVariableDeclaration","src":"14140:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14154:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14159:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14150:3:25"},"nodeType":"YulFunctionCall","src":"14150:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14144:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14182:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"14186:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14175:6:25"},"nodeType":"YulFunctionCall","src":"14175:13:25"},"nodeType":"YulExpressionStatement","src":"14175:13:25"},{"nodeType":"YulAssignment","src":"14197:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"14204:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14197:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14056:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14061:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14069:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14080:3:25","type":""}],"src":"13941:271:25"},{"body":{"nodeType":"YulBlock","src":"14272:325:25","statements":[{"nodeType":"YulAssignment","src":"14282:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"14299:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14292:3:25"},"nodeType":"YulFunctionCall","src":"14292:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14282:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"14313:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14343:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"14349:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14339:3:25"},"nodeType":"YulFunctionCall","src":"14339:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14317:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14390:31:25","statements":[{"nodeType":"YulAssignment","src":"14392:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14406:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14414:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14402:3:25"},"nodeType":"YulFunctionCall","src":"14402:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14392:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14370:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14363:6:25"},"nodeType":"YulFunctionCall","src":"14363:26:25"},"nodeType":"YulIf","src":"14360:61:25"},{"body":{"nodeType":"YulBlock","src":"14480:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14501:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14508:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14513:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14504:3:25"},"nodeType":"YulFunctionCall","src":"14504:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14494:6:25"},"nodeType":"YulFunctionCall","src":"14494:31:25"},"nodeType":"YulExpressionStatement","src":"14494:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14545:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14548:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14538:6:25"},"nodeType":"YulFunctionCall","src":"14538:15:25"},"nodeType":"YulExpressionStatement","src":"14538:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14576:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14566:6:25"},"nodeType":"YulFunctionCall","src":"14566:15:25"},"nodeType":"YulExpressionStatement","src":"14566:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14436:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14459:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14467:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14456:2:25"},"nodeType":"YulFunctionCall","src":"14456:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14433:2:25"},"nodeType":"YulFunctionCall","src":"14433:38:25"},"nodeType":"YulIf","src":"14430:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14252:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14261:6:25","type":""}],"src":"14217:380:25"},{"body":{"nodeType":"YulBlock","src":"14634:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14651:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14658:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14663:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14654:3:25"},"nodeType":"YulFunctionCall","src":"14654:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14644:6:25"},"nodeType":"YulFunctionCall","src":"14644:31:25"},"nodeType":"YulExpressionStatement","src":"14644:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14694:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:15:25"},"nodeType":"YulExpressionStatement","src":"14684:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14715:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14718:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14708:6:25"},"nodeType":"YulFunctionCall","src":"14708:15:25"},"nodeType":"YulExpressionStatement","src":"14708:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14602:127:25"},{"body":{"nodeType":"YulBlock","src":"14782:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"14809:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14811:16:25"},"nodeType":"YulFunctionCall","src":"14811:18:25"},"nodeType":"YulExpressionStatement","src":"14811:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14798:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14805:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14801:3:25"},"nodeType":"YulFunctionCall","src":"14801:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14795:2:25"},"nodeType":"YulFunctionCall","src":"14795:13:25"},"nodeType":"YulIf","src":"14792:39:25"},{"nodeType":"YulAssignment","src":"14840:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"14854:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14847:3:25"},"nodeType":"YulFunctionCall","src":"14847:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"14840:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14765:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"14768:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"14774:3:25","type":""}],"src":"14734:128:25"},{"body":{"nodeType":"YulBlock","src":"15041:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15051:6:25"},"nodeType":"YulFunctionCall","src":"15051:21:25"},"nodeType":"YulExpressionStatement","src":"15051:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15092:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15103:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15088:3:25"},"nodeType":"YulFunctionCall","src":"15088:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15108:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15081:6:25"},"nodeType":"YulFunctionCall","src":"15081:30:25"},"nodeType":"YulExpressionStatement","src":"15081:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15131:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15127:3:25"},"nodeType":"YulFunctionCall","src":"15127:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"15147:34:25","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15120:6:25"},"nodeType":"YulFunctionCall","src":"15120:62:25"},"nodeType":"YulExpressionStatement","src":"15120:62:25"},{"nodeType":"YulAssignment","src":"15191:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15203:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15214:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15199:3:25"},"nodeType":"YulFunctionCall","src":"15199:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15191:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15018:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15032:4:25","type":""}],"src":"14867:356:25"},{"body":{"nodeType":"YulBlock","src":"15402:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15419:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15430:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15412:6:25"},"nodeType":"YulFunctionCall","src":"15412:21:25"},"nodeType":"YulExpressionStatement","src":"15412:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15449:3:25"},"nodeType":"YulFunctionCall","src":"15449:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15469:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15442:6:25"},"nodeType":"YulFunctionCall","src":"15442:30:25"},"nodeType":"YulExpressionStatement","src":"15442:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15492:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15503:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15488:3:25"},"nodeType":"YulFunctionCall","src":"15488:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"15508:31:25","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15481:6:25"},"nodeType":"YulFunctionCall","src":"15481:59:25"},"nodeType":"YulExpressionStatement","src":"15481:59:25"},{"nodeType":"YulAssignment","src":"15549:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15572:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15557:3:25"},"nodeType":"YulFunctionCall","src":"15557:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15549:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15379:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15393:4:25","type":""}],"src":"15228:353:25"},{"body":{"nodeType":"YulBlock","src":"15652:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15669:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15674:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15662:6:25"},"nodeType":"YulFunctionCall","src":"15662:19:25"},"nodeType":"YulExpressionStatement","src":"15662:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15707:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"15712:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15703:3:25"},"nodeType":"YulFunctionCall","src":"15703:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"15719:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"15726:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"15690:12:25"},"nodeType":"YulFunctionCall","src":"15690:43:25"},"nodeType":"YulExpressionStatement","src":"15690:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15757:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15762:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15753:3:25"},"nodeType":"YulFunctionCall","src":"15753:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"15771:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15749:3:25"},"nodeType":"YulFunctionCall","src":"15749:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"15778:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15742:6:25"},"nodeType":"YulFunctionCall","src":"15742:38:25"},"nodeType":"YulExpressionStatement","src":"15742:38:25"},{"nodeType":"YulAssignment","src":"15789:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15804:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15817:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15825:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15813:3:25"},"nodeType":"YulFunctionCall","src":"15813:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15834:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15830:3:25"},"nodeType":"YulFunctionCall","src":"15830:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15809:3:25"},"nodeType":"YulFunctionCall","src":"15809:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15800:3:25"},"nodeType":"YulFunctionCall","src":"15800:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"15841:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15796:3:25"},"nodeType":"YulFunctionCall","src":"15796:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15789:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"15621:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"15628:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15636:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15644:3:25","type":""}],"src":"15586:266:25"},{"body":{"nodeType":"YulBlock","src":"16012:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16029:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16044:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16052:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16040:3:25"},"nodeType":"YulFunctionCall","src":"16040:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16022:6:25"},"nodeType":"YulFunctionCall","src":"16022:38:25"},"nodeType":"YulExpressionStatement","src":"16022:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16080:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16091:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16076:3:25"},"nodeType":"YulFunctionCall","src":"16076:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16096:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16069:6:25"},"nodeType":"YulFunctionCall","src":"16069:30:25"},"nodeType":"YulExpressionStatement","src":"16069:30:25"},{"nodeType":"YulAssignment","src":"16108:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16142:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16150:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16162:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16173:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16158:3:25"},"nodeType":"YulFunctionCall","src":"16158:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16116:25:25"},"nodeType":"YulFunctionCall","src":"16116:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16108:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15965:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15976:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15984:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15992:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16003:4:25","type":""}],"src":"15857:326:25"},{"body":{"nodeType":"YulBlock","src":"16362:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16390:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16372:6:25"},"nodeType":"YulFunctionCall","src":"16372:21:25"},"nodeType":"YulExpressionStatement","src":"16372:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16413:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16424:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16409:3:25"},"nodeType":"YulFunctionCall","src":"16409:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16429:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16402:6:25"},"nodeType":"YulFunctionCall","src":"16402:30:25"},"nodeType":"YulExpressionStatement","src":"16402:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:25"},"nodeType":"YulFunctionCall","src":"16448:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"16468:32:25","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:25"},"nodeType":"YulFunctionCall","src":"16441:60:25"},"nodeType":"YulExpressionStatement","src":"16441:60:25"},{"nodeType":"YulAssignment","src":"16510:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16533:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16518:3:25"},"nodeType":"YulFunctionCall","src":"16518:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16510:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16339:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16353:4:25","type":""}],"src":"16188:354:25"},{"body":{"nodeType":"YulBlock","src":"16784:372:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16801:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16816:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16824:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16812:3:25"},"nodeType":"YulFunctionCall","src":"16812:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16794:6:25"},"nodeType":"YulFunctionCall","src":"16794:38:25"},"nodeType":"YulExpressionStatement","src":"16794:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16852:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16863:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16848:3:25"},"nodeType":"YulFunctionCall","src":"16848:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16868:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16841:6:25"},"nodeType":"YulFunctionCall","src":"16841:31:25"},"nodeType":"YulExpressionStatement","src":"16841:31:25"},{"nodeType":"YulVariableDeclaration","src":"16881:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16921:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16929:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16937:3:25"},"nodeType":"YulFunctionCall","src":"16937:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16895:25:25"},"nodeType":"YulFunctionCall","src":"16895:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16885:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16973:3:25"},"nodeType":"YulFunctionCall","src":"16973:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16997:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17005:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16993:3:25"},"nodeType":"YulFunctionCall","src":"16993:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16966:6:25"},"nodeType":"YulFunctionCall","src":"16966:59:25"},"nodeType":"YulExpressionStatement","src":"16966:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17045:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17056:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17041:3:25"},"nodeType":"YulFunctionCall","src":"17041:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17065:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17073:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17061:3:25"},"nodeType":"YulFunctionCall","src":"17061:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17034:6:25"},"nodeType":"YulFunctionCall","src":"17034:50:25"},"nodeType":"YulExpressionStatement","src":"17034:50:25"},{"nodeType":"YulAssignment","src":"17093:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17127:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"17135:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17143:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17101:25:25"},"nodeType":"YulFunctionCall","src":"17101:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17093:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16713:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16724:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16732:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16740:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16748:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16756:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16764:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16775:4:25","type":""}],"src":"16547:609:25"},{"body":{"nodeType":"YulBlock","src":"17370:310:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17387:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17402:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17410:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17398:3:25"},"nodeType":"YulFunctionCall","src":"17398:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17380:6:25"},"nodeType":"YulFunctionCall","src":"17380:38:25"},"nodeType":"YulExpressionStatement","src":"17380:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17438:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17449:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17434:3:25"},"nodeType":"YulFunctionCall","src":"17434:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17454:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17427:6:25"},"nodeType":"YulFunctionCall","src":"17427:31:25"},"nodeType":"YulExpressionStatement","src":"17427:31:25"},{"nodeType":"YulAssignment","src":"17467:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17501:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"17509:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17521:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17532:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17517:3:25"},"nodeType":"YulFunctionCall","src":"17517:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17475:25:25"},"nodeType":"YulFunctionCall","src":"17475:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17467:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17568:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17553:3:25"},"nodeType":"YulFunctionCall","src":"17553:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17577:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17585:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17573:3:25"},"nodeType":"YulFunctionCall","src":"17573:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17546:6:25"},"nodeType":"YulFunctionCall","src":"17546:59:25"},"nodeType":"YulExpressionStatement","src":"17546:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17625:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17636:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17621:3:25"},"nodeType":"YulFunctionCall","src":"17621:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17645:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17661:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17666:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17657:3:25"},"nodeType":"YulFunctionCall","src":"17657:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17670:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17653:3:25"},"nodeType":"YulFunctionCall","src":"17653:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17641:3:25"},"nodeType":"YulFunctionCall","src":"17641:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17614:6:25"},"nodeType":"YulFunctionCall","src":"17614:60:25"},"nodeType":"YulExpressionStatement","src":"17614:60:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17307:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17318:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17326:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17334:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17342:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17350:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17361:4:25","type":""}],"src":"17161:519:25"},{"body":{"nodeType":"YulBlock","src":"17859:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17876:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17887:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17869:6:25"},"nodeType":"YulFunctionCall","src":"17869:21:25"},"nodeType":"YulExpressionStatement","src":"17869:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17910:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17921:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17906:3:25"},"nodeType":"YulFunctionCall","src":"17906:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17926:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17899:6:25"},"nodeType":"YulFunctionCall","src":"17899:30:25"},"nodeType":"YulExpressionStatement","src":"17899:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17949:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17960:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17945:3:25"},"nodeType":"YulFunctionCall","src":"17945:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nodeType":"YulLiteral","src":"17965:34:25","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17938:6:25"},"nodeType":"YulFunctionCall","src":"17938:62:25"},"nodeType":"YulExpressionStatement","src":"17938:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18020:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18031:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18016:3:25"},"nodeType":"YulFunctionCall","src":"18016:18:25"},{"hexValue":"616e6379","kind":"string","nodeType":"YulLiteral","src":"18036:6:25","type":"","value":"ancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18009:6:25"},"nodeType":"YulFunctionCall","src":"18009:34:25"},"nodeType":"YulExpressionStatement","src":"18009:34:25"},{"nodeType":"YulAssignment","src":"18052:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18064:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18075:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18060:3:25"},"nodeType":"YulFunctionCall","src":"18060:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18052:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17836:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17850:4:25","type":""}],"src":"17685:400:25"},{"body":{"nodeType":"YulBlock","src":"18136:163:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18146:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"18156:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18150:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18183:29:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18202:5:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18209:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18198:3:25"},"nodeType":"YulFunctionCall","src":"18198:14:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"18187:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"18240:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18242:16:25"},"nodeType":"YulFunctionCall","src":"18242:18:25"},"nodeType":"YulExpressionStatement","src":"18242:18:25"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18227:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18236:2:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18224:2:25"},"nodeType":"YulFunctionCall","src":"18224:15:25"},"nodeType":"YulIf","src":"18221:41:25"},{"nodeType":"YulAssignment","src":"18271:22:25","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18282:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"18291:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18278:3:25"},"nodeType":"YulFunctionCall","src":"18278:15:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18271:3:25"}]}]},"name":"increment_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18118:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18128:3:25","type":""}],"src":"18090:209:25"},{"body":{"nodeType":"YulBlock","src":"18478:176:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18506:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18488:6:25"},"nodeType":"YulFunctionCall","src":"18488:21:25"},"nodeType":"YulExpressionStatement","src":"18488:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18540:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18525:3:25"},"nodeType":"YulFunctionCall","src":"18525:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18545:2:25","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18518:6:25"},"nodeType":"YulFunctionCall","src":"18518:30:25"},"nodeType":"YulExpressionStatement","src":"18518:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18568:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18579:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18564:3:25"},"nodeType":"YulFunctionCall","src":"18564:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nodeType":"YulLiteral","src":"18584:28:25","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18557:6:25"},"nodeType":"YulFunctionCall","src":"18557:56:25"},"nodeType":"YulExpressionStatement","src":"18557:56:25"},{"nodeType":"YulAssignment","src":"18622:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18630:3:25"},"nodeType":"YulFunctionCall","src":"18630:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18622:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18455:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18469:4:25","type":""}],"src":"18304:350:25"},{"body":{"nodeType":"YulBlock","src":"18708:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"18730:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18732:16:25"},"nodeType":"YulFunctionCall","src":"18732:18:25"},"nodeType":"YulExpressionStatement","src":"18732:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18724:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18727:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18721:2:25"},"nodeType":"YulFunctionCall","src":"18721:8:25"},"nodeType":"YulIf","src":"18718:34:25"},{"nodeType":"YulAssignment","src":"18761:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18773:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18776:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18769:3:25"},"nodeType":"YulFunctionCall","src":"18769:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"18761:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18690:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"18693:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"18699:4:25","type":""}],"src":"18659:125:25"},{"body":{"nodeType":"YulBlock","src":"18821:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18838:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18845:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18850:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18841:3:25"},"nodeType":"YulFunctionCall","src":"18841:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18831:6:25"},"nodeType":"YulFunctionCall","src":"18831:31:25"},"nodeType":"YulExpressionStatement","src":"18831:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18878:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18881:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18871:6:25"},"nodeType":"YulFunctionCall","src":"18871:15:25"},"nodeType":"YulExpressionStatement","src":"18871:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18902:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18905:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18895:6:25"},"nodeType":"YulFunctionCall","src":"18895:15:25"},"nodeType":"YulExpressionStatement","src":"18895:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"18789:127:25"},{"body":{"nodeType":"YulBlock","src":"18968:88:25","statements":[{"body":{"nodeType":"YulBlock","src":"18999:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19001:16:25"},"nodeType":"YulFunctionCall","src":"19001:18:25"},"nodeType":"YulExpressionStatement","src":"19001:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18984:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18995:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18991:3:25"},"nodeType":"YulFunctionCall","src":"18991:6:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18981:2:25"},"nodeType":"YulFunctionCall","src":"18981:17:25"},"nodeType":"YulIf","src":"18978:43:25"},{"nodeType":"YulAssignment","src":"19030:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19041:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"19048:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19037:3:25"},"nodeType":"YulFunctionCall","src":"19037:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19030:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18950:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18960:3:25","type":""}],"src":"18921:135:25"},{"body":{"nodeType":"YulBlock","src":"19372:557:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19389:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19404:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19412:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19400:3:25"},"nodeType":"YulFunctionCall","src":"19400:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19382:6:25"},"nodeType":"YulFunctionCall","src":"19382:38:25"},"nodeType":"YulExpressionStatement","src":"19382:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19440:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19451:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19456:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19429:6:25"},"nodeType":"YulFunctionCall","src":"19429:31:25"},"nodeType":"YulExpressionStatement","src":"19429:31:25"},{"nodeType":"YulVariableDeclaration","src":"19469:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19509:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19517:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19540:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19525:3:25"},"nodeType":"YulFunctionCall","src":"19525:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19483:25:25"},"nodeType":"YulFunctionCall","src":"19483:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19473:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19565:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19576:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19561:3:25"},"nodeType":"YulFunctionCall","src":"19561:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19585:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19601:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19606:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19597:3:25"},"nodeType":"YulFunctionCall","src":"19597:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"19610:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19593:3:25"},"nodeType":"YulFunctionCall","src":"19593:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19581:3:25"},"nodeType":"YulFunctionCall","src":"19581:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19554:6:25"},"nodeType":"YulFunctionCall","src":"19554:60:25"},"nodeType":"YulExpressionStatement","src":"19554:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:25"},"nodeType":"YulFunctionCall","src":"19630:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"19654:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19662:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19650:3:25"},"nodeType":"YulFunctionCall","src":"19650:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19623:6:25"},"nodeType":"YulFunctionCall","src":"19623:59:25"},"nodeType":"YulExpressionStatement","src":"19623:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19702:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19713:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19698:3:25"},"nodeType":"YulFunctionCall","src":"19698:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19723:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19731:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19719:3:25"},"nodeType":"YulFunctionCall","src":"19719:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19691:6:25"},"nodeType":"YulFunctionCall","src":"19691:51:25"},"nodeType":"YulExpressionStatement","src":"19691:51:25"},{"nodeType":"YulVariableDeclaration","src":"19751:63:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"19791:6:25"},{"name":"value6","nodeType":"YulIdentifier","src":"19799:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"19807:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19765:25:25"},"nodeType":"YulFunctionCall","src":"19765:49:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"19755:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19834:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19845:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19830:3:25"},"nodeType":"YulFunctionCall","src":"19830:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"19855:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19863:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19851:3:25"},"nodeType":"YulFunctionCall","src":"19851:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19823:6:25"},"nodeType":"YulFunctionCall","src":"19823:51:25"},"nodeType":"YulExpressionStatement","src":"19823:51:25"},{"nodeType":"YulAssignment","src":"19883:40:25","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"19908:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"19916:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19891:16:25"},"nodeType":"YulFunctionCall","src":"19891:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19883:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19285:9:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"19296:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"19304:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"19312:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19320:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19328:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19336:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19344:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19352:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19363:4:25","type":""}],"src":"19061:868:25"},{"body":{"nodeType":"YulBlock","src":"20108:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20136:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20118:6:25"},"nodeType":"YulFunctionCall","src":"20118:21:25"},"nodeType":"YulExpressionStatement","src":"20118:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20155:3:25"},"nodeType":"YulFunctionCall","src":"20155:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20175:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20148:6:25"},"nodeType":"YulFunctionCall","src":"20148:30:25"},"nodeType":"YulExpressionStatement","src":"20148:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20209:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20194:3:25"},"nodeType":"YulFunctionCall","src":"20194:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nodeType":"YulLiteral","src":"20214:34:25","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20187:6:25"},"nodeType":"YulFunctionCall","src":"20187:62:25"},"nodeType":"YulExpressionStatement","src":"20187:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20280:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20265:3:25"},"nodeType":"YulFunctionCall","src":"20265:18:25"},{"hexValue":"79","kind":"string","nodeType":"YulLiteral","src":"20285:3:25","type":"","value":"y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20258:6:25"},"nodeType":"YulFunctionCall","src":"20258:31:25"},"nodeType":"YulExpressionStatement","src":"20258:31:25"},{"nodeType":"YulAssignment","src":"20298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20306:3:25"},"nodeType":"YulFunctionCall","src":"20306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20085:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"19934:397:25"},{"body":{"nodeType":"YulBlock","src":"20510:234:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20527:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20538:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20520:6:25"},"nodeType":"YulFunctionCall","src":"20520:21:25"},"nodeType":"YulExpressionStatement","src":"20520:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20572:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20557:3:25"},"nodeType":"YulFunctionCall","src":"20557:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20577:2:25","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20550:6:25"},"nodeType":"YulFunctionCall","src":"20550:30:25"},"nodeType":"YulExpressionStatement","src":"20550:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20600:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20611:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20596:3:25"},"nodeType":"YulFunctionCall","src":"20596:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nodeType":"YulLiteral","src":"20616:34:25","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20589:6:25"},"nodeType":"YulFunctionCall","src":"20589:62:25"},"nodeType":"YulExpressionStatement","src":"20589:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20667:3:25"},"nodeType":"YulFunctionCall","src":"20667:18:25"},{"hexValue":"616464726573732073697a65","kind":"string","nodeType":"YulLiteral","src":"20687:14:25","type":"","value":"address size"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20660:6:25"},"nodeType":"YulFunctionCall","src":"20660:42:25"},"nodeType":"YulExpressionStatement","src":"20660:42:25"},{"nodeType":"YulAssignment","src":"20711:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20723:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20734:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20719:3:25"},"nodeType":"YulFunctionCall","src":"20719:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20711:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20487:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20501:4:25","type":""}],"src":"20336:408:25"},{"body":{"nodeType":"YulBlock","src":"20923:245:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20951:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20933:6:25"},"nodeType":"YulFunctionCall","src":"20933:21:25"},"nodeType":"YulExpressionStatement","src":"20933:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20974:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20985:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20970:3:25"},"nodeType":"YulFunctionCall","src":"20970:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20990:2:25","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20963:6:25"},"nodeType":"YulFunctionCall","src":"20963:30:25"},"nodeType":"YulExpressionStatement","src":"20963:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21024:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21009:3:25"},"nodeType":"YulFunctionCall","src":"21009:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nodeType":"YulLiteral","src":"21029:34:25","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21002:6:25"},"nodeType":"YulFunctionCall","src":"21002:62:25"},"nodeType":"YulExpressionStatement","src":"21002:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21084:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21095:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21080:3:25"},"nodeType":"YulFunctionCall","src":"21080:18:25"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nodeType":"YulLiteral","src":"21100:25:25","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21073:6:25"},"nodeType":"YulFunctionCall","src":"21073:53:25"},"nodeType":"YulExpressionStatement","src":"21073:53:25"},{"nodeType":"YulAssignment","src":"21135:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21158:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21143:3:25"},"nodeType":"YulFunctionCall","src":"21143:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21135:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20900:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20914:4:25","type":""}],"src":"20749:419:25"},{"body":{"nodeType":"YulBlock","src":"21347:231:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21364:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21375:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21357:6:25"},"nodeType":"YulFunctionCall","src":"21357:21:25"},"nodeType":"YulExpressionStatement","src":"21357:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21398:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21409:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21394:3:25"},"nodeType":"YulFunctionCall","src":"21394:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21414:2:25","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21387:6:25"},"nodeType":"YulFunctionCall","src":"21387:30:25"},"nodeType":"YulExpressionStatement","src":"21387:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21437:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21448:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21433:3:25"},"nodeType":"YulFunctionCall","src":"21433:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nodeType":"YulLiteral","src":"21453:34:25","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21426:6:25"},"nodeType":"YulFunctionCall","src":"21426:62:25"},"nodeType":"YulExpressionStatement","src":"21426:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21508:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21519:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21504:3:25"},"nodeType":"YulFunctionCall","src":"21504:18:25"},{"hexValue":"20666f722066656573","kind":"string","nodeType":"YulLiteral","src":"21524:11:25","type":"","value":" for fees"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21497:6:25"},"nodeType":"YulFunctionCall","src":"21497:39:25"},"nodeType":"YulExpressionStatement","src":"21497:39:25"},{"nodeType":"YulAssignment","src":"21545:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21568:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21553:3:25"},"nodeType":"YulFunctionCall","src":"21553:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21545:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21324:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21338:4:25","type":""}],"src":"21173:405:25"},{"body":{"nodeType":"YulBlock","src":"21774:14:25","statements":[{"nodeType":"YulAssignment","src":"21776:10:25","value":{"name":"pos","nodeType":"YulIdentifier","src":"21783:3:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21776:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21758:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21766:3:25","type":""}],"src":"21583:205:25"},{"body":{"nodeType":"YulBlock","src":"21967:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21977:6:25"},"nodeType":"YulFunctionCall","src":"21977:21:25"},"nodeType":"YulExpressionStatement","src":"21977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22014:3:25"},"nodeType":"YulFunctionCall","src":"22014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22034:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22007:6:25"},"nodeType":"YulFunctionCall","src":"22007:30:25"},"nodeType":"YulExpressionStatement","src":"22007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22053:3:25"},"nodeType":"YulFunctionCall","src":"22053:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nodeType":"YulLiteral","src":"22073:33:25","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22046:6:25"},"nodeType":"YulFunctionCall","src":"22046:61:25"},"nodeType":"YulExpressionStatement","src":"22046:61:25"},{"nodeType":"YulAssignment","src":"22116:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22124:3:25"},"nodeType":"YulFunctionCall","src":"22124:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22116:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21958:4:25","type":""}],"src":"21793:355:25"},{"body":{"nodeType":"YulBlock","src":"22300:186:25","statements":[{"nodeType":"YulVariableDeclaration","src":"22310:41:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22324:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22320:3:25"},"nodeType":"YulFunctionCall","src":"22320:31:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22314:2:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22367:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22380:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"22384:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22393:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22372:3:25"},"nodeType":"YulFunctionCall","src":"22372:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22360:6:25"},"nodeType":"YulFunctionCall","src":"22360:37:25"},"nodeType":"YulExpressionStatement","src":"22360:37:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22417:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22422:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22413:3:25"},"nodeType":"YulFunctionCall","src":"22413:12:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22435:2:25","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"22439:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22431:3:25"},"nodeType":"YulFunctionCall","src":"22431:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22448:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22427:3:25"},"nodeType":"YulFunctionCall","src":"22427:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22406:6:25"},"nodeType":"YulFunctionCall","src":"22406:46:25"},"nodeType":"YulExpressionStatement","src":"22406:46:25"},{"nodeType":"YulAssignment","src":"22461:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22472:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22477:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22468:3:25"},"nodeType":"YulFunctionCall","src":"22468:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22461:3:25"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22268:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22273:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22281:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22292:3:25","type":""}],"src":"22153:333:25"},{"body":{"nodeType":"YulBlock","src":"22764:452:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22781:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22796:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22804:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22792:3:25"},"nodeType":"YulFunctionCall","src":"22792:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22774:6:25"},"nodeType":"YulFunctionCall","src":"22774:38:25"},"nodeType":"YulExpressionStatement","src":"22774:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22832:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22843:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22828:3:25"},"nodeType":"YulFunctionCall","src":"22828:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22848:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22821:6:25"},"nodeType":"YulFunctionCall","src":"22821:31:25"},"nodeType":"YulExpressionStatement","src":"22821:31:25"},{"nodeType":"YulVariableDeclaration","src":"22861:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22892:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22904:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22915:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22900:3:25"},"nodeType":"YulFunctionCall","src":"22900:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"22875:16:25"},"nodeType":"YulFunctionCall","src":"22875:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22865:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22951:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22936:3:25"},"nodeType":"YulFunctionCall","src":"22936:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22960:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22976:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22981:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22972:3:25"},"nodeType":"YulFunctionCall","src":"22972:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22985:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22968:3:25"},"nodeType":"YulFunctionCall","src":"22968:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22956:3:25"},"nodeType":"YulFunctionCall","src":"22956:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22929:6:25"},"nodeType":"YulFunctionCall","src":"22929:60:25"},"nodeType":"YulExpressionStatement","src":"22929:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23009:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23020:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23005:3:25"},"nodeType":"YulFunctionCall","src":"23005:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23029:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23037:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23025:3:25"},"nodeType":"YulFunctionCall","src":"23025:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22998:6:25"},"nodeType":"YulFunctionCall","src":"22998:59:25"},"nodeType":"YulExpressionStatement","src":"22998:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23077:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23088:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23073:3:25"},"nodeType":"YulFunctionCall","src":"23073:19:25"},{"name":"value4","nodeType":"YulIdentifier","src":"23094:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23066:6:25"},"nodeType":"YulFunctionCall","src":"23066:35:25"},"nodeType":"YulExpressionStatement","src":"23066:35:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23121:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23132:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23117:3:25"},"nodeType":"YulFunctionCall","src":"23117:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"23142:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23138:3:25"},"nodeType":"YulFunctionCall","src":"23138:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23110:6:25"},"nodeType":"YulFunctionCall","src":"23110:51:25"},"nodeType":"YulExpressionStatement","src":"23110:51:25"},{"nodeType":"YulAssignment","src":"23170:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"23195:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"23203:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23178:16:25"},"nodeType":"YulFunctionCall","src":"23178:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23170:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22693:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"22704:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22712:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22720:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22728:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22736:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22744:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22755:4:25","type":""}],"src":"22491:725:25"},{"body":{"nodeType":"YulBlock","src":"23366:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23383:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23396:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"23401:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23392:3:25"},"nodeType":"YulFunctionCall","src":"23392:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23414:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"23419:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23388:3:25"},"nodeType":"YulFunctionCall","src":"23388:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23376:6:25"},"nodeType":"YulFunctionCall","src":"23376:51:25"},"nodeType":"YulExpressionStatement","src":"23376:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23447:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23452:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23443:3:25"},"nodeType":"YulFunctionCall","src":"23443:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"23456:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23436:6:25"},"nodeType":"YulFunctionCall","src":"23436:27:25"},"nodeType":"YulExpressionStatement","src":"23436:27:25"},{"nodeType":"YulAssignment","src":"23472:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23483:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23488:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23479:3:25"},"nodeType":"YulFunctionCall","src":"23479:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23472:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23334:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23339:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23347:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23358:3:25","type":""}],"src":"23221:276:25"},{"body":{"nodeType":"YulBlock","src":"23676:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23693:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23704:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23686:6:25"},"nodeType":"YulFunctionCall","src":"23686:21:25"},"nodeType":"YulExpressionStatement","src":"23686:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23738:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23723:3:25"},"nodeType":"YulFunctionCall","src":"23723:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23743:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23716:6:25"},"nodeType":"YulFunctionCall","src":"23716:30:25"},"nodeType":"YulExpressionStatement","src":"23716:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23777:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23762:3:25"},"nodeType":"YulFunctionCall","src":"23762:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nodeType":"YulLiteral","src":"23782:34:25","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23755:6:25"},"nodeType":"YulFunctionCall","src":"23755:62:25"},"nodeType":"YulExpressionStatement","src":"23755:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23837:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23848:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23833:3:25"},"nodeType":"YulFunctionCall","src":"23833:18:25"},{"hexValue":"6c6172676520","kind":"string","nodeType":"YulLiteral","src":"23853:8:25","type":"","value":"large "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23826:6:25"},"nodeType":"YulFunctionCall","src":"23826:36:25"},"nodeType":"YulExpressionStatement","src":"23826:36:25"},{"nodeType":"YulAssignment","src":"23871:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23894:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23879:3:25"},"nodeType":"YulFunctionCall","src":"23879:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23871:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23653:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23667:4:25","type":""}],"src":"23502:402:25"},{"body":{"nodeType":"YulBlock","src":"23961:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"24020:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24022:16:25"},"nodeType":"YulFunctionCall","src":"24022:18:25"},"nodeType":"YulExpressionStatement","src":"24022:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23992:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23985:6:25"},"nodeType":"YulFunctionCall","src":"23985:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23978:6:25"},"nodeType":"YulFunctionCall","src":"23978:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24000:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24011:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24007:3:25"},"nodeType":"YulFunctionCall","src":"24007:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"24015:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24003:3:25"},"nodeType":"YulFunctionCall","src":"24003:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23997:2:25"},"nodeType":"YulFunctionCall","src":"23997:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23974:3:25"},"nodeType":"YulFunctionCall","src":"23974:45:25"},"nodeType":"YulIf","src":"23971:71:25"},{"nodeType":"YulAssignment","src":"24051:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24066:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24069:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24062:3:25"},"nodeType":"YulFunctionCall","src":"24062:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24051:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23940:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"23943:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23949:7:25","type":""}],"src":"23909:168:25"},{"body":{"nodeType":"YulBlock","src":"24114:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24131:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24138:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24143:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24134:3:25"},"nodeType":"YulFunctionCall","src":"24134:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24124:6:25"},"nodeType":"YulFunctionCall","src":"24124:31:25"},"nodeType":"YulExpressionStatement","src":"24124:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24171:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24174:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24164:6:25"},"nodeType":"YulFunctionCall","src":"24164:15:25"},"nodeType":"YulExpressionStatement","src":"24164:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24195:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24198:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24188:6:25"},"nodeType":"YulFunctionCall","src":"24188:15:25"},"nodeType":"YulExpressionStatement","src":"24188:15:25"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"24082:127:25"},{"body":{"nodeType":"YulBlock","src":"24260:74:25","statements":[{"body":{"nodeType":"YulBlock","src":"24283:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24285:16:25"},"nodeType":"YulFunctionCall","src":"24285:18:25"},"nodeType":"YulExpressionStatement","src":"24285:18:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24280:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24273:6:25"},"nodeType":"YulFunctionCall","src":"24273:9:25"},"nodeType":"YulIf","src":"24270:35:25"},{"nodeType":"YulAssignment","src":"24314:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24323:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24326:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24319:3:25"},"nodeType":"YulFunctionCall","src":"24319:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24314:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24245:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24248:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24254:1:25","type":""}],"src":"24214:120:25"},{"body":{"nodeType":"YulBlock","src":"24391:235:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24401:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24411:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24405:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24454:21:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24469:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24472:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24465:3:25"},"nodeType":"YulFunctionCall","src":"24465:10:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"24458:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24484:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24499:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24502:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24495:3:25"},"nodeType":"YulFunctionCall","src":"24495:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24488:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24565:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24567:16:25"},"nodeType":"YulFunctionCall","src":"24567:18:25"},"nodeType":"YulExpressionStatement","src":"24567:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24535:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24528:6:25"},"nodeType":"YulFunctionCall","src":"24528:11:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24521:6:25"},"nodeType":"YulFunctionCall","src":"24521:19:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24545:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24554:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"24558:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24550:3:25"},"nodeType":"YulFunctionCall","src":"24550:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24542:2:25"},"nodeType":"YulFunctionCall","src":"24542:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24517:3:25"},"nodeType":"YulFunctionCall","src":"24517:47:25"},"nodeType":"YulIf","src":"24514:73:25"},{"nodeType":"YulAssignment","src":"24596:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24611:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24616:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24607:3:25"},"nodeType":"YulFunctionCall","src":"24607:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24596:7:25"}]}]},"name":"checked_mul_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24370:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24373:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"24379:7:25","type":""}],"src":"24339:287:25"},{"body":{"nodeType":"YulBlock","src":"24677:170:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24687:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24697:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24691:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24740:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24755:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24758:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24751:3:25"},"nodeType":"YulFunctionCall","src":"24751:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24744:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24785:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24787:16:25"},"nodeType":"YulFunctionCall","src":"24787:18:25"},"nodeType":"YulExpressionStatement","src":"24787:18:25"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24780:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24773:6:25"},"nodeType":"YulFunctionCall","src":"24773:11:25"},"nodeType":"YulIf","src":"24770:37:25"},{"nodeType":"YulAssignment","src":"24816:25:25","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24829:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24832:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:10:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24837:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24821:3:25"},"nodeType":"YulFunctionCall","src":"24821:20:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24816:1:25"}]}]},"name":"checked_div_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24662:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24665:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24671:1:25","type":""}],"src":"24631:216:25"},{"body":{"nodeType":"YulBlock","src":"25079:355:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25096:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25111:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25119:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25107:3:25"},"nodeType":"YulFunctionCall","src":"25107:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25089:6:25"},"nodeType":"YulFunctionCall","src":"25089:38:25"},"nodeType":"YulExpressionStatement","src":"25089:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25158:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25143:3:25"},"nodeType":"YulFunctionCall","src":"25143:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25163:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25136:6:25"},"nodeType":"YulFunctionCall","src":"25136:31:25"},"nodeType":"YulExpressionStatement","src":"25136:31:25"},{"nodeType":"YulVariableDeclaration","src":"25176:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25216:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"25224:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25236:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25247:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25232:3:25"},"nodeType":"YulFunctionCall","src":"25232:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"25190:25:25"},"nodeType":"YulFunctionCall","src":"25190:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"25180:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25272:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25283:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25268:3:25"},"nodeType":"YulFunctionCall","src":"25268:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"25292:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25300:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25288:3:25"},"nodeType":"YulFunctionCall","src":"25288:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25261:6:25"},"nodeType":"YulFunctionCall","src":"25261:59:25"},"nodeType":"YulExpressionStatement","src":"25261:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25340:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25351:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25336:3:25"},"nodeType":"YulFunctionCall","src":"25336:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"25360:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25368:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25356:3:25"},"nodeType":"YulFunctionCall","src":"25356:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25329:6:25"},"nodeType":"YulFunctionCall","src":"25329:50:25"},"nodeType":"YulExpressionStatement","src":"25329:50:25"},{"nodeType":"YulAssignment","src":"25388:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25413:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"25421:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25396:16:25"},"nodeType":"YulFunctionCall","src":"25396:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25388:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25016:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25027:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25035:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25043:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25051:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25059:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25070:4:25","type":""}],"src":"24852:582:25"},{"body":{"nodeType":"YulBlock","src":"25471:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25488:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25495:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25500:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25491:3:25"},"nodeType":"YulFunctionCall","src":"25491:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25481:6:25"},"nodeType":"YulFunctionCall","src":"25481:31:25"},"nodeType":"YulExpressionStatement","src":"25481:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25528:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25531:4:25","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25521:6:25"},"nodeType":"YulFunctionCall","src":"25521:15:25"},"nodeType":"YulExpressionStatement","src":"25521:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25552:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25555:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25545:6:25"},"nodeType":"YulFunctionCall","src":"25545:15:25"},"nodeType":"YulExpressionStatement","src":"25545:15:25"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"25439:127:25"},{"body":{"nodeType":"YulBlock","src":"25745:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25762:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25773:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25755:6:25"},"nodeType":"YulFunctionCall","src":"25755:21:25"},"nodeType":"YulExpressionStatement","src":"25755:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25796:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25807:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25812:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25785:6:25"},"nodeType":"YulFunctionCall","src":"25785:30:25"},"nodeType":"YulExpressionStatement","src":"25785:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25835:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25846:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25831:3:25"},"nodeType":"YulFunctionCall","src":"25831:18:25"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nodeType":"YulLiteral","src":"25851:23:25","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25824:6:25"},"nodeType":"YulFunctionCall","src":"25824:51:25"},"nodeType":"YulExpressionStatement","src":"25824:51:25"},{"nodeType":"YulAssignment","src":"25884:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25907:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25892:3:25"},"nodeType":"YulFunctionCall","src":"25892:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25884:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25722:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25736:4:25","type":""}],"src":"25571:345:25"},{"body":{"nodeType":"YulBlock","src":"26095:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26112:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26123:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26105:6:25"},"nodeType":"YulFunctionCall","src":"26105:21:25"},"nodeType":"YulExpressionStatement","src":"26105:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26146:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26157:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26142:3:25"},"nodeType":"YulFunctionCall","src":"26142:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26162:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26135:6:25"},"nodeType":"YulFunctionCall","src":"26135:30:25"},"nodeType":"YulExpressionStatement","src":"26135:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26185:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26196:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26181:3:25"},"nodeType":"YulFunctionCall","src":"26181:18:25"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nodeType":"YulLiteral","src":"26201:20:25","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26174:6:25"},"nodeType":"YulFunctionCall","src":"26174:48:25"},"nodeType":"YulExpressionStatement","src":"26174:48:25"},{"nodeType":"YulAssignment","src":"26231:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26243:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26254:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26239:3:25"},"nodeType":"YulFunctionCall","src":"26239:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26231:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26072:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26086:4:25","type":""}],"src":"25921:342:25"},{"body":{"nodeType":"YulBlock","src":"26442:161:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26470:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26452:6:25"},"nodeType":"YulFunctionCall","src":"26452:21:25"},"nodeType":"YulExpressionStatement","src":"26452:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26493:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26504:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26489:3:25"},"nodeType":"YulFunctionCall","src":"26489:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26509:2:25","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26482:6:25"},"nodeType":"YulFunctionCall","src":"26482:30:25"},"nodeType":"YulExpressionStatement","src":"26482:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26543:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26528:3:25"},"nodeType":"YulFunctionCall","src":"26528:18:25"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nodeType":"YulLiteral","src":"26548:13:25","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26521:6:25"},"nodeType":"YulFunctionCall","src":"26521:41:25"},"nodeType":"YulExpressionStatement","src":"26521:41:25"},{"nodeType":"YulAssignment","src":"26571:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26583:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26594:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26579:3:25"},"nodeType":"YulFunctionCall","src":"26579:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26571:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26419:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26433:4:25","type":""}],"src":"26268:335:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), 0)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_uint128(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint128(headStart)\n value1 := abi_decode_uint128(add(headStart, 32))\n value2 := abi_decode_uint128(add(headStart, 64))\n value3 := abi_decode_uint64(add(headStart, 96))\n value4 := abi_decode_uint64(add(headStart, 128))\n }\n function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let value_1 := calldataload(add(headStart, 96))\n if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n value3 := value_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n let _1 := 0xffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n let _2 := 0xffffffffffffffff\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, _2))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value3 := value\n value4 := abi_decode_uint64(add(headStart, 96))\n value5 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value4 := value\n let value_1 := calldataload(add(headStart, 128))\n validator_revert_address(value_1)\n value5 := value_1\n let offset_2 := calldataload(add(headStart, 160))\n if gt(offset_2, _1) { revert(0, 0) }\n value6 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"LayerZeroMock: no stored payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), and(value4, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"LayerZeroMock: no receive reentr\")\n mstore(add(headStart, 96), \"ancy\")\n tail := add(headStart, 128)\n }\n function increment_t_uint64(value) -> ret\n {\n let _1 := 0xffffffffffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"LayerZeroMock: wrong nonce\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 192))\n mstore(add(headStart, 64), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value4, 0xffffffffffffffff))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes_calldata(value5, value6, tail_1)\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value7, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"LayerZeroMock: no send reentranc\")\n mstore(add(headStart, 96), \"y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"LayerZeroMock: incorrect remote \")\n mstore(add(headStart, 96), \"address size\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 55)\n mstore(add(headStart, 64), \"LayerZeroMock: destination Layer\")\n mstore(add(headStart, 96), \"Zero Endpoint not found\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"LayerZeroMock: not enough native\")\n mstore(add(headStart, 96), \" for fees\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"LayerZeroMock: failed to refund\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let _1 := not(0xffffffffffffffffffffffff)\n mstore(pos, and(shl(96, value0), _1))\n mstore(add(pos, 20), and(shl(96, value1), _1))\n end := add(pos, 40)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), sub(tail_1, headStart))\n tail := abi_encode_bytes(value5, tail_1)\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LayerZeroMock: dstNativeAmt too \")\n mstore(add(headStart, 96), \"large \")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_mul_t_uint128(x, y) -> product\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_div_t_uint128(x, y) -> r\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Invalid adapterParams\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unsupported txType\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 11)\n mstore(add(headStart, 64), \"Gas too low\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fcd2d38b724f9c9e5d1ac5abffe439ca2f05c406fdb9d323fa90177d94e6804364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xD2 0xD3 DUP12 PUSH19 0x4F9C9E5D1AC5ABFFE439CA2F05C406FDB9D323 STATICCALL SWAP1 OR PUSH30 0x94E6804364736F6C634300080A0033000000000000000000000000000000 ","sourceMap":"768:98:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:42:6;;;;;;;;;;-1:-1:-1;1144:42:6;;;;;;;;;;;;;188:25:25;;;244:2;229:18;;222:34;;;;161:18;1144:42:6;;;;;;;;11660:78;;;;;;;;;;-1:-1:-1;11660:78:6;;;;;:::i;:::-;;;;;11206:133;;;;;;;;;;-1:-1:-1;11206:133:6;;;;;:::i;:::-;-1:-1:-1;11331:1:6;;11206:133;;;;1182:6:25;1170:19;;;1152:38;;1140:2;1125:18;11206:133:6;1008:188:25;10246:228:6;;;;;;;;;;-1:-1:-1;10246:228:6;;;;;:::i;:::-;;:::i;:::-;;;2204:14:25;;2197:22;2179:41;;2167:2;2152:18;10246:228:6;2039:187:25;1846:73:6;;;;;;;;;;-1:-1:-1;1846:73:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13583:162::-;;;;;;;;;;-1:-1:-1;13583:162:6;;;;;:::i;:::-;13656:17;:34;;;;13700:26;:38;13583:162;1219:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13145:432::-;;;;;;;;;;-1:-1:-1;13145:432:6;;;;;:::i;:::-;-1:-1:-1;;;;;13303:47:6;;;-1:-1:-1;;;13360:53:6;;;;;;13303:16;13360:53;13423:32;:51;;;;;;-1:-1:-1;;;;;;13484:35:6;;;;;;;-1:-1:-1;;;;;13484:35:6;;;;;;;;;;-1:-1:-1;;;;;13529:41:6;-1:-1:-1;;;13529:41:6;;;;;;;;13145:432;9344:97;;;;;;;;;;-1:-1:-1;9423:11:6;;;;9344:97;;1047:26;;;;;;;;;;-1:-1:-1;1047:26:6;;;;;;;;;;;8645:693;;;;;;;;;;-1:-1:-1;8645:693:6;;;;;:::i;:::-;;:::i;11831:720::-;;;;;;;;;;-1:-1:-1;11831:720:6;;;;;:::i;:::-;;:::i;10604:121::-;;;;;;;;;;-1:-1:-1;10604:121:6;;;;;:::i;:::-;-1:-1:-1;10713:4:6;;10604:121;;;;-1:-1:-1;;;;;6855:32:25;;;6837:51;;6825:2;6810:18;10604:121:6;6691:203:25;1728:71:6;;;;;;;;;;-1:-1:-1;1728:71:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1728:71:6;;;-1:-1:-1;;;1728:71:6;;-1:-1:-1;;;;;1728:71:6;;;;;;;;-1:-1:-1;;;;;7514:31:25;;;7496:50;;-1:-1:-1;;;;;7582:32:25;;;7577:2;7562:18;;7555:60;7631:18;;;7624:34;7484:2;7469:18;1728:71:6;7296:368:25;8475:164:6;;;;;;;;;;-1:-1:-1;8475:164:6;;;;;:::i;:::-;8596:23;;;8571:6;8596:23;;;:13;:23;;;;;;;;-1:-1:-1;;;;;8596:36:6;;;;;;;;;;-1:-1:-1;;;;;8596:36:6;8475:164;;;;;;;;-1:-1:-1;;;;;8155:31:25;;;8137:50;;8125:2;8110:18;8475:164:6;7993:200:25;12679:173:6;;;;;;;;;;-1:-1:-1;12679:173:6;;;;;:::i;:::-;;:::i;:::-;;;8344:25:25;;;8332:2;8317:18;12679:173:6;8198:177:25;1098:40:6;;;;;;;;;;-1:-1:-1;1098:40:6;;;;;;-1:-1:-1;;;;;1098:40:6;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;;;-1:-1:-1;;;;;1098:40:6;;;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;-1:-1:-1;;;;;8706:15:25;;;8688:34;;8758:15;;;8753:2;8738:18;;8731:43;8810:15;;;;8790:18;;;8783:43;;;;-1:-1:-1;;;;;8899:15:25;;;8894:2;8879:18;;8872:43;8952:15;;;8946:3;8931:19;;8924:44;8622:3;8607:19;1098:40:6;8380:594:25;1345:63:6;;;;;;;;;;-1:-1:-1;1345:63:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1345:63:6;;;9447:793;;;;;;;;;;-1:-1:-1;9447:793:6;;;;;:::i;:::-;;:::i;1489:66::-;;;;;;;;;;-1:-1:-1;1489:66:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1489:66:6;;;13751:87;;;;;;;;;;-1:-1:-1;13751:87:6;;;;;:::i;:::-;13809:9;:22;13751:87;13001:138;;;;;;;;;;-1:-1:-1;13001:138:6;;;;;:::i;:::-;-1:-1:-1;;;;;13089:26:6;;;:16;:26;;;;;;;;;;:43;;-1:-1:-1;;;;;;13089:43:6;;;;;;;;13001:138;6031:2275;;;;;;;;;;-1:-1:-1;6031:2275:6;;;;;:::i;:::-;;:::i;4013:2012::-;;;;;;:::i;:::-;;:::i;958:51::-;;;;;;;;;;-1:-1:-1;958:51:6;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;958:51:6;;;10858:126;;;;;;;;;;;;10943:22;;;;;:34;:22;950:1;10943:34;;10858:126;11487:167;;;;;;;;;;-1:-1:-1;11487:167:6;;;;;:::i;:::-;11919:632;11831:720;;;;12924:71;;;;;;;;;;;;12984:4;12967:21;;-1:-1:-1;;12967:21:6;;;;;12924:71;1016:25;;;;;;;;;;-1:-1:-1;1016:25:6;;;;;;;;10731:121;;;;;;;;;;;;10814:19;;:31;:19;950:1;10814:31;;10731:121;10990:210;;;;;;;;;;-1:-1:-1;10990:210:6;;;;;:::i;:::-;11184:9;;;;;;;;;-1:-1:-1;11184:9:6;;10990:210;;;;;;;1192:21;;;;;;;;;;;;;;;;13844:125;;;;;;;;;;-1:-1:-1;13844:125:6;;;;;:::i;:::-;;:::i;8312:157::-;;;;;;;;;;-1:-1:-1;8312:157:6;;;;;:::i;:::-;;:::i;10246:228::-;10389:26;;;10346:4;10389:26;;;:13;:26;;;;;;:33;;10346:4;;10389:26;:33;;10416:5;;;;10389:33;:::i;:::-;;;;;;;;;;;;;;10439:14;;;:28;;;-1:-1:-1;;10246:228:6;;;;;;:::o;1846:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1846:73:6;;;-1:-1:-1;;;;1846:73:6;;;-1:-1:-1;;;;;1846:73:6;;-1:-1:-1;1846:73:6;;-1:-1:-1;1846:73:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1219:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8645:693::-;8802:14;8818:11;8841:26;8894:1;8870:14;:21;:25;:65;;8915:20;8870:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8898:14;8870:65;8841:94;;8969:15;8987:80;9002:11;9015:1;9018:16;9036:8;:15;9053:13;8987:14;:80::i;:::-;8969:98;;9103:16;9122:50;9139:9;9150:10;9162:9;;9122:16;:50::i;:::-;9103:69;;9182:9;:58;;9229:11;9217:23;;;9182:58;;;9203:11;9194:20;;;9182:58;-1:-1:-1;9322:9:6;;9297:22;9309:10;9297:9;:22;:::i;:::-;:34;;;;:::i;:::-;9285:46;;8831:507;;;8645:693;;;;;;;;:::o;11831:720::-;11956:26;;;11929:24;11956:26;;;:13;:26;;;;;;:33;;;;11983:5;;;;11956:33;:::i;:::-;;;;;;;;;;;;;;12085:14;;;;11956:33;;-1:-1:-1;12077:73:6;;;;-1:-1:-1;;;12077:73:6;;15069:2:25;12077:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;12077:73:6;;;;;;;;;12168:13;;-1:-1:-1;;;12168:13:6;;-1:-1:-1;;;;;12168:13:6;12185:10;12168:27;12160:69;;;;-1:-1:-1;;;12160:69:6;;15430:2:25;12160:69:6;;;15412:21:25;15469:2;15449:18;;;15442:30;15508:31;15488:18;;;15481:59;15557:18;;12160:69:6;15228:353:25;12160:69:6;12275:20;;-1:-1:-1;;;;;;12305:26:6;;;12294:1;12275:20;12341:14;;:27;12384:40;;;;;;12405:11;;12418:5;;;;12384:40;:::i;:::-;;;;;;;;12512:32;12525:11;12538:5;;12512:12;:32::i;12679:173::-;12799:26;;;12776:4;12799:26;;;:13;:26;;;;;;:39;;;;12826:11;;;;12799:39;:::i;:::-;;;;;;;;;;;;;;:46;;-1:-1:-1;12679:173:6;;;;;:::o;9447:793::-;9591:26;;;9564:24;9591:26;;;:13;:26;;;;;;:33;;;;9618:5;;;;9591:33;:::i;:::-;;;;;;;;;;;;;;9642:14;;;;9591:33;;-1:-1:-1;9634:73:6;;;;-1:-1:-1;;;9634:73:6;;15069:2:25;9634:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;9634:73:6;14867:356:25;9634:73:6;9744:16;;-1:-1:-1;;;;;9744:16:6;9725:35;;:76;;;;;9787:2;:14;;;9774:8;;9764:19;;;;;;;:::i;:::-;;;;;;;;:37;9725:76;9717:119;;;;-1:-1:-1;;;9717:119:6;;16390:2:25;9717:119:6;;;16372:21:25;16429:2;16409:18;;;16402:30;16468:32;16448:18;;;16441:60;16518:18;;9717:119:6;16188:354:25;9717:119:6;9868:13;;-1:-1:-1;;;;;;9956:26:6;;;;-1:-1:-1;;9992:14:6;;:27;;;10045:25;;;;;9868:13;10045:25;;;;;;:32;;-1:-1:-1;;;9868:13:6;;;-1:-1:-1;;;;;9868:13:6;;10045:32;;10071:5;;;;10045:32;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;10088:77:6;;-1:-1:-1;;;;;10045:32:6;;-1:-1:-1;;;;;;10088:40:6;;;;;:77;;10129:11;;10142:5;;;;10045:32;;10156:8;;;;10088:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10180:53;10195:11;10208:5;;10215;10222:10;10180:53;;;;;;;;;;:::i;:::-;;;;;;;;9554:686;;;9447:793;;;;;:::o;6031:2275::-;2823:22;;;;;:38;:22;908:1;2823:38;2815:87;;;;-1:-1:-1;;;2815:87:6;;17887:2:25;2815:87:6;;;17869:21:25;17926:2;17906:18;;;17899:30;17965:34;17945:18;;;17938:62;-1:-1:-1;;;18016:18:25;;;18009:34;18060:19;;2815:87:6;17685:400:25;2815:87:6;2912:22;:33;;-1:-1:-1;;2912:33:6;;;;;6249:26:::1;::::0;::::1;-1:-1:-1::0;6249:26:6;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6276:5;;;;6249:33:::1;:::i;:::-;;;;;;;;;;;;;6222:60;;6377:12;:25;6390:11;6377:25;;;;;;;;;;;;;;;6403:5;;6377:32;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;6375:34;;6377:32:::1;::::0;6375:34:::1;::::0;-1:-1:-1;;;;;6375:34:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6365:44:6::1;:6;-1:-1:-1::0;;;;;6365:44:6::1;;6357:83;;;::::0;-1:-1:-1;;;6357:83:6;;18506:2:25;6357:83:6::1;::::0;::::1;18488:21:25::0;18545:2;18525:18;;;18518:30;18584:28;18564:18;;;18557:56;18630:18;;6357:83:6::1;18304:350:25::0;6357:83:6::1;6578:14;::::0;::::1;::::0;:28;6574:1726:::1;;6653:26;::::0;::::1;6622:28;6653:26:::0;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6680:5;;;;6653:33:::1;:::i;:::-;;;;;;;;;;;;;6622:64;;6700:27;6730:44;;;;;;;;6744:11;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6757:6;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6765:8;;6730:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6730:44:6;;-1:-1:-1;6980:11:6;;6700:74;;-1:-1:-1;6980:15:6;6976:436:::1;;7051:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7051:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7051:17:6::1;-1:-1:-1::0;;;7051:17:6::1;-1:-1:-1::0;;;;;;7051:17:6;;;-1:-1:-1;;;;;7051:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7061:6;;7051:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;7146:6;7141:105;7162:11:::0;;:15:::1;::::0;7176:1:::1;::::0;7162:15:::1;:::i;:::-;7158:1;:19;7141:105;;;7220:4;7225:1;7220:7;;;;;;;;:::i;:::-;;;;;;;;;;;7206:4;7211:1;7215;7211:5;;;;:::i;:::-;7206:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21;;:11:::1;::::0;;::::1;;:21:::0;;-1:-1:-1;;;;;7206:21:6;;::::1;-1:-1:-1::0;;;;;;7206:21:6;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;7206:21:6;;;;-1:-1:-1;;;7206:21:6;;;::::1;-1:-1:-1::0;;;;;7206:21:6::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7206:21:6;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;:::i;:::-;;;;;7179:3;;;;;:::i;:::-;;;;7141:105;;;;7335:6;7325:4;7330:1;7325:7;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:16;;:7:::1;::::0;;::::1;;:16:::0;;;;::::1;::::0;-1:-1:-1;;;;;7325:16:6::1;-1:-1:-1::0;;;7325:16:6::1;-1:-1:-1::0;;;;;;7325:16:6;;;-1:-1:-1;;;;;7325:16:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:7;;:16:::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;;;;6976:436;;;7380:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7380:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7380:17:6::1;-1:-1:-1::0;;;7380:17:6::1;-1:-1:-1::0;;;;;;7380:17:6;;;-1:-1:-1;;;;;7380:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7390:6;;7380:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;6976:436;6608:814;;6574:1726;;;7432:14;::::0;;;::::1;;;7428:872;;;7498:72;;;;;;;;7519:8;;:15;;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7537:11;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7560:8;;7550:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7498:72;;;7462:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7489:5;;;;7462:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7462:108:6::1;-1:-1:-1::0;;;7462:108:6::1;-1:-1:-1::0;;;;;;7462:108:6;;;-1:-1:-1;;;;;7462:108:6;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;7654:9;;::::1;::::0;;7462:108:::1;7654:9:::0;;7589:75;;::::1;::::0;::::1;::::0;7603:11;;7616:5;;;;7623:11;;7636:6;;7644:8;;;;7462:33;7589:75:::1;:::i;:::-;;;;;;;;7752:14;:22:::0;;-1:-1:-1;;7752:22:6::1;::::0;;7428:872:::1;;;7809:95;::::0;-1:-1:-1;;;7809:95:6;;-1:-1:-1;;;;;7809:41:6;::::1;::::0;::::1;::::0;7856:9;;7809:95:::1;::::0;7867:11;;7880:5;;;;7887:6;;7895:8;;;;7809:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;7805:485;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:72;;;;;;;;8011:8;;:15;;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8029:11;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8052:8;;8042:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7990:72;;;7954:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7981:5;;;;7954:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7954:108:6::1;-1:-1:-1::0;;;7954:108:6::1;-1:-1:-1::0;;;;;;7954:108:6;;;-1:-1:-1;;;;;7954:108:6;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;8085:72:::1;::::0;::::1;::::0;8099:11;;8112:5;;;;8119:11;;8132:6;;8140:8;;;;8150:6;;8085:72:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;8253:14:6::1;:22:::0;;-1:-1:-1;;8253:22:6::1;::::0;;7805:485:::1;-1:-1:-1::0;;2966:22:6;:37;;-1:-1:-1;;2966:37:6;;;;;-1:-1:-1;;;;;;;6031:2275:6:o;4013:2012::-;2593:19;;:35;:19;908:1;2593:35;2585:81;;;;-1:-1:-1;;;2585:81:6;;20136:2:25;2585:81:6;;;20118:21:25;20175:2;20155:18;;;20148:30;20214:34;20194:18;;;20187:62;-1:-1:-1;;;20265:18:25;;;20258:31;20306:19;;2585:81:6;19934:397:25;2585:81:6;2676:19;:30;;-1:-1:-1;;2676:30:6;950:1;2676:30;;;4239:12;;4255:2:::1;4239:18;4231:75;;;::::0;-1:-1:-1;;;4231:75:6;;20538:2:25;4231:75:6::1;::::0;::::1;20520:21:25::0;20577:2;20557:18;;;20550:30;20616:34;20596:18;;;20589:62;-1:-1:-1;;;20667:18:25;;;20660:42;20719:19;;4231:75:6::1;20336:408:25::0;4231:75:6::1;4420:2;4409:14:::0;::::1;4403:21:::0;-1:-1:-1;;;;;4465:25:6;;::::1;4344:15;4465:25:::0;;;::::1;::::0;;;;;;;::::1;4508:24:::0;4500:92:::1;;;::::0;-1:-1:-1;;;4500:92:6;;20951:2:25;4500:92:6::1;::::0;::::1;20933:21:25::0;20990:2;20970:18;;;20963:30;21029:34;21009:18;;;21002:62;21100:25;21080:18;;;21073:53;21143:19;;4500:92:6::1;20749:419:25::0;4500:92:6::1;4635:26;4688:1:::0;4664:14:::1;:21;:25;:65;;4709:20;4664:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:14;4664:65;4635:94;;4740:14;4760:95;4773:8;4783:10;4795:8;;4760:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;4805:34:6;::::1;::::0;::::1;4841:13:::0;4760:12:::1;:95::i;:::-;4739:116;;;4886:9;4873;:22;;4865:76;;;::::0;-1:-1:-1;;;4865:76:6;;21375:2:25;4865:76:6::1;::::0;::::1;21357:21:25::0;21414:2;21394:18;;;21387:30;21453:34;21433:18;;;21426:62;-1:-1:-1;;;21504:18:25;;;21497:39;21553:19;;4865:76:6::1;21173:405:25::0;4865:76:6::1;4969:23;::::0;::::1;4952:12;4969:23:::0;;;:13:::1;:23;::::0;;;;;;;4993:10:::1;4969:35:::0;;;;;;;4967:37;;4952:12;;4967:37:::1;::::0;-1:-1:-1;;;;;4967:37:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;4952:52;;5055:11;5081:9;5069;:21;;;;:::i;:::-;5055:35:::0;-1:-1:-1;5104:10:6;;5100:163:::1;;5131:12;5149:14;-1:-1:-1::0;;;;;5149:19:6::1;5176:6;5149:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5130:57;;;5209:7;5201:51;;;::::0;-1:-1:-1;;;5201:51:6;;21995:2:25;5201:51:6::1;::::0;::::1;21977:21:25::0;22034:2;22014:18;;;22007:30;22073:33;22053:18;;;22046:61;22124:18;;5201:51:6::1;21793:355:25::0;5201:51:6::1;5116:147;5100:163;5420:13;5435:17:::0;5454:29:::1;5487:40;5513:13;5487:25;:40::i;:::-;5417:110:::0;;-1:-1:-1;5417:110:6;-1:-1:-1;5417:110:6;-1:-1:-1;;5541:16:6;;5537:222:::1;;5574:12;5592:13;-1:-1:-1::0;;;;;5592:18:6::1;5618:12;5592:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:62;;;5654:7;5649:100;;5686:48;::::0;5721:12;;-1:-1:-1;;;;;5686:48:6;::::1;::::0;::::1;::::0;;;::::1;5649:100;5559:200;5537:222;5797:37;::::0;-1:-1:-1;;5814:10:6::1;22380:2:25::0;22376:15;;;22372:24;;5797:37:6::1;::::0;::::1;22360::25::0;22431:15;;;22427:24;22413:12;;;22406:46;5769:25:6::1;::::0;22468:12:25;;5797:37:6::1;;;;;;;;;;;;5769:65;;5874:20;5897:8;;5874:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5930:10;-1:-1:-1::0;;;;;5915:41:6::1;;5957:11;;;;;;;;;;;5970:12;5984:7;5993:5;6000:8;6010:7;5915:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2727:19:6;:34;;-1:-1:-1;;2727:34:6;908:1;2727:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4013:2012:6:o;13844:125::-;13925:37;;;;:20;;:37;;;;;:::i;:::-;;13844:125;:::o;8312:157::-;8433:22;;;8408:6;8433:22;;;:12;:22;;;;;;:29;;;;8456:5;;;;8433:29;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;8433:29:6;;-1:-1:-1;8312:157:6;;;;;:::o;918:238:3:-;1114:35;;;-1:-1:-1;;;1114:35:3;;;23376:51:25;23443:11;;;;23436:27;;;;1114:35:3;;;;;;;;;;23479:12:25;;1114:35:3;;;918:238::o;14960:1322:6:-;15192:4;15209:13;15224;15239:17;15262:41;15288:14;15262:25;:41::i;:::-;15208:95;;;;;;;15313:21;15395:6;:11;;15405:1;15395:11;15391:187;;;15430:32;;-1:-1:-1;;;;;15430:32:6;:48;-1:-1:-1;15430:48:6;15422:99;;;;-1:-1:-1;;;15422:99:6;;23704:2:25;15422:99:6;;;23686:21:25;23743:2;23723:18;;;23716:30;23782:34;23762:18;;;23755:62;-1:-1:-1;;;23833:18:25;;;23826:36;23879:19;;15422:99:6;23502:402:25;15422:99:6;15535:32;15555:12;15535:32;;:::i;:::-;;;15391:187;15714:24;;15655:19;;15714:35;;15741:8;;-1:-1:-1;;;15714:24:6;;-1:-1:-1;;;;;15714:24:6;:35;:::i;:::-;15677:16;:33;:73;;;-1:-1:-1;;;15677:33:6;;-1:-1:-1;;;;;15677:33:6;:73;:::i;:::-;15655:95;-1:-1:-1;15760:34:6;15655:95;15760:34;;:::i;:::-;15959:16;:30;15760:34;;-1:-1:-1;15922:14:6;;15993:6;;15940:49;;-1:-1:-1;;;;;15959:30:6;15760:34;15940:49;:::i;:::-;15939:60;;;;:::i;:::-;16178:16;:30;16148:27;;15922:77;;-1:-1:-1;16091:17:6;;16212:6;;-1:-1:-1;;;;;16178:30:6;;;;16112:63;;-1:-1:-1;;;16148:27:6;;;-1:-1:-1;;;;;16148:27:6;;-1:-1:-1;;;16112:33:6;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16111:107;;;;:::i;:::-;-1:-1:-1;;;;;16091:127:6;;-1:-1:-1;16248:27:6;16091:127;16248:12;:27;:::i;:::-;16236:39;;:9;:39;:::i;:::-;16229:46;14960:1322;-1:-1:-1;;;;;;;;;;;;;14960:1322:6:o;14658:296::-;14758:4;14778:9;14774:174;;;-1:-1:-1;14810:17:6;:24;14803:31;;14774:174;14902:26;;14932:5;;14874:24;14888:10;14874:11;:24;:::i;:::-;14873:55;;;;:::i;:::-;14872:65;;;;:::i;:::-;14865:72;;;;14154:498;14268:26;;;14237:28;14268:26;;;:13;:26;;;;;;:33;;;;14295:5;;;;14268:33;:::i;:::-;;;;;;;;;;;;;14237:64;;14407:239;14414:11;;:15;14407:239;;14481:11;;14445:28;;14476:4;;14481:15;;14495:1;;14481:15;:::i;:::-;14476:21;;;;;;;;:::i;:::-;;;;;;;;;;14445:52;;;;;;;;14476:21;;;;;;;14445:52;;-1:-1:-1;;;;;14445:52:6;;;;-1:-1:-1;;;;;;;;14445:52:6;;;;;;;;;;;;;;;;;;14476:21;14445:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14530:7;:18;;;-1:-1:-1;;;;;14511:48:6;;14560:11;14573:5;;14580:7;:13;;;14595:7;:15;;;14511:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14625:4;:10;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;14625:10:6;;;;;;;;;-1:-1:-1;;;;;;14625:10:6;;;;;;;;;;:::i;:::-;;;;;14431:215;14407:239;;2036:715:3;2117:13;2132:10;2144:18;2164:30;2214:14;:21;2239:2;2214:27;:57;;;;2269:2;2245:14;:21;:26;2214:57;2206:91;;;;-1:-1:-1;;;2206:91:3;;25773:2:25;2206:91:3;;;25755:21:25;25812:2;25792:18;;;25785:30;-1:-1:-1;;;25831:18:25;;;25824:51;25892:18;;2206:91:3;25571:345:25;2206:91:3;2366:1;2350:14;2346:22;2340:29;2330:39;;2417:2;2401:14;2397:23;2391:30;2382:39;;2448:6;:11;;2458:1;2448:11;:26;;;;2463:6;:11;;2473:1;2463:11;2448:26;2440:57;;;;-1:-1:-1;;;2440:57:3;;26123:2:25;2440:57:3;;;26105:21:25;26162:2;26142:18;;;26135:30;-1:-1:-1;;;26181:18:25;;;26174:48;26239:18;;2440:57:3;25921:342:25;2440:57:3;2523:1;2515:5;:9;2507:33;;;;-1:-1:-1;;;2507:33:3;;26470:2:25;2507:33:3;;;26452:21:25;26509:2;26489:18;;;26482:30;-1:-1:-1;;;26528:18:25;;;26521:41;26579:18;;2507:33:3;26268:335:25;2507:33:3;2555:6;:11;;2565:1;2555:11;2551:194;;;-1:-1:-1;;2652:2:3;2632:23;;2626:30;2717:2;2697:23;;2691:30;2551:194;2036:715;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;267:159:25;334:20;;394:6;383:18;;373:29;;363:57;;416:1;413;406:12;363:57;267:159;;;:::o;431:184::-;489:6;542:2;530:9;521:7;517:23;513:32;510:52;;;558:1;555;548:12;510:52;581:28;599:9;581:28;:::i;620:131::-;-1:-1:-1;;;;;695:31:25;;685:42;;675:70;;741:1;738;731:12;756:247;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;923:9;910:23;942:31;967:5;942:31;:::i;1201:347::-;1252:8;1262:6;1316:3;1309:4;1301:6;1297:17;1293:27;1283:55;;1334:1;1331;1324:12;1283:55;-1:-1:-1;1357:20:25;;-1:-1:-1;;;;;1389:30:25;;1386:50;;;1432:1;1429;1422:12;1386:50;1469:4;1461:6;1457:17;1445:29;;1521:3;1514:4;1505:6;1497;1493:19;1489:30;1486:39;1483:59;;;1538:1;1535;1528:12;1483:59;1201:347;;;;;:::o;1553:481::-;1631:6;1639;1647;1700:2;1688:9;1679:7;1675:23;1671:32;1668:52;;;1716:1;1713;1706:12;1668:52;1739:28;1757:9;1739:28;:::i;:::-;1729:38;;1818:2;1807:9;1803:18;1790:32;-1:-1:-1;;;;;1837:6:25;1834:30;1831:50;;;1877:1;1874;1867:12;1831:50;1916:58;1966:7;1957:6;1946:9;1942:22;1916:58;:::i;:::-;1553:481;;1993:8;;-1:-1:-1;1890:84:25;;-1:-1:-1;;;;1553:481:25:o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:718;2405:5;2458:3;2451:4;2443:6;2439:17;2435:27;2425:55;;2476:1;2473;2466:12;2425:55;2512:6;2499:20;-1:-1:-1;;;;;2575:2:25;2571;2568:10;2565:36;;;2581:18;;:::i;:::-;2656:2;2650:9;2624:2;2710:13;;-1:-1:-1;;2706:22:25;;;2730:2;2702:31;2698:40;2686:53;;;2754:18;;;2774:22;;;2751:46;2748:72;;;2800:18;;:::i;:::-;2840:10;2836:2;2829:22;2875:2;2867:6;2860:18;2921:3;2914:4;2909:2;2901:6;2897:15;2893:26;2890:35;2887:55;;;2938:1;2935;2928:12;2887:55;3002:2;2995:4;2987:6;2983:17;2976:4;2968:6;2964:17;2951:54;3049:1;3042:4;3037:2;3029:6;3025:15;3021:26;3014:37;3069:6;3060:15;;;;;;2363:718;;;;:::o;3086:460::-;3171:6;3179;3187;3240:2;3228:9;3219:7;3215:23;3211:32;3208:52;;;3256:1;3253;3246:12;3208:52;3279:28;3297:9;3279:28;:::i;:::-;3269:38;;3358:2;3347:9;3343:18;3330:32;-1:-1:-1;;;;;3377:6:25;3374:30;3371:50;;;3417:1;3414;3407:12;3371:50;3440:49;3481:7;3472:6;3461:9;3457:22;3440:49;:::i;:::-;3430:59;;;3536:2;3525:9;3521:18;3508:32;3498:42;;3086:460;;;;;:::o;3551:471::-;3592:3;3630:5;3624:12;3657:6;3652:3;3645:19;3682:1;3692:162;3706:6;3703:1;3700:13;3692:162;;;3768:4;3824:13;;;3820:22;;3814:29;3796:11;;;3792:20;;3785:59;3721:12;3692:162;;;3872:6;3869:1;3866:13;3863:87;;;3938:1;3931:4;3922:6;3917:3;3913:16;3909:27;3902:38;3863:87;-1:-1:-1;4004:2:25;3983:15;-1:-1:-1;;3979:29:25;3970:39;;;;4011:4;3966:50;;3551:471;-1:-1:-1;;3551:471:25:o;4027:408::-;-1:-1:-1;;;;;4228:32:25;;4210:51;;-1:-1:-1;;;;;4297:31:25;;4292:2;4277:18;;4270:59;4365:2;4360;4345:18;;4338:30;;;-1:-1:-1;;4385:44:25;;4410:18;;4402:6;4385:44;:::i;:::-;4377:52;4027:408;-1:-1:-1;;;;;4027:408:25:o;4440:248::-;4508:6;4516;4569:2;4557:9;4548:7;4544:23;4540:32;4537:52;;;4585:1;4582;4575:12;4537:52;-1:-1:-1;;4608:23:25;;;4678:2;4663:18;;;4650:32;;-1:-1:-1;4440:248:25:o;4693:217::-;4840:2;4829:9;4822:21;4803:4;4860:44;4900:2;4889:9;4885:18;4877:6;4860:44;:::i;4915:188::-;4983:20;;-1:-1:-1;;;;;5032:46:25;;5022:57;;5012:85;;5093:1;5090;5083:12;5108:171;5175:20;;-1:-1:-1;;;;;5224:30:25;;5214:41;;5204:69;;5269:1;5266;5259:12;5284:480;5377:6;5385;5393;5401;5409;5462:3;5450:9;5441:7;5437:23;5433:33;5430:53;;;5479:1;5476;5469:12;5430:53;5502:29;5521:9;5502:29;:::i;:::-;5492:39;;5550:38;5584:2;5573:9;5569:18;5550:38;:::i;:::-;5540:48;;5607:38;5641:2;5630:9;5626:18;5607:38;:::i;:::-;5597:48;;5664:37;5697:2;5686:9;5682:18;5664:37;:::i;:::-;5654:47;;5720:38;5753:3;5742:9;5738:19;5720:38;:::i;:::-;5710:48;;5284:480;;;;;;;;:::o;5769:917::-;5878:6;5886;5894;5902;5910;5963:3;5951:9;5942:7;5938:23;5934:33;5931:53;;;5980:1;5977;5970:12;5931:53;6003:28;6021:9;6003:28;:::i;:::-;5993:38;;6081:2;6070:9;6066:18;6053:32;6094:31;6119:5;6094:31;:::i;:::-;6144:5;-1:-1:-1;6200:2:25;6185:18;;6172:32;-1:-1:-1;;;;;6253:14:25;;;6250:34;;;6280:1;6277;6270:12;6250:34;6303:49;6344:7;6335:6;6324:9;6320:22;6303:49;:::i;:::-;6293:59;;6404:2;6393:9;6389:18;6376:32;6361:47;;6453:7;6446:15;6439:23;6430:7;6427:36;6417:64;;6477:1;6474;6467:12;6417:64;6500:7;;-1:-1:-1;6560:3:25;6545:19;;6532:33;;6577:16;;;6574:36;;;6606:1;6603;6596:12;6574:36;;6629:51;6672:7;6661:8;6650:9;6646:24;6629:51;:::i;:::-;6619:61;;;5769:917;;;;;;;;:::o;6899:392::-;6975:6;6983;7036:2;7024:9;7015:7;7011:23;7007:32;7004:52;;;7052:1;7049;7042:12;7004:52;7075:28;7093:9;7075:28;:::i;:::-;7065:38;;7154:2;7143:9;7139:18;7126:32;-1:-1:-1;;;;;7173:6:25;7170:30;7167:50;;;7213:1;7210;7203:12;7167:50;7236:49;7277:7;7268:6;7257:9;7253:22;7236:49;:::i;:::-;7226:59;;;6899:392;;;;;:::o;7669:319::-;7736:6;7744;7797:2;7785:9;7776:7;7772:23;7768:32;7765:52;;;7813:1;7810;7803:12;7765:52;7836:28;7854:9;7836:28;:::i;:::-;7826:38;;7914:2;7903:9;7899:18;7886:32;7927:31;7952:5;7927:31;:::i;:::-;7977:5;7967:15;;;7669:319;;;;;:::o;8979:789::-;9077:6;9085;9093;9101;9109;9162:2;9150:9;9141:7;9137:23;9133:32;9130:52;;;9178:1;9175;9168:12;9130:52;9201:28;9219:9;9201:28;:::i;:::-;9191:38;;9280:2;9269:9;9265:18;9252:32;-1:-1:-1;;;;;9344:2:25;9336:6;9333:14;9330:34;;;9360:1;9357;9350:12;9330:34;9399:58;9449:7;9440:6;9429:9;9425:22;9399:58;:::i;:::-;9476:8;;-1:-1:-1;9373:84:25;-1:-1:-1;9564:2:25;9549:18;;9536:32;;-1:-1:-1;9580:16:25;;;9577:36;;;9609:1;9606;9599:12;9577:36;;9648:60;9700:7;9689:8;9678:9;9674:24;9648:60;:::i;:::-;8979:789;;;;-1:-1:-1;8979:789:25;;-1:-1:-1;9727:8:25;;9622:86;8979:789;-1:-1:-1;;;8979:789:25:o;9773:180::-;9832:6;9885:2;9873:9;9864:7;9860:23;9856:32;9853:52;;;9901:1;9898;9891:12;9853:52;-1:-1:-1;9924:23:25;;9773:180;-1:-1:-1;9773:180:25:o;9958:388::-;10026:6;10034;10087:2;10075:9;10066:7;10062:23;10058:32;10055:52;;;10103:1;10100;10093:12;10055:52;10142:9;10129:23;10161:31;10186:5;10161:31;:::i;10351:1067::-;10475:6;10483;10491;10499;10507;10515;10523;10531;10584:3;10572:9;10563:7;10559:23;10555:33;10552:53;;;10601:1;10598;10591:12;10552:53;10624:28;10642:9;10624:28;:::i;:::-;10614:38;;10703:2;10692:9;10688:18;10675:32;-1:-1:-1;;;;;10767:2:25;10759:6;10756:14;10753:34;;;10783:1;10780;10773:12;10753:34;10822:58;10872:7;10863:6;10852:9;10848:22;10822:58;:::i;:::-;10899:8;;-1:-1:-1;10796:84:25;-1:-1:-1;10984:2:25;10969:18;;10956:32;;-1:-1:-1;10997:31:25;10956:32;10997:31;:::i;:::-;11047:5;11037:15;;11071:37;11104:2;11093:9;11089:18;11071:37;:::i;:::-;11061:47;;11155:3;11144:9;11140:19;11127:33;11117:43;;11213:3;11202:9;11198:19;11185:33;11169:49;;11243:2;11233:8;11230:16;11227:36;;;11259:1;11256;11249:12;11227:36;;11298:60;11350:7;11339:8;11328:9;11324:24;11298:60;:::i;:::-;10351:1067;;;;-1:-1:-1;10351:1067:25;;-1:-1:-1;10351:1067:25;;;;;;11377:8;-1:-1:-1;;;10351:1067:25:o;11423:1185::-;11563:6;11571;11579;11587;11595;11603;11611;11664:3;11652:9;11643:7;11639:23;11635:33;11632:53;;;11681:1;11678;11671:12;11632:53;11704:28;11722:9;11704:28;:::i;:::-;11694:38;;11783:2;11772:9;11768:18;11755:32;-1:-1:-1;;;;;11847:2:25;11839:6;11836:14;11833:34;;;11863:1;11860;11853:12;11833:34;11886:49;11927:7;11918:6;11907:9;11903:22;11886:49;:::i;:::-;11876:59;;11988:2;11977:9;11973:18;11960:32;11944:48;;12017:2;12007:8;12004:16;12001:36;;;12033:1;12030;12023:12;12001:36;12072:60;12124:7;12113:8;12102:9;12098:24;12072:60;:::i;:::-;12151:8;;-1:-1:-1;12046:86:25;-1:-1:-1;12236:2:25;12221:18;;12208:32;;-1:-1:-1;12249:31:25;12208:32;12249:31;:::i;:::-;12299:5;;-1:-1:-1;12356:3:25;12341:19;;12328:33;;12370;12328;12370;:::i;:::-;12422:7;;-1:-1:-1;12482:3:25;12467:19;;12454:33;;12499:16;;;12496:36;;;12528:1;12525;12518:12;12496:36;;12551:51;12594:7;12583:8;12572:9;12568:24;12551:51;:::i;:::-;12541:61;;;11423:1185;;;;;;;;;;:::o;12613:533::-;12706:6;12714;12722;12730;12783:3;12771:9;12762:7;12758:23;12754:33;12751:53;;;12800:1;12797;12790:12;12751:53;12823:28;12841:9;12823:28;:::i;:::-;12813:38;;12870:37;12903:2;12892:9;12888:18;12870:37;:::i;:::-;12860:47;;12954:2;12943:9;12939:18;12926:32;12916:42;;13009:2;12998:9;12994:18;12981:32;-1:-1:-1;;;;;13028:6:25;13025:30;13022:50;;;13068:1;13065;13058:12;13022:50;13091:49;13132:7;13123:6;13112:9;13108:22;13091:49;:::i;:::-;13081:59;;;12613:533;;;;;;;:::o;13151:460::-;13235:6;13243;13251;13259;13312:3;13300:9;13291:7;13287:23;13283:33;13280:53;;;13329:1;13326;13319:12;13280:53;13352:28;13370:9;13352:28;:::i;:::-;13342:38;;13399:37;13432:2;13421:9;13417:18;13399:37;:::i;:::-;13389:47;;13486:2;13475:9;13471:18;13458:32;13499:31;13524:5;13499:31;:::i;:::-;13151:460;;;;-1:-1:-1;13549:5:25;;13601:2;13586:18;13573:32;;-1:-1:-1;;13151:460:25:o;13616:320::-;13684:6;13737:2;13725:9;13716:7;13712:23;13708:32;13705:52;;;13753:1;13750;13743:12;13705:52;13793:9;13780:23;-1:-1:-1;;;;;13818:6:25;13815:30;13812:50;;;13858:1;13855;13848:12;13812:50;13881:49;13922:7;13913:6;13902:9;13898:22;13881:49;:::i;:::-;13871:59;13616:320;-1:-1:-1;;;;13616:320:25:o;13941:271::-;14124:6;14116;14111:3;14098:33;14080:3;14150:16;;14175:13;;;14150:16;13941:271;-1:-1:-1;13941:271:25:o;14217:380::-;14296:1;14292:12;;;;14339;;;14360:61;;14414:4;14406:6;14402:17;14392:27;;14360:61;14467:2;14459:6;14456:14;14436:18;14433:38;14430:161;;;14513:10;14508:3;14504:20;14501:1;14494:31;14548:4;14545:1;14538:15;14576:4;14573:1;14566:15;14430:161;;14217:380;;;:::o;14602:127::-;14663:10;14658:3;14654:20;14651:1;14644:31;14694:4;14691:1;14684:15;14718:4;14715:1;14708:15;14734:128;14774:3;14805:1;14801:6;14798:1;14795:13;14792:39;;;14811:18;;:::i;:::-;-1:-1:-1;14847:9:25;;14734:128::o;15586:266::-;15674:6;15669:3;15662:19;15726:6;15719:5;15712:4;15707:3;15703:14;15690:43;-1:-1:-1;15778:1:25;15753:16;;;15771:4;15749:27;;;15742:38;;;;15834:2;15813:15;;;-1:-1:-1;;15809:29:25;15800:39;;;15796:50;;15586:266::o;15857:326::-;16052:6;16044;16040:19;16029:9;16022:38;16096:2;16091;16080:9;16076:18;16069:30;16003:4;16116:61;16173:2;16162:9;16158:18;16150:6;16142;16116:61;:::i;16547:609::-;16824:6;16816;16812:19;16801:9;16794:38;16868:3;16863:2;16852:9;16848:18;16841:31;16775:4;16895:62;16952:3;16941:9;16937:19;16929:6;16921;16895:62;:::i;:::-;-1:-1:-1;;;;;16997:6:25;16993:31;16988:2;16977:9;16973:18;16966:59;17073:9;17065:6;17061:22;17056:2;17045:9;17041:18;17034:50;17101:49;17143:6;17135;17127;17101:49;:::i;:::-;17093:57;16547:609;-1:-1:-1;;;;;;;;;16547:609:25:o;17161:519::-;17410:6;17402;17398:19;17387:9;17380:38;17454:3;17449:2;17438:9;17434:18;17427:31;17361:4;17475:62;17532:3;17521:9;17517:19;17509:6;17501;17475:62;:::i;:::-;-1:-1:-1;;;;;17573:31:25;;;;17568:2;17553:18;;17546:59;-1:-1:-1;;;;;;17641:32:25;;;;17636:2;17621:18;;;17614:60;17467:70;17161:519;-1:-1:-1;;;17161:519:25:o;18090:209::-;18128:3;-1:-1:-1;;;;;18209:2:25;18202:5;18198:14;18236:2;18227:7;18224:15;18221:41;;;18242:18;;:::i;:::-;18291:1;18278:15;;18090:209;-1:-1:-1;;;18090:209:25:o;18659:125::-;18699:4;18727:1;18724;18721:8;18718:34;;;18732:18;;:::i;:::-;-1:-1:-1;18769:9:25;;18659:125::o;18789:127::-;18850:10;18845:3;18841:20;18838:1;18831:31;18881:4;18878:1;18871:15;18905:4;18902:1;18895:15;18921:135;18960:3;-1:-1:-1;;18981:17:25;;18978:43;;;19001:18;;:::i;:::-;-1:-1:-1;19048:1:25;19037:13;;18921:135::o;19061:868::-;19412:6;19404;19400:19;19389:9;19382:38;19456:3;19451:2;19440:9;19436:18;19429:31;19363:4;19483:62;19540:3;19529:9;19525:19;19517:6;19509;19483:62;:::i;:::-;-1:-1:-1;;;;;19581:32:25;;19576:2;19561:18;;19554:60;-1:-1:-1;;;;;19650:31:25;;19645:2;19630:18;;19623:59;19719:22;;;19713:3;19698:19;;19691:51;19765:49;19723:6;19799;19791;19765:49;:::i;:::-;19751:63;;19863:9;19855:6;19851:22;19845:3;19834:9;19830:19;19823:51;19891:32;19916:6;19908;19891:32;:::i;:::-;19883:40;19061:868;-1:-1:-1;;;;;;;;;;;19061:868:25:o;22491:725::-;22804:6;22796;22792:19;22781:9;22774:38;22848:3;22843:2;22832:9;22828:18;22821:31;22755:4;22875:45;22915:3;22904:9;22900:19;22892:6;22875:45;:::i;:::-;-1:-1:-1;;;;;22956:32:25;;22951:2;22936:18;;22929:60;-1:-1:-1;;;;;23025:31:25;;23020:2;23005:18;;22998:59;23088:3;23073:19;;23066:35;;;23138:22;;;22976:3;23117:19;;23110:51;23178:32;23142:6;23195;23178:32;:::i;23909:168::-;23949:7;24015:1;24011;24007:6;24003:14;24000:1;23997:21;23992:1;23985:9;23978:17;23974:45;23971:71;;;24022:18;;:::i;:::-;-1:-1:-1;24062:9:25;;23909:168::o;24082:127::-;24143:10;24138:3;24134:20;24131:1;24124:31;24174:4;24171:1;24164:15;24198:4;24195:1;24188:15;24214:120;24254:1;24280;24270:35;;24285:18;;:::i;:::-;-1:-1:-1;24319:9:25;;24214:120::o;24339:287::-;24379:7;-1:-1:-1;;;;;24472:2:25;24469:1;24465:10;24502:2;24499:1;24495:10;24558:3;24554:2;24550:12;24545:3;24542:21;24535:3;24528:11;24521:19;24517:47;24514:73;;;24567:18;;:::i;:::-;24607:13;;24339:287;-1:-1:-1;;;;24339:287:25:o;24631:216::-;24671:1;-1:-1:-1;;;;;24758:2:25;24755:1;24751:10;24780:3;24770:37;;24787:18;;:::i;:::-;24825:10;;24821:20;;;;;24631:216;-1:-1:-1;;24631:216:25:o;24852:582::-;25119:6;25111;25107:19;25096:9;25089:38;25163:3;25158:2;25147:9;25143:18;25136:31;25070:4;25190:62;25247:3;25236:9;25232:19;25224:6;25216;25190:62;:::i;:::-;-1:-1:-1;;;;;25292:6:25;25288:31;25283:2;25272:9;25268:18;25261:59;25368:9;25360:6;25356:22;25351:2;25340:9;25336:18;25329:50;25396:32;25421:6;25413;25396:32;:::i;:::-;25388:40;24852:582;-1:-1:-1;;;;;;;;24852:582:25:o;25439:127::-;25500:10;25495:3;25491:20;25488:1;25481:31;25531:4;25528:1;25521:15;25555:4;25552:1;25545:15"},"gasEstimates":{"creation":{"codeDepositCost":"2369200","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24445","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2353","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"2842","getReceiveLibraryAddress(address)":"414","getReceiveVersion(address)":"469","getSendLibraryAddress(address)":"437","getSendVersion(address)":"449","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2369","isSendingPayload()":"2357","lzEndpointLookup(address)":"2688","mockChainId()":"2446","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2389","oracleFee()":"2383","outboundNonce(uint16,address)":"2831","protocolFeeConfig()":"4464","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"4807","retryPayload(uint16,bytes,bytes)":"infinite","send(uint16,bytes,bytes,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setDefaultAdapterParams(bytes)":"infinite","setDestLzEndpoint(address,address)":"infinite","setOracleFee(uint256)":"22357","setProtocolFee(uint256,uint256)":"44537","setReceiveVersion(uint16)":"326","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"349","storedPayload(uint16,bytes)":"infinite"}},"methodIdentifiers":{"blockNextMsg()":"d23104f1","defaultAdapterParams()":"272bd384","estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getLengthOfQueue(uint16,bytes)":"7f6df8e6","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","inboundNonce(uint16,bytes)":"9924d33b","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","lzEndpointLookup(address)":"c81b383a","mockChainId()":"db14f305","msgsToDeliver(uint16,bytes,uint256)":"12a9ee6b","nextMsgBlocked()":"3e0dd83e","oracleFee()":"f9cd3ceb","outboundNonce(uint16,address)":"b2086499","protocolFeeConfig()":"07d3277f","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","relayerFeeConfig()":"907c5e7e","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setDefaultAdapterParams(bytes)":"fbba623b","setDestLzEndpoint(address,address)":"c08f15a1","setOracleFee(uint256)":"b6d9ef60","setProtocolFee(uint256,uint256)":"240de277","setReceiveVersion(uint16)":"10ddb137","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"2c365e25","setSendVersion(uint16)":"07e0db17","storedPayload(uint16,bytes)":"76a386dc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"}],\"name\":\"PayloadCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PayloadStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"UaForceResumeReceive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"ValueTransferFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockNextMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdapterParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getLengthOfQueue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lzEndpointLookup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"msgsToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextMsgBlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeBP\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerFeeConfig\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasPerByte\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"setDefaultAdapterParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpointAddr\",\"type\":\"address\"}],\"name\":\"setDestLzEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_oracleFee\",\"type\":\"uint256\"}],\"name\":\"setOracleFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nativeBP\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"_baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_gasPerByte\",\"type\":\"uint64\"}],\"name\":\"setRelayerPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"storedPayload\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"payloadLength\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/LZEndpointMock.sol\":\"LZMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n uint8 internal constant _NOT_ENTERED = 1;\\n uint8 internal constant _ENTERED = 2;\\n\\n mapping(address => address) public lzEndpointLookup;\\n\\n uint16 public mockChainId;\\n bool public nextMsgBlocked;\\n\\n // fee config\\n RelayerFeeConfig public relayerFeeConfig;\\n ProtocolFeeConfig public protocolFeeConfig;\\n uint public oracleFee;\\n bytes public defaultAdapterParams;\\n\\n // path = remote addrss + local address\\n // inboundNonce = [srcChainId][path].\\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n //todo: this is a hack\\n // outboundNonce = [dstChainId][srcAddress]\\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n // // outboundNonce = [dstChainId][path].\\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n // storedPayload = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n // msgToDeliver = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n // reentrancy guard\\n uint8 internal _send_entered_state = 1;\\n uint8 internal _receive_entered_state = 1;\\n\\n struct ProtocolFeeConfig {\\n uint zroFee;\\n uint nativeBP;\\n }\\n\\n struct RelayerFeeConfig {\\n uint128 dstPriceRatio; // 10^10\\n uint128 dstGasPriceInWei;\\n uint128 dstNativeAmtCap;\\n uint64 baseGas;\\n uint64 gasPerByte;\\n }\\n\\n struct StoredPayload {\\n uint64 payloadLength;\\n address dstAddress;\\n bytes32 payloadHash;\\n }\\n\\n struct QueuedPayload {\\n address dstAddress;\\n uint64 nonce;\\n bytes payload;\\n }\\n\\n modifier sendNonReentrant() {\\n require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n _send_entered_state = _ENTERED;\\n _;\\n _send_entered_state = _NOT_ENTERED;\\n }\\n\\n modifier receiveNonReentrant() {\\n require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n _receive_entered_state = _ENTERED;\\n _;\\n _receive_entered_state = _NOT_ENTERED;\\n }\\n\\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n constructor(uint16 _chainId) {\\n mockChainId = _chainId;\\n\\n // init config\\n relayerFeeConfig = RelayerFeeConfig({\\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n dstGasPriceInWei: 1e10,\\n dstNativeAmtCap: 1e19,\\n baseGas: 100,\\n gasPerByte: 1\\n });\\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n oracleFee = 1e16;\\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n }\\n\\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\\n require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n address dstAddr;\\n assembly {\\n dstAddr := mload(add(_path, 20))\\n }\\n\\n address lzEndpoint = lzEndpointLookup[dstAddr];\\n require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n // not handle zro token\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n // refund if they send too much\\n uint amount = msg.value - nativeFee;\\n if (amount > 0) {\\n (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n require(success, \\\"LayerZeroMock: failed to refund\\\");\\n }\\n\\n // Mock the process of receiving msg on dst chain\\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n if (dstNativeAmt > 0) {\\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n if (!success) {\\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n }\\n }\\n\\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n bytes memory payload = _payload;\\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n }\\n\\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n // assert and increment the nonce. no message shuffling\\n require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n if (sp.payloadHash != bytes32(0)) {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n // shift all the msgs over so we can treat this like a fifo via array.pop()\\n if (msgs.length > 0) {\\n // extend the array\\n msgs.push(newMsg);\\n\\n // shift all the indexes up for pop()\\n for (uint i = 0; i < msgs.length - 1; i++) {\\n msgs[i + 1] = msgs[i];\\n }\\n\\n // put the newMsg at the bottom of the stack\\n msgs[0] = newMsg;\\n } else {\\n msgs.push(newMsg);\\n }\\n } else if (nextMsgBlocked) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n } else {\\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n }\\n }\\n }\\n\\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n return inboundNonce[_chainID][_path];\\n }\\n\\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n return outboundNonce[_chainID][_srcAddress];\\n }\\n\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n // Relayer Fee\\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n // LayerZero Fee\\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n // return the sum of fees\\n nativeFee = nativeFee + relayerFee + oracleFee;\\n }\\n\\n function getChainId() external view override returns (uint16) {\\n return mockChainId;\\n }\\n\\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n address dstAddress = sp.dstAddress;\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n }\\n\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n return sp.payloadHash != bytes32(0);\\n }\\n\\n function getSendLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function getReceiveLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function isSendingPayload() external view override returns (bool) {\\n return _send_entered_state == _ENTERED;\\n }\\n\\n function isReceivingPayload() external view override returns (bool) {\\n return _receive_entered_state == _ENTERED;\\n }\\n\\n function getConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n address, /*_ua*/\\n uint /*_configType*/\\n ) external pure override returns (bytes memory) {\\n return \\\"\\\";\\n }\\n\\n function getSendVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function getReceiveVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function setConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n uint, /*_configType*/\\n bytes memory /*_config*/\\n ) external override {}\\n\\n function setSendVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function setReceiveVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n // revert if no messages are cached. safeguard malicious UA behaviour\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n emit UaForceResumeReceive(_srcChainId, _path);\\n\\n // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n _clearMsgQue(_srcChainId, _path);\\n }\\n\\n // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n return msgsToDeliver[_srcChainId][_srcAddress].length;\\n }\\n\\n // used to simulate messages received get stored as a payload\\n function blockNextMsg() external {\\n nextMsgBlocked = true;\\n }\\n\\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n lzEndpointLookup[destAddr] = lzEndpointAddr;\\n }\\n\\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n relayerFeeConfig.baseGas = _baseGas;\\n relayerFeeConfig.gasPerByte = _gasPerByte;\\n }\\n\\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n protocolFeeConfig.zroFee = _zroFee;\\n protocolFeeConfig.nativeBP = _nativeBP;\\n }\\n\\n function setOracleFee(uint _oracleFee) external {\\n oracleFee = _oracleFee;\\n }\\n\\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n defaultAdapterParams = _adapterParams;\\n }\\n\\n // --------------------- Internal Functions ---------------------\\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n while (msgs.length > 0) {\\n QueuedPayload memory payload = msgs[msgs.length - 1];\\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n msgs.pop();\\n }\\n }\\n\\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\\n if (_payInZro) {\\n return protocolFeeConfig.zroFee;\\n } else {\\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n }\\n }\\n\\n function _getRelayerFee(\\n uint16, /* _dstChainId */\\n uint16, /* _outboundProofType */\\n address, /* _userApplication */\\n uint _payloadSize,\\n bytes memory _adapterParams\\n ) internal view returns (uint) {\\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n if (txType == 2) {\\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n totalRemoteToken += dstNativeAmt;\\n }\\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n totalRemoteToken += remoteGasTotal;\\n\\n // tokenConversionRate = dstPrice / localPrice\\n // basePrice = totalRemoteToken * tokenConversionRate\\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n return basePrice + _payloadSize * pricePerByte;\\n }\\n}\\n\",\"keccak256\":\"0xed3c937bc98dda9c5c4e05379b87629540e8fa628d0e62c4e3d01e25b47bbedf\",\"license\":\"BUSL-1.1\"},\"contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZMock is LZEndpointMock {\\n constructor(uint16 _chainId) LZEndpointMock(_chainId) {}\\n}\\n\",\"keccak256\":\"0x5b8e06ee92de392b6c452eadba78aa10b02ea4f0b57469119fc007a0b0b449d1\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1154,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"lzEndpointLookup","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"},{"astId":1156,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"mockChainId","offset":0,"slot":"1","type":"t_uint16"},{"astId":1158,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nextMsgBlocked","offset":2,"slot":"1","type":"t_bool"},{"astId":1161,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"relayerFeeConfig","offset":0,"slot":"2","type":"t_struct(RelayerFeeConfig)1217_storage"},{"astId":1164,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"protocolFeeConfig","offset":0,"slot":"4","type":"t_struct(ProtocolFeeConfig)1206_storage"},{"astId":1166,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"oracleFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":1168,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"defaultAdapterParams","offset":0,"slot":"7","type":"t_bytes_storage"},{"astId":1174,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"inboundNonce","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))"},{"astId":1180,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"outboundNonce","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_mapping(t_address,t_uint64))"},{"astId":1187,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"storedPayload","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))"},{"astId":1195,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"msgsToDeliver","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))"},{"astId":1198,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"_send_entered_state","offset":0,"slot":"12","type":"t_uint8"},{"astId":1201,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"_receive_entered_state","offset":1,"slot":"12","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage":{"base":"t_struct(QueuedPayload)1231_storage","encoding":"dynamic_array","label":"struct LZEndpointMock.QueuedPayload[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_uint64)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])","numberOfBytes":"32","value":"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage"},"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.StoredPayload)","numberOfBytes":"32","value":"t_struct(StoredPayload)1224_storage"},"t_mapping(t_bytes_memory_ptr,t_uint64)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_uint16,t_mapping(t_address,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => uint64))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint64)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => uint64))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_uint64)"},"t_struct(ProtocolFeeConfig)1206_storage":{"encoding":"inplace","label":"struct LZEndpointMock.ProtocolFeeConfig","members":[{"astId":1203,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"zroFee","offset":0,"slot":"0","type":"t_uint256"},{"astId":1205,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nativeBP","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_struct(QueuedPayload)1231_storage":{"encoding":"inplace","label":"struct LZEndpointMock.QueuedPayload","members":[{"astId":1226,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstAddress","offset":0,"slot":"0","type":"t_address"},{"astId":1228,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nonce","offset":20,"slot":"0","type":"t_uint64"},{"astId":1230,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"numberOfBytes":"64"},"t_struct(RelayerFeeConfig)1217_storage":{"encoding":"inplace","label":"struct LZEndpointMock.RelayerFeeConfig","members":[{"astId":1208,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstPriceRatio","offset":0,"slot":"0","type":"t_uint128"},{"astId":1210,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstGasPriceInWei","offset":16,"slot":"0","type":"t_uint128"},{"astId":1212,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstNativeAmtCap","offset":0,"slot":"1","type":"t_uint128"},{"astId":1214,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"baseGas","offset":16,"slot":"1","type":"t_uint64"},{"astId":1216,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"gasPerByte","offset":24,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_struct(StoredPayload)1224_storage":{"encoding":"inplace","label":"struct LZEndpointMock.StoredPayload","members":[{"astId":1219,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payloadLength","offset":0,"slot":"0","type":"t_uint64"},{"astId":1221,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstAddress","offset":8,"slot":"0","type":"t_address"},{"astId":1223,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payloadHash","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/MockToken.sol":{"MockToken":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"@_4630":{"entryPoint":null,"id":4630,"parameterSlots":2,"returnSlots":0},"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":140,"id":3400,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":526,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":709,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":815,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":854,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":504,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2757:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1777:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1805:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1787:6:25"},"nodeType":"YulFunctionCall","src":"1787:21:25"},"nodeType":"YulExpressionStatement","src":"1787:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1828:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1824:3:25"},"nodeType":"YulFunctionCall","src":"1824:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1817:6:25"},"nodeType":"YulFunctionCall","src":"1817:30:25"},"nodeType":"YulExpressionStatement","src":"1817:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1867:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1878:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1863:3:25"},"nodeType":"YulFunctionCall","src":"1863:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"1883:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1856:6:25"},"nodeType":"YulFunctionCall","src":"1856:61:25"},"nodeType":"YulExpressionStatement","src":"1856:61:25"},{"nodeType":"YulAssignment","src":"1926:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1938:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1949:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1934:3:25"},"nodeType":"YulFunctionCall","src":"1934:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1926:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1754:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1768:4:25","type":""}],"src":"1603:355:25"},{"body":{"nodeType":"YulBlock","src":"2011:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2046:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2067:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2079:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2070:3:25"},"nodeType":"YulFunctionCall","src":"2070:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2060:6:25"},"nodeType":"YulFunctionCall","src":"2060:31:25"},"nodeType":"YulExpressionStatement","src":"2060:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2111:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2114:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2104:6:25"},"nodeType":"YulFunctionCall","src":"2104:15:25"},"nodeType":"YulExpressionStatement","src":"2104:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2139:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2142:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2132:6:25"},"nodeType":"YulFunctionCall","src":"2132:15:25"},"nodeType":"YulExpressionStatement","src":"2132:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2027:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2034:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2030:3:25"},"nodeType":"YulFunctionCall","src":"2030:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2024:2:25"},"nodeType":"YulFunctionCall","src":"2024:13:25"},"nodeType":"YulIf","src":"2021:136:25"},{"nodeType":"YulAssignment","src":"2166:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2177:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"2180:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2173:3:25"},"nodeType":"YulFunctionCall","src":"2173:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2166:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1994:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"1997:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2003:3:25","type":""}],"src":"1963:225:25"},{"body":{"nodeType":"YulBlock","src":"2294:76:25","statements":[{"nodeType":"YulAssignment","src":"2304:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2316:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2327:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2312:3:25"},"nodeType":"YulFunctionCall","src":"2312:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2304:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2346:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2357:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2339:6:25"},"nodeType":"YulFunctionCall","src":"2339:25:25"},"nodeType":"YulExpressionStatement","src":"2339:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2263:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2274:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2285:4:25","type":""}],"src":"2193:177:25"},{"body":{"nodeType":"YulBlock","src":"2430:325:25","statements":[{"nodeType":"YulAssignment","src":"2440:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2454:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2457:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2450:3:25"},"nodeType":"YulFunctionCall","src":"2450:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2440:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2471:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2501:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2507:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2497:3:25"},"nodeType":"YulFunctionCall","src":"2497:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2475:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2548:31:25","statements":[{"nodeType":"YulAssignment","src":"2550:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2564:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2572:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2560:3:25"},"nodeType":"YulFunctionCall","src":"2560:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2550:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2528:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2521:6:25"},"nodeType":"YulFunctionCall","src":"2521:26:25"},"nodeType":"YulIf","src":"2518:61:25"},{"body":{"nodeType":"YulBlock","src":"2638:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2659:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2666:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2671:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2662:3:25"},"nodeType":"YulFunctionCall","src":"2662:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2652:6:25"},"nodeType":"YulFunctionCall","src":"2652:31:25"},"nodeType":"YulExpressionStatement","src":"2652:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2703:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2706:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2696:6:25"},"nodeType":"YulFunctionCall","src":"2696:15:25"},"nodeType":"YulExpressionStatement","src":"2696:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2731:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2734:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2724:6:25"},"nodeType":"YulFunctionCall","src":"2724:15:25"},"nodeType":"YulExpressionStatement","src":"2724:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2594:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2617:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2625:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2614:2:25"},"nodeType":"YulFunctionCall","src":"2614:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2591:2:25"},"nodeType":"YulFunctionCall","src":"2591:38:25"},"nodeType":"YulIf","src":"2588:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2410:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2419:6:25","type":""}],"src":"2375:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000ced38038062000ced8339810160408190526200003491620002c5565b8151829082906200004d90600390602085019062000152565b5080516200006390600490602084019062000152565b50505062000084336b033b2e3c9fd0803ce80000006200008c60201b60201c565b505062000393565b6001600160a01b038216620000e75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000fb91906200032f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620001609062000356565b90600052602060002090601f016020900481019282620001845760008555620001cf565b82601f106200019f57805160ff1916838001178555620001cf565b82800160010185558215620001cf579182015b82811115620001cf578251825591602001919060010190620001b2565b50620001dd929150620001e1565b5090565b5b80821115620001dd5760008155600101620001e2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022057600080fd5b81516001600160401b03808211156200023d576200023d620001f8565b604051601f8301601f19908116603f01168101908282118183101715620002685762000268620001f8565b816040528381526020925086838588010111156200028557600080fd5b600091505b83821015620002a957858201830151818301840152908201906200028a565b83821115620002bb5760008385830101525b9695505050505050565b60008060408385031215620002d957600080fd5b82516001600160401b0380821115620002f157600080fd5b620002ff868387016200020e565b935060208501519150808211156200031657600080fd5b5062000325858286016200020e565b9150509250929050565b600082198211156200035157634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200036b57607f821691505b602082108114156200038d57634e487b7160e01b600052602260045260246000fd5b50919050565b61094a80620003a36000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220d350a2881b88d96973635c8ba61f870672c14e6174c25fb0f313da0f13e2dad564736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xCED CODESIZE SUB DUP1 PUSH3 0xCED DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x2C5 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH3 0x4D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x152 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x63 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x152 JUMP JUMPDEST POP POP POP PUSH3 0x84 CALLER PUSH12 0x33B2E3C9FD0803CE8000000 PUSH3 0x8C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH3 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0xE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0xFB SWAP2 SWAP1 PUSH3 0x32F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x160 SWAP1 PUSH3 0x356 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x184 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1CF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x19F JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1CF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1CF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1CF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B2 JUMP JUMPDEST POP PUSH3 0x1DD SWAP3 SWAP2 POP PUSH3 0x1E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DD JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x23D JUMPI PUSH3 0x23D PUSH3 0x1F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x268 JUMPI PUSH3 0x268 PUSH3 0x1F8 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x2A9 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x28A JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x2BB JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x2D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2FF DUP7 DUP4 DUP8 ADD PUSH3 0x20E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x325 DUP6 DUP3 DUP7 ADD PUSH3 0x20E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x351 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x36B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x38D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94A DUP1 PUSH3 0x3A3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 POP LOG2 DUP9 SHL DUP9 0xD9 PUSH10 0x73635C8BA61F870672C1 0x4E PUSH2 0x74C2 0x5F 0xB0 RETURN SGT 0xDA 0xF SGT 0xE2 0xDA 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"133:332:23:-:0;;;189:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13:10;;251:5:23;;258:7;;2042:13:10;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;277:41:23::1;283:10;295:22;277:5;;;:41;;:::i;:::-;189:162:::0;;133:332;;8567:535:10;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;1805:2:25;8642:65:10;;;1787:21:25;1844:2;1824:18;;;1817:30;1883:33;1863:18;;;1856:61;1934:18;;8642:65:10;;;;;;;;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;2339:25:25;;;8999:37:10;;2312:18:25;8999:37:10;;;;;;;8567:535;;:::o;133:332:23:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;133:332:23;;;-1:-1:-1;133:332:23;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1963:225::-;2003:3;2034:1;2030:6;2027:1;2024:13;2021:136;;;2079:10;2074:3;2070:20;2067:1;2060:31;2114:4;2111:1;2104:15;2142:4;2139:1;2132:15;2021:136;-1:-1:-1;2173:9:25;;1963:225::o;2375:380::-;2454:1;2450:12;;;;2497;;;2518:61;;2572:4;2564:6;2560:17;2550:27;;2518:61;2625:2;2617:6;2614:14;2594:18;2591:38;2588:161;;;2671:10;2666:3;2662:20;2659:1;2652:31;2706:4;2703:1;2696:15;2734:4;2731:1;2724:15;2588:161;;2375:380;;;:::o;:::-;133:332:23;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":902,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":1736,"id":3400,"parameterSlots":2,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1194,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1316,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":859,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":594,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":717,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":654,"id":3225,"parameterSlots":2,"returnSlots":1},"@mint_4643":{"entryPoint":688,"id":4643,"parameterSlots":2,"returnSlots":0},"@name_3051":{"entryPoint":448,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":702,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":618,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":845,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2012,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2176,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2082,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2040,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1927,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2286,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2227,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6166:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"},{"body":{"nodeType":"YulBlock","src":"5983:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6011:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:25"},"nodeType":"YulFunctionCall","src":"5993:21:25"},"nodeType":"YulExpressionStatement","src":"5993:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6034:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6045:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6030:3:25"},"nodeType":"YulFunctionCall","src":"6030:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6050:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6023:6:25"},"nodeType":"YulFunctionCall","src":"6023:30:25"},"nodeType":"YulExpressionStatement","src":"6023:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6069:3:25"},"nodeType":"YulFunctionCall","src":"6069:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"6089:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6062:6:25"},"nodeType":"YulFunctionCall","src":"6062:61:25"},"nodeType":"YulExpressionStatement","src":"6062:61:25"},{"nodeType":"YulAssignment","src":"6132:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6155:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6140:3:25"},"nodeType":"YulFunctionCall","src":"6140:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6132:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5960:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5974:4:25","type":""}],"src":"5809:355:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220d350a2881b88d96973635c8ba61f870672c14e6174c25fb0f313da0f13e2dad564736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 POP LOG2 DUP9 SHL DUP9 0xD9 PUSH10 0x73635C8BA61F870672C1 0x4E PUSH2 0x74C2 0x5F 0xB0 RETURN SGT 0xDA 0xF SGT 0xE2 0xDA 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"133:332:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:10;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;379:84:23:-;;;;;;:::i;:::-;;:::i;:::-;;3406:125:10;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;379:84:23:-;437:19;443:3;448:7;437:5;:19::i;:::-;379:84;;:::o;2365:102:10:-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;8567:535;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;6011:2:25;8642:65:10;;;5993:21:25;6050:2;6030:18;;;6023:30;6089:33;6069:18;;;6062:61;6140:18;;8642:65:10;5809:355:25;8642:65:10;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1391:25:25;;;8999:37:10;;1364:18:25;8999:37:10;;;;;;;379:84:23;;:::o;14:597:25:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"475600","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"27089","mint(address,uint256)":"50800","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/MockToken.sol\":\"MockToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/mocks/MockToken.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.4;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\n// this is a MOCK\\ncontract MockToken is ERC20 {\\n // this is a MOCK\\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {\\n _mint(msg.sender, 1_000_000_000 * 10**18); // mint 1B to deployoooor\\n }\\n\\n // this is a MOCK\\n function mint(address _to, uint _amount) public {\\n _mint(_to, _amount);\\n }\\n}\\n\",\"keccak256\":\"0x3c25fa8f0d860c6e67f221842303ae07fd7caa94fd9388a39e6d009923c7b6ba\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/VotingEscrowRemapperMock.sol":{"VotingEscrowRemapperMock":{"abi":[{"inputs":[{"internalType":"address","name":"_votingEscrow","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"_localToRemoteAddressMap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"}],"name":"getRemoteUser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVotingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_remoteUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"}],"name":"setRemoteUser","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_4670":{"entryPoint":null,"id":4670,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":84,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:306:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:25","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:25"},"nodeType":"YulFunctionCall","src":"143:12:25"},"nodeType":"YulExpressionStatement","src":"143:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:25"},"nodeType":"YulFunctionCall","src":"112:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:25"},"nodeType":"YulFunctionCall","src":"108:32:25"},"nodeType":"YulIf","src":"105:52:25"},{"nodeType":"YulVariableDeclaration","src":"166:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:25"},"nodeType":"YulFunctionCall","src":"179:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:25"},"nodeType":"YulFunctionCall","src":"260:12:25"},"nodeType":"YulExpressionStatement","src":"260:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:25"},"nodeType":"YulFunctionCall","src":"235:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:25"},"nodeType":"YulFunctionCall","src":"224:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:25"},"nodeType":"YulFunctionCall","src":"214:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:25"},"nodeType":"YulFunctionCall","src":"207:50:25"},"nodeType":"YulIf","src":"204:70:25"},{"nodeType":"YulAssignment","src":"283:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:25","type":""}],"src":"14:290:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161028f38038061028f83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6101fc806100936000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806308b0308a14610051578063bda75c3814610080578063d0ff58ba146100ba578063e996a30614610107575b600080fd5b600054610064906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61006461008e366004610169565b61ffff1660009081526001602090815260408083206001600160a01b0394851684529091529020541690565b6101056100c8366004610169565b61ffff166000908152600160209081526040808320338452909152902080546001600160a01b0319166001600160a01b0392909216919091179055565b005b61006461011536600461019c565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b80356001600160a01b038116811461015257600080fd5b919050565b803561ffff8116811461015257600080fd5b6000806040838503121561017c57600080fd5b6101858361013b565b915061019360208401610157565b90509250929050565b600080604083850312156101af57600080fd5b6101b883610157565b91506101936020840161013b56fea26469706673582212204a6d7bcc4c48bda5a47e6e28acece922b606254dcb632951853259eb31f9111064736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x28F CODESIZE SUB DUP1 PUSH2 0x28F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x84 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1FC DUP1 PUSH2 0x93 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B0308A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBDA75C38 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0xD0FF58BA EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0xE996A306 EQ PUSH2 0x107 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x64 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0x8E CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH2 0x105 PUSH2 0xC8 CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x64 PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x19C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185 DUP4 PUSH2 0x13B JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x157 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B8 DUP4 PUSH2 0x157 JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x13B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A PUSH14 0x7BCC4C48BDA5A47E6E28ACECE922 0xB6 MOD 0x25 0x4D 0xCB PUSH4 0x29518532 MSIZE 0xEB BALANCE 0xF9 GT LT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"122:626:24:-:0;;;315:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;360:15;:46;;-1:-1:-1;;;;;;360:46:24;-1:-1:-1;;;;;360:46:24;;;;;;;;;;122:626;;14:290:25;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:25;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:25:o;:::-;122:626:24;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_localToRemoteAddressMap_4658":{"entryPoint":null,"id":4658,"parameterSlots":0,"returnSlots":0},"@getRemoteUser_4686":{"entryPoint":null,"id":4686,"parameterSlots":2,"returnSlots":1},"@getVotingEscrow_4652":{"entryPoint":null,"id":4652,"parameterSlots":0,"returnSlots":0},"@setRemoteUser_4703":{"entryPoint":null,"id":4703,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":315,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_uint16":{"entryPoint":361,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_address":{"entryPoint":412,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":343,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1317:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"137:102:25","statements":[{"nodeType":"YulAssignment","src":"147:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"155:3:25"},"nodeType":"YulFunctionCall","src":"155:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"147:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"189:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"204:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"220:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"225:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"216:3:25"},"nodeType":"YulFunctionCall","src":"216:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"229:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"212:3:25"},"nodeType":"YulFunctionCall","src":"212:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"200:3:25"},"nodeType":"YulFunctionCall","src":"200:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"182:6:25"},"nodeType":"YulFunctionCall","src":"182:51:25"},"nodeType":"YulExpressionStatement","src":"182:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"106:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"117:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"128:4:25","type":""}],"src":"14:225:25"},{"body":{"nodeType":"YulBlock","src":"293:124:25","statements":[{"nodeType":"YulAssignment","src":"303:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"325:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"312:12:25"},"nodeType":"YulFunctionCall","src":"312:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"303:5:25"}]},{"body":{"nodeType":"YulBlock","src":"395:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"404:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"407:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"397:6:25"},"nodeType":"YulFunctionCall","src":"397:12:25"},"nodeType":"YulExpressionStatement","src":"397:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"354:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"365:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"380:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"385:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"376:3:25"},"nodeType":"YulFunctionCall","src":"376:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"389:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"372:3:25"},"nodeType":"YulFunctionCall","src":"372:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"361:3:25"},"nodeType":"YulFunctionCall","src":"361:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"351:2:25"},"nodeType":"YulFunctionCall","src":"351:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"344:6:25"},"nodeType":"YulFunctionCall","src":"344:50:25"},"nodeType":"YulIf","src":"341:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"272:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"283:5:25","type":""}],"src":"244:173:25"},{"body":{"nodeType":"YulBlock","src":"470:111:25","statements":[{"nodeType":"YulAssignment","src":"480:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"502:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"489:12:25"},"nodeType":"YulFunctionCall","src":"489:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"480:5:25"}]},{"body":{"nodeType":"YulBlock","src":"559:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"568:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"571:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"561:6:25"},"nodeType":"YulFunctionCall","src":"561:12:25"},"nodeType":"YulExpressionStatement","src":"561:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"531:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"542:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"549:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"538:3:25"},"nodeType":"YulFunctionCall","src":"538:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"528:2:25"},"nodeType":"YulFunctionCall","src":"528:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"521:6:25"},"nodeType":"YulFunctionCall","src":"521:37:25"},"nodeType":"YulIf","src":"518:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"449:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"460:5:25","type":""}],"src":"422:159:25"},{"body":{"nodeType":"YulBlock","src":"672:172:25","statements":[{"body":{"nodeType":"YulBlock","src":"718:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:25"},"nodeType":"YulFunctionCall","src":"720:12:25"},"nodeType":"YulExpressionStatement","src":"720:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"693:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"702:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"689:3:25"},"nodeType":"YulFunctionCall","src":"689:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"714:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"685:3:25"},"nodeType":"YulFunctionCall","src":"685:32:25"},"nodeType":"YulIf","src":"682:52:25"},{"nodeType":"YulAssignment","src":"743:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"772:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"753:18:25"},"nodeType":"YulFunctionCall","src":"753:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"743:6:25"}]},{"nodeType":"YulAssignment","src":"791:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"823:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"834:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"819:3:25"},"nodeType":"YulFunctionCall","src":"819:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"801:17:25"},"nodeType":"YulFunctionCall","src":"801:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"791:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"630:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"641:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"653:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"661:6:25","type":""}],"src":"586:258:25"},{"body":{"nodeType":"YulBlock","src":"950:102:25","statements":[{"nodeType":"YulAssignment","src":"960:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"983:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"968:3:25"},"nodeType":"YulFunctionCall","src":"968:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"960:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1002:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1017:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1033:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1038:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1029:3:25"},"nodeType":"YulFunctionCall","src":"1029:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"1042:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1025:3:25"},"nodeType":"YulFunctionCall","src":"1025:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1013:3:25"},"nodeType":"YulFunctionCall","src":"1013:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"995:6:25"},"nodeType":"YulFunctionCall","src":"995:51:25"},"nodeType":"YulExpressionStatement","src":"995:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"919:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"930:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"941:4:25","type":""}],"src":"849:203:25"},{"body":{"nodeType":"YulBlock","src":"1143:172:25","statements":[{"body":{"nodeType":"YulBlock","src":"1189:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1198:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1201:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1191:6:25"},"nodeType":"YulFunctionCall","src":"1191:12:25"},"nodeType":"YulExpressionStatement","src":"1191:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1164:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1173:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1160:3:25"},"nodeType":"YulFunctionCall","src":"1160:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1185:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1156:3:25"},"nodeType":"YulFunctionCall","src":"1156:32:25"},"nodeType":"YulIf","src":"1153:52:25"},{"nodeType":"YulAssignment","src":"1214:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1242:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1224:17:25"},"nodeType":"YulFunctionCall","src":"1224:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1214:6:25"}]},{"nodeType":"YulAssignment","src":"1261:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1294:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1305:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1290:3:25"},"nodeType":"YulFunctionCall","src":"1290:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1271:18:25"},"nodeType":"YulFunctionCall","src":"1271:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1261:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1101:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1112:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1124:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1132:6:25","type":""}],"src":"1057:258:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c806308b0308a14610051578063bda75c3814610080578063d0ff58ba146100ba578063e996a30614610107575b600080fd5b600054610064906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61006461008e366004610169565b61ffff1660009081526001602090815260408083206001600160a01b0394851684529091529020541690565b6101056100c8366004610169565b61ffff166000908152600160209081526040808320338452909152902080546001600160a01b0319166001600160a01b0392909216919091179055565b005b61006461011536600461019c565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b80356001600160a01b038116811461015257600080fd5b919050565b803561ffff8116811461015257600080fd5b6000806040838503121561017c57600080fd5b6101858361013b565b915061019360208401610157565b90509250929050565b600080604083850312156101af57600080fd5b6101b883610157565b91506101936020840161013b56fea26469706673582212204a6d7bcc4c48bda5a47e6e28acece922b606254dcb632951853259eb31f9111064736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B0308A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBDA75C38 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0xD0FF58BA EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0xE996A306 EQ PUSH2 0x107 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x64 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0x8E CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH2 0x105 PUSH2 0xC8 CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x64 PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x19C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185 DUP4 PUSH2 0x13B JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x157 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B8 DUP4 PUSH2 0x157 JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x13B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A PUSH14 0x7BCC4C48BDA5A47E6E28ACECE922 0xB6 MOD 0x25 0x4D 0xCB PUSH4 0x29518532 MSIZE 0xEB BALANCE 0xF9 GT LT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"122:626:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:36;;;;;-1:-1:-1;;;;;187:36:24;;;;;;-1:-1:-1;;;;;200:32:25;;;182:51;;170:2;155:18;187:36:24;;;;;;;419:168;;;;;;:::i;:::-;531:37;;505:7;531:37;;;:24;:37;;;;;;;;-1:-1:-1;;;;;531:49:24;;;;;;;;;;;;;419:168;593:153;;;;;;:::i;:::-;676:37;;;;;;:24;:37;;;;;;;;714:10;676:49;;;;;;;:63;;-1:-1:-1;;;;;;676:63:24;-1:-1:-1;;;;;676:63:24;;;;;;;;;;593:153;;;230:78;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;230:78:24;;;244:173:25;312:20;;-1:-1:-1;;;;;361:31:25;;351:42;;341:70;;407:1;404;397:12;341:70;244:173;;;:::o;422:159::-;489:20;;549:6;538:18;;528:29;;518:57;;571:1;568;561:12;586:258;653:6;661;714:2;702:9;693:7;689:23;685:32;682:52;;;730:1;727;720:12;682:52;753:29;772:9;753:29;:::i;:::-;743:39;;801:37;834:2;823:9;819:18;801:37;:::i;:::-;791:47;;586:258;;;;;:::o;1057:::-;1124:6;1132;1185:2;1173:9;1164:7;1160:23;1156:32;1153:52;;;1201:1;1198;1191:12;1153:52;1224:28;1242:9;1224:28;:::i;:::-;1214:38;;1271;1305:2;1294:9;1290:18;1271:38;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"101600","executionCost":"infinite","totalCost":"infinite"},"external":{"_localToRemoteAddressMap(uint16,address)":"infinite","getRemoteUser(address,uint16)":"infinite","getVotingEscrow()":"2303","setRemoteUser(address,uint16)":"infinite"}},"methodIdentifiers":{"_localToRemoteAddressMap(uint16,address)":"e996a306","getRemoteUser(address,uint16)":"bda75c38","getVotingEscrow()":"08b0308a","setRemoteUser(address,uint16)":"d0ff58ba"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_votingEscrow\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_localToRemoteAddressMap\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"}],\"name\":\"getRemoteUser\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVotingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_remoteUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"}],\"name\":\"setRemoteUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getVotingEscrow()\":{\"notice\":\"Returns Voting Escrow contract address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/VotingEscrowRemapperMock.sol\":\"VotingEscrowRemapperMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"},\"contracts/mocks/VotingEscrowRemapperMock.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../interfaces/IVotingEscrowRemapper.sol\\\";\\n\\ncontract VotingEscrowRemapperMock is IVotingEscrowRemapper {\\n IVotingEscrow public getVotingEscrow;\\n\\n mapping(uint16 => mapping(address => address)) public _localToRemoteAddressMap;\\n\\n constructor(address _votingEscrow) {\\n getVotingEscrow = IVotingEscrow(_votingEscrow);\\n }\\n\\n function getRemoteUser(address _localUser, uint16 _dstChainId) external view returns (address) {\\n return _localToRemoteAddressMap[_dstChainId][_localUser];\\n }\\n\\n function setRemoteUser(address _remoteUser, uint16 _dstChainId) external {\\n _localToRemoteAddressMap[_dstChainId][msg.sender] = _remoteUser;\\n }\\n}\\n\",\"keccak256\":\"0x839e702639239e31523f076c15c7165abba0ddd39e050e0742b47c4ad96946f5\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4652,"contract":"contracts/mocks/VotingEscrowRemapperMock.sol:VotingEscrowRemapperMock","label":"getVotingEscrow","offset":0,"slot":"0","type":"t_contract(IVotingEscrow)4518"},{"astId":4658,"contract":"contracts/mocks/VotingEscrowRemapperMock.sol:VotingEscrowRemapperMock","label":"_localToRemoteAddressMap","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_mapping(t_address,t_address))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(IVotingEscrow)4518":{"encoding":"inplace","label":"contract IVotingEscrow","numberOfBytes":"20"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint16,t_mapping(t_address,t_address))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => address))","numberOfBytes":"32","value":"t_mapping(t_address,t_address)"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"}}},"userdoc":{"kind":"user","methods":{"getVotingEscrow()":{"notice":"Returns Voting Escrow contract address."}},"version":1}}}}}} \ No newline at end of file diff --git a/tasks/20230524-base-lz-omni-voting-escrow-child/index.ts b/tasks/20230524-base-lz-omni-voting-escrow-child/index.ts new file mode 100644 index 00000000..715b6d77 --- /dev/null +++ b/tasks/20230524-base-lz-omni-voting-escrow-child/index.ts @@ -0,0 +1,9 @@ +import { Task, TaskRunOptions } from '@src'; +import { OmniVotingEscrowChildDeployment } from './input'; + +export default async (task: Task, { force, from }: TaskRunOptions = {}): Promise => { + const input = task.input() as OmniVotingEscrowChildDeployment; + + const args = [input.LayerZeroEndpoint, input.L2LayerZeroBridgeForwarder]; + await task.deployAndVerify('OmniVotingEscrowChild', args, from, force); +}; diff --git a/tasks/20230524-base-lz-omni-voting-escrow-child/input.ts b/tasks/20230524-base-lz-omni-voting-escrow-child/input.ts new file mode 100644 index 00000000..0e712d6e --- /dev/null +++ b/tasks/20230524-base-lz-omni-voting-escrow-child/input.ts @@ -0,0 +1,16 @@ +import { Task, TaskMode } from '@src'; + +export type OmniVotingEscrowChildDeployment = { + LayerZeroEndpoint: string; + L2LayerZeroBridgeForwarder: string; +}; + +const L2LayerZeroBridgeForwarder = new Task('20230404-l2-layer0-bridge-forwarder', TaskMode.READ_ONLY); + +export default { + L2LayerZeroBridgeForwarder, + // https://basescan.org/address/0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7 + base: { + LayerZeroEndpoint: '0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7', + }, +}; diff --git a/tasks/20230524-base-lz-omni-voting-escrow-child/output/base.json b/tasks/20230524-base-lz-omni-voting-escrow-child/output/base.json new file mode 100644 index 00000000..96fc3c88 --- /dev/null +++ b/tasks/20230524-base-lz-omni-voting-escrow-child/output/base.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrowChild": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-base-lz-omni-voting-escrow-child/readme.md b/tasks/20230524-base-lz-omni-voting-escrow-child/readme.md new file mode 100644 index 00000000..46013384 --- /dev/null +++ b/tasks/20230524-base-lz-omni-voting-escrow-child/readme.md @@ -0,0 +1,9 @@ +# 2023-05-24 - LayerZero OmniVotingEscrowChild (base) + +Deployment of the `OmniVotingEscrowChild` for Base. +Same as [`OmniVotingEscrowChild`](../20230524-lz-omni-voting-escrow-child/); the deployed artifact was compiled with a [different license](https://github.com/LayerZero-Labs/lz_gauges/commit/c6092aa851121bf499880a7df07d8b917f19840e) for Base, which results in a slightly different build-info artifact. + +## Useful Files + +- [Base mainnet addresses](./output/base.json) +- [`OmniVotingEscrowChild` artifact](./artifact/OmniVotingEscrowChild.json) diff --git a/tasks/20230524-lz-omni-voting-escrow-child/artifact/OmniVotingEscrowChild.json b/tasks/20230524-lz-omni-voting-escrow-child/artifact/OmniVotingEscrowChild.json new file mode 100644 index 00000000..d44200d9 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/artifact/OmniVotingEscrowChild.json @@ -0,0 +1,909 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "OmniVotingEscrowChild", + "sourceName": "contracts/OmniVotingEscrowChild.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_lzEndpoint", + "type": "address" + }, + { + "internalType": "address", + "name": "_delegationHook", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_reason", + "type": "bytes" + } + ], + "name": "MessageFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "_payloadHash", + "type": "bytes32" + } + ], + "name": "RetryMessageSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "uint16", + "name": "_type", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minDstGas", + "type": "uint256" + } + ], + "name": "SetMinDstGas", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "precrime", + "type": "address" + } + ], + "name": "SetPrecrime", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_path", + "type": "bytes" + } + ], + "name": "SetTrustedRemote", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_remoteAddress", + "type": "bytes" + } + ], + "name": "SetTrustedRemoteAddress", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "srcChainId", + "type": "uint16" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "totalSupplyPoint", + "type": "tuple" + } + ], + "name": "TotalSupplyFromChain", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "srcChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "userPoint", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "totalSupplyPoint", + "type": "tuple" + } + ], + "name": "UserBalFromChain", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "delegationHook", + "outputs": [ + { + "internalType": "contract IL2LayerZeroDelegation", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "name": "failedMessages", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + } + ], + "name": "forceResumeReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_chainId", + "type": "uint16" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_configType", + "type": "uint256" + } + ], + "name": "getConfig", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "internalType": "struct IVotingEscrow.Point", + "name": "_point", + "type": "tuple" + } + ], + "name": "getPointValue", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + } + ], + "name": "getTrustedRemoteAddress", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + } + ], + "name": "isTrustedRemote", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "locked__end", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lzEndpoint", + "outputs": [ + { + "internalType": "contract ILayerZeroEndpoint", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "lzReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "name": "minDstGasLookup", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "nonblockingLzReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "precrime", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "retryMessage", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_chainId", + "type": "uint16" + }, + { + "internalType": "uint256", + "name": "_configType", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_config", + "type": "bytes" + } + ], + "name": "setConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_packetType", + "type": "uint16" + }, + { + "internalType": "uint256", + "name": "_minGas", + "type": "uint256" + } + ], + "name": "setMinDstGas", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_precrime", + "type": "address" + } + ], + "name": "setPrecrime", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + } + ], + "name": "setReceiveVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + } + ], + "name": "setSendVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_path", + "type": "bytes" + } + ], + "name": "setTrustedRemote", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_remoteAddress", + "type": "bytes" + } + ], + "name": "setTrustedRemoteAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupplyPoint", + "outputs": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "name": "trustedRemoteLookup", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userPoints", + "outputs": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60c0604052600a805463ffffffff1916620100001790553480156200002357600080fd5b50604051620027e5380380620027e583398101604081905262000046916200015e565b81806200005333620000f1565b6001600160a01b03908116608052821615159050620000de5760405162461bcd60e51b815260206004820152603460248201527f4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f60448201527f6e20686f6f6b2063616e6e6f7420626520307830000000000000000000000000606482015260840160405180910390fd5b6001600160a01b031660a0525062000196565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200015957600080fd5b919050565b600080604083850312156200017257600080fd5b6200017d8362000141565b91506200018d6020840162000141565b90509250929050565b60805160a0516125f1620001f460003960008181610376015281816118e601526119d80152600081816104d20152818161066b015281816108ba0152818161094301528181610abd01528181610f27015261136901526125f16000f3fe6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea2646970667358221220570e1801cb2ac804d712ad851aeb331dab0e074f86b201032a7cf28a48777cff64736f6c634300080a0033", + "deployedBytecode": "0x6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea2646970667358221220570e1801cb2ac804d712ad851aeb331dab0e074f86b201032a7cf28a48777cff64736f6c634300080a0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/build-info/OmniVotingEscrowChild.json b/tasks/20230524-lz-omni-voting-escrow-child/build-info/OmniVotingEscrowChild.json new file mode 100644 index 00000000..02af1d2a --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/build-info/OmniVotingEscrowChild.json @@ -0,0 +1 @@ +{"id":"b20b1d47b40caec755075d6c9b7d938a","_format":"hh-sol-build-info-1","solcVersion":"0.8.10","solcLongVersion":"0.8.10+commit.fc410830","input":{"language":"Solidity","sources":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\nimport \"./ILayerZeroUserApplicationConfig.sol\";\n\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\n // @param _dstChainId - the destination chain identifier\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\n // @param _payload - a custom bytes payload to send to the destination contract\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\n\n // @notice used by the messaging library to publish verified payload\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source contract (as bytes) at the source chain\n // @param _dstAddress - the address on destination chain\n // @param _nonce - the unbound message ordering nonce\n // @param _gasLimit - the gas limit for external contract execution\n // @param _payload - verified payload to send to the destination contract\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\n\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\n\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\n // @param _srcAddress - the source chain contract address\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\n\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\n // @param _dstChainId - the destination chain identifier\n // @param _userApplication - the user app address on this EVM chain\n // @param _payload - the custom message to send over LayerZero\n // @param _payInZRO - if false, user app pays the protocol fee in native token\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\n\n // @notice get this Endpoint's immutable source identifier\n function getChainId() external view returns (uint16);\n\n // @notice the interface to retry failed message on this Endpoint destination\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n // @param _payload - the payload to be retried\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\n\n // @notice query if any STORED payload (message blocking) at the endpoint.\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\n\n // @notice query if the _libraryAddress is valid for sending msgs.\n // @param _userApplication - the user app address on this EVM chain\n function getSendLibraryAddress(address _userApplication) external view returns (address);\n\n // @notice query if the _libraryAddress is valid for receiving msgs.\n // @param _userApplication - the user app address on this EVM chain\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\n\n // @notice query if the non-reentrancy guard for send() is on\n // @return true if the guard is on. false otherwise\n function isSendingPayload() external view returns (bool);\n\n // @notice query if the non-reentrancy guard for receive() is on\n // @return true if the guard is on. false otherwise\n function isReceivingPayload() external view returns (bool);\n\n // @notice get the configuration of the LayerZero messaging library of the specified version\n // @param _version - messaging library version\n // @param _chainId - the chainId for the pending config change\n // @param _userApplication - the contract address of the user application\n // @param _configType - type of configuration. every messaging library has its own convention.\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\n\n // @notice get the send() LayerZero messaging library version\n // @param _userApplication - the contract address of the user application\n function getSendVersion(address _userApplication) external view returns (uint16);\n\n // @notice get the lzReceive() LayerZero messaging library version\n // @param _userApplication - the contract address of the user application\n function getReceiveVersion(address _userApplication) external view returns (uint16);\n}\n"},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroReceiver {\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\n // @param _srcChainId - the source endpoint identifier\n // @param _srcAddress - the source sending contract address from the source chain\n // @param _nonce - the ordered message nonce\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroUserApplicationConfig {\n // @notice set the configuration of the LayerZero messaging library of the specified version\n // @param _version - messaging library version\n // @param _chainId - the chainId for the pending config change\n // @param _configType - type of configuration. every messaging library has its own convention.\n // @param _config - configuration in the bytes. can encode arbitrary content.\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\n\n // @notice set the send() LayerZero messaging library version to _version\n // @param _version - new messaging library version\n function setSendVersion(uint16 _version) external;\n\n // @notice set the lzReceive() LayerZero messaging library version to _version\n // @param _version - new messaging library version\n function setReceiveVersion(uint16 _version) external;\n\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\n // @param _srcChainId - the chainId of the source chain\n // @param _srcAddress - the contract address of the source contract at the source chain\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity >=0.6.0;\npragma experimental ABIEncoderV2;\n\nlibrary LzLib {\n // LayerZero communication\n struct CallParams {\n address payable refundAddress;\n address zroPaymentAddress;\n }\n\n //---------------------------------------------------------------------------\n // Address type handling\n\n struct AirdropParams {\n uint airdropAmount;\n bytes32 airdropAddress;\n }\n\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\n } else {\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\n }\n }\n\n // Build Adapter Params\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\n // txType 1\n // bytes [2 32 ]\n // fields [txType extraGas]\n return abi.encodePacked(uint16(1), _uaGas);\n }\n\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\n require(_params.airdropAmount > 0, \"Airdrop amount must be greater than 0\");\n require(_params.airdropAddress != bytes32(0x0), \"Airdrop address must be set\");\n\n // txType 2\n // bytes [2 32 32 bytes[] ]\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\n }\n\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n assembly {\n gasLimit := mload(add(_adapterParams, 34))\n }\n }\n\n // Decode Adapter Params\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n assembly {\n txType := mload(add(_adapterParams, 2))\n uaGas := mload(add(_adapterParams, 34))\n }\n require(txType == 1 || txType == 2, \"Unsupported txType\");\n require(uaGas > 0, \"Gas too low\");\n\n if (txType == 2) {\n assembly {\n airdropAmount := mload(add(_adapterParams, 66))\n airdropAddress := mload(add(_adapterParams, 86))\n }\n }\n }\n\n //---------------------------------------------------------------------------\n // Address type handling\n // TODO: testing\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\n require(bytes12(_bytes32Address) == bytes12(0), \"Invalid address\"); // first 12 bytes should be empty\n return address(uint160(uint(_bytes32Address)));\n }\n\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\n return bytes32(uint(uint160(_address)));\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../interfaces/ILayerZeroReceiver.sol\";\nimport \"../interfaces/ILayerZeroUserApplicationConfig.sol\";\nimport \"../interfaces/ILayerZeroEndpoint.sol\";\nimport \"../util/BytesLib.sol\";\n\n/*\n * a generic LzReceiver implementation\n */\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\n using BytesLib for bytes;\n\n ILayerZeroEndpoint public immutable lzEndpoint;\n mapping(uint16 => bytes) public trustedRemoteLookup;\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\n address public precrime;\n\n event SetPrecrime(address precrime);\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\n\n constructor(address _endpoint) {\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\n }\n\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\n // lzReceive must be called by the endpoint for security\n require(_msgSender() == address(lzEndpoint), \"LzApp: invalid endpoint caller\");\n\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \"LzApp: invalid source sending contract\");\n\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n }\n\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\n\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\n require(trustedRemote.length != 0, \"LzApp: destination chain is not a trusted source\");\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\n }\n\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\n uint providedGasLimit = _getGasLimit(_adapterParams);\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\n require(minGasLimit > 0, \"LzApp: minGasLimit not set\");\n require(providedGasLimit >= minGasLimit, \"LzApp: gas limit is too low\");\n }\n\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\n require(_adapterParams.length >= 34, \"LzApp: invalid adapterParams\");\n assembly {\n gasLimit := mload(add(_adapterParams, 34))\n }\n }\n\n //---------------------------UserApplication config----------------------------------------\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\n }\n\n // generic config for LayerZero user Application\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\n }\n\n function setSendVersion(uint16 _version) external override onlyOwner {\n lzEndpoint.setSendVersion(_version);\n }\n\n function setReceiveVersion(uint16 _version) external override onlyOwner {\n lzEndpoint.setReceiveVersion(_version);\n }\n\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\n }\n\n // _path = abi.encodePacked(remoteAddress, localAddress)\n // this function set the trusted path for the cross-chain communication\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\n trustedRemoteLookup[_srcChainId] = _path;\n emit SetTrustedRemote(_srcChainId, _path);\n }\n\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\n }\n\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\n bytes memory path = trustedRemoteLookup[_remoteChainId];\n require(path.length != 0, \"LzApp: no trusted path record\");\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\n }\n\n function setPrecrime(address _precrime) external onlyOwner {\n precrime = _precrime;\n emit SetPrecrime(_precrime);\n }\n\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\n require(_minGas > 0, \"LzApp: invalid minGas\");\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\n }\n\n //--------------------------- VIEW FUNCTION ----------------------------------------\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\n return keccak256(trustedSource) == keccak256(_srcAddress);\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./LzApp.sol\";\nimport \"../util/ExcessivelySafeCall.sol\";\n\n/*\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\n */\nabstract contract NonblockingLzApp is LzApp {\n using ExcessivelySafeCall for address;\n\n constructor(address _endpoint) LzApp(_endpoint) {}\n\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\n\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\n\n // overriding the virtual function in LzReceiver\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\n // try-catch all errors/exceptions\n if (!success) {\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\n }\n }\n\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\n // only internal transaction\n require(_msgSender() == address(this), \"NonblockingLzApp: caller must be LzApp\");\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n }\n\n //@notice override this function\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\n\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\n // assert there is message to retry\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\n require(payloadHash != bytes32(0), \"NonblockingLzApp: no stored message\");\n require(keccak256(_payload) == payloadHash, \"NonblockingLzApp: invalid payload\");\n // clear the stored message\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\n // execute the message. revert if it fails again\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../interfaces/ILayerZeroReceiver.sol\";\nimport \"../interfaces/ILayerZeroEndpoint.sol\";\nimport \"../libraries/LzLib.sol\";\n\n/*\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\nunlike a real LayerZero endpoint, it is\n- no messaging library versioning\n- send() will short circuit to lzReceive()\n- no user application configuration\n*/\ncontract LZEndpointMock is ILayerZeroEndpoint {\n uint8 internal constant _NOT_ENTERED = 1;\n uint8 internal constant _ENTERED = 2;\n\n mapping(address => address) public lzEndpointLookup;\n\n uint16 public mockChainId;\n bool public nextMsgBlocked;\n\n // fee config\n RelayerFeeConfig public relayerFeeConfig;\n ProtocolFeeConfig public protocolFeeConfig;\n uint public oracleFee;\n bytes public defaultAdapterParams;\n\n // path = remote addrss + local address\n // inboundNonce = [srcChainId][path].\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\n //todo: this is a hack\n // outboundNonce = [dstChainId][srcAddress]\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\n // // outboundNonce = [dstChainId][path].\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\n // storedPayload = [srcChainId][path]\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\n // msgToDeliver = [srcChainId][path]\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\n\n // reentrancy guard\n uint8 internal _send_entered_state = 1;\n uint8 internal _receive_entered_state = 1;\n\n struct ProtocolFeeConfig {\n uint zroFee;\n uint nativeBP;\n }\n\n struct RelayerFeeConfig {\n uint128 dstPriceRatio; // 10^10\n uint128 dstGasPriceInWei;\n uint128 dstNativeAmtCap;\n uint64 baseGas;\n uint64 gasPerByte;\n }\n\n struct StoredPayload {\n uint64 payloadLength;\n address dstAddress;\n bytes32 payloadHash;\n }\n\n struct QueuedPayload {\n address dstAddress;\n uint64 nonce;\n bytes payload;\n }\n\n modifier sendNonReentrant() {\n require(_send_entered_state == _NOT_ENTERED, \"LayerZeroMock: no send reentrancy\");\n _send_entered_state = _ENTERED;\n _;\n _send_entered_state = _NOT_ENTERED;\n }\n\n modifier receiveNonReentrant() {\n require(_receive_entered_state == _NOT_ENTERED, \"LayerZeroMock: no receive reentrancy\");\n _receive_entered_state = _ENTERED;\n _;\n _receive_entered_state = _NOT_ENTERED;\n }\n\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\n event ValueTransferFailed(address indexed to, uint indexed quantity);\n\n constructor(uint16 _chainId) {\n mockChainId = _chainId;\n\n // init config\n relayerFeeConfig = RelayerFeeConfig({\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\n dstGasPriceInWei: 1e10,\n dstNativeAmtCap: 1e19,\n baseGas: 100,\n gasPerByte: 1\n });\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\n oracleFee = 1e16;\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\n }\n\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\n require(_path.length == 40, \"LayerZeroMock: incorrect remote address size\"); // only support evm chains\n\n address dstAddr;\n assembly {\n dstAddr := mload(add(_path, 20))\n }\n\n address lzEndpoint = lzEndpointLookup[dstAddr];\n require(lzEndpoint != address(0), \"LayerZeroMock: destination LayerZero Endpoint not found\");\n\n // not handle zro token\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\n require(msg.value >= nativeFee, \"LayerZeroMock: not enough native for fees\");\n\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\n\n // refund if they send too much\n uint amount = msg.value - nativeFee;\n if (amount > 0) {\n (bool success, ) = _refundAddress.call{value: amount}(\"\");\n require(success, \"LayerZeroMock: failed to refund\");\n }\n\n // Mock the process of receiving msg on dst chain\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\n if (dstNativeAmt > 0) {\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\"\");\n if (!success) {\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\n }\n }\n\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\n bytes memory payload = _payload;\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\n }\n\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n\n // assert and increment the nonce. no message shuffling\n require(_nonce == ++inboundNonce[_srcChainId][_path], \"LayerZeroMock: wrong nonce\");\n\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\n if (sp.payloadHash != bytes32(0)) {\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\n\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\n // shift all the msgs over so we can treat this like a fifo via array.pop()\n if (msgs.length > 0) {\n // extend the array\n msgs.push(newMsg);\n\n // shift all the indexes up for pop()\n for (uint i = 0; i < msgs.length - 1; i++) {\n msgs[i + 1] = msgs[i];\n }\n\n // put the newMsg at the bottom of the stack\n msgs[0] = newMsg;\n } else {\n msgs.push(newMsg);\n }\n } else if (nextMsgBlocked) {\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\"\"));\n // ensure the next msgs that go through are no longer blocked\n nextMsgBlocked = false;\n } else {\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\n // ensure the next msgs that go through are no longer blocked\n nextMsgBlocked = false;\n }\n }\n }\n\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\n return inboundNonce[_chainID][_path];\n }\n\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\n return outboundNonce[_chainID][_srcAddress];\n }\n\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n\n // Relayer Fee\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\n\n // LayerZero Fee\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\n\n // return the sum of fees\n nativeFee = nativeFee + relayerFee + oracleFee;\n }\n\n function getChainId() external view override returns (uint16) {\n return mockChainId;\n }\n\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \"LayerZeroMock: invalid payload\");\n\n address dstAddress = sp.dstAddress;\n // empty the storedPayload\n sp.payloadLength = 0;\n sp.dstAddress = address(0);\n sp.payloadHash = bytes32(0);\n\n uint64 nonce = inboundNonce[_srcChainId][_path];\n\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\n }\n\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n return sp.payloadHash != bytes32(0);\n }\n\n function getSendLibraryAddress(address) external view override returns (address) {\n return address(this);\n }\n\n function getReceiveLibraryAddress(address) external view override returns (address) {\n return address(this);\n }\n\n function isSendingPayload() external view override returns (bool) {\n return _send_entered_state == _ENTERED;\n }\n\n function isReceivingPayload() external view override returns (bool) {\n return _receive_entered_state == _ENTERED;\n }\n\n function getConfig(\n uint16, /*_version*/\n uint16, /*_chainId*/\n address, /*_ua*/\n uint /*_configType*/\n ) external pure override returns (bytes memory) {\n return \"\";\n }\n\n function getSendVersion(\n address /*_userApplication*/\n ) external pure override returns (uint16) {\n return 1;\n }\n\n function getReceiveVersion(\n address /*_userApplication*/\n ) external pure override returns (uint16) {\n return 1;\n }\n\n function setConfig(\n uint16, /*_version*/\n uint16, /*_chainId*/\n uint, /*_configType*/\n bytes memory /*_config*/\n ) external override {}\n\n function setSendVersion(\n uint16 /*version*/\n ) external override {}\n\n function setReceiveVersion(\n uint16 /*version*/\n ) external override {}\n\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n // revert if no messages are cached. safeguard malicious UA behaviour\n require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n require(sp.dstAddress == msg.sender, \"LayerZeroMock: invalid caller\");\n\n // empty the storedPayload\n sp.payloadLength = 0;\n sp.dstAddress = address(0);\n sp.payloadHash = bytes32(0);\n\n emit UaForceResumeReceive(_srcChainId, _path);\n\n // resume the receiving of msgs after we force clear the \"stuck\" msg\n _clearMsgQue(_srcChainId, _path);\n }\n\n // ------------------------------ Other Public/External Functions --------------------------------------------------\n\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\n return msgsToDeliver[_srcChainId][_srcAddress].length;\n }\n\n // used to simulate messages received get stored as a payload\n function blockNextMsg() external {\n nextMsgBlocked = true;\n }\n\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\n lzEndpointLookup[destAddr] = lzEndpointAddr;\n }\n\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\n relayerFeeConfig.baseGas = _baseGas;\n relayerFeeConfig.gasPerByte = _gasPerByte;\n }\n\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\n protocolFeeConfig.zroFee = _zroFee;\n protocolFeeConfig.nativeBP = _nativeBP;\n }\n\n function setOracleFee(uint _oracleFee) external {\n oracleFee = _oracleFee;\n }\n\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\n defaultAdapterParams = _adapterParams;\n }\n\n // --------------------- Internal Functions ---------------------\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\n while (msgs.length > 0) {\n QueuedPayload memory payload = msgs[msgs.length - 1];\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\n msgs.pop();\n }\n }\n\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\n if (_payInZro) {\n return protocolFeeConfig.zroFee;\n } else {\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\n }\n }\n\n function _getRelayerFee(\n uint16, /* _dstChainId */\n uint16, /* _outboundProofType */\n address, /* _userApplication */\n uint _payloadSize,\n bytes memory _adapterParams\n ) internal view returns (uint) {\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\n if (txType == 2) {\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \"LayerZeroMock: dstNativeAmt too large \");\n totalRemoteToken += dstNativeAmt;\n }\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\n totalRemoteToken += remoteGasTotal;\n\n // tokenConversionRate = dstPrice / localPrice\n // basePrice = totalRemoteToken * tokenConversionRate\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n return basePrice + _payloadSize * pricePerByte;\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"content":"// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá \n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\n\nlibrary BytesLib {\n function concat(\n bytes memory _preBytes,\n bytes memory _postBytes\n )\n internal\n pure\n returns (bytes memory)\n {\n bytes memory tempBytes;\n\n assembly {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // Store the length of the first bytes array at the beginning of\n // the memory for tempBytes.\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n\n // Maintain a memory counter for the current write location in the\n // temp bytes array by adding the 32 bytes for the array length to\n // the starting location.\n let mc := add(tempBytes, 0x20)\n // Stop copying when the memory counter reaches the length of the\n // first bytes array.\n let end := add(mc, length)\n\n for {\n // Initialize a copy counter to the start of the _preBytes data,\n // 32 bytes into its memory.\n let cc := add(_preBytes, 0x20)\n } lt(mc, end) {\n // Increase both counters by 32 bytes each iteration.\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // Write the _preBytes data into the tempBytes memory 32 bytes\n // at a time.\n mstore(mc, mload(cc))\n }\n\n // Add the length of _postBytes to the current length of tempBytes\n // and store it as the new length in the first 32 bytes of the\n // tempBytes memory.\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n\n // Move the memory counter back from a multiple of 0x20 to the\n // actual end of the _preBytes data.\n mc := end\n // Stop copying when the memory counter reaches the new combined\n // length of the arrays.\n end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n // Update the free-memory pointer by padding our last write location\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n // next 32 byte block, then round down to the nearest multiple of\n // 32. If the sum of the length of the two arrays is zero then add\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\n mstore(0x40, and(\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n not(31) // Round down to the nearest 32 bytes.\n ))\n }\n\n return tempBytes;\n }\n\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n assembly {\n // Read the first 32 bytes of _preBytes storage, which is the length\n // of the array. (We don't need to use the offset into the slot\n // because arrays use the entire slot.)\n let fslot := sload(_preBytes.slot)\n // Arrays of 31 bytes or less have an even value in their slot,\n // while longer arrays have an odd value. The actual length is\n // the slot divided by two for odd values, and the lowest order\n // byte divided by two for even values.\n // If the slot is even, bitwise and the slot with 255 and divide by\n // two to get the length. If the slot is odd, bitwise and the slot\n // with -1 and divide by two.\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n // Since the new array still fits in the slot, we just need to\n // update the contents of the slot.\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n sstore(\n _preBytes.slot,\n // all the modifications to the slot are inside this\n // next block\n add(\n // we can just add to the slot contents because the\n // bytes we want to change are the LSBs\n fslot,\n add(\n mul(\n div(\n // load the bytes from memory\n mload(add(_postBytes, 0x20)),\n // zero all bytes to the right\n exp(0x100, sub(32, mlength))\n ),\n // and now shift left the number of bytes to\n // leave space for the length in the slot\n exp(0x100, sub(32, newlength))\n ),\n // increase length by the double of the memory\n // bytes length\n mul(mlength, 2)\n )\n )\n )\n }\n case 1 {\n // The stored value fits in the slot, but the combined value\n // will exceed it.\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // The contents of the _postBytes array start 32 bytes into\n // the structure. Our first read should obtain the `submod`\n // bytes that can fit into the unused space in the last word\n // of the stored array. To get this, we read 32 bytes starting\n // from `submod`, so the data we read overlaps with the array\n // contents by `submod` bytes. Masking the lowest-order\n // `submod` bytes allows us to add that value directly to the\n // stored value.\n\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(\n sc,\n add(\n and(\n fslot,\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n ),\n and(mload(mc), mask)\n )\n )\n\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n // Start copying to the last used word of the stored array.\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // Copy over the first `submod` bytes of the new data as in\n // case 1 above.\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n }\n }\n\n function slice(\n bytes memory _bytes,\n uint256 _start,\n uint256 _length\n )\n internal\n pure\n returns (bytes memory)\n {\n require(_length + 31 >= _length, \"slice_overflow\");\n require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n bytes memory tempBytes;\n\n assembly {\n switch iszero(_length)\n case 0 {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // The first word of the slice result is potentially a partial\n // word read from the original array. To read it, we calculate\n // the length of that partial word and start copying that many\n // bytes into the array. The first word we copy will start with\n // data we don't care about, but the last `lengthmod` bytes will\n // land at the beginning of the contents of the new array. When\n // we're done copying, we overwrite the full first word with\n // the actual length of the slice.\n let lengthmod := and(_length, 31)\n\n // The multiplication in the next line is necessary\n // because when slicing multiples of 32 bytes (lengthmod == 0)\n // the following copy loop was copying the origin's length\n // and then ending prematurely not copying everything it should.\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n\n for {\n // The multiplication in the next line has the same exact purpose\n // as the one above.\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n mstore(tempBytes, _length)\n\n //update free-memory pointer\n //allocating the array padded to 32 bytes like the compiler does now\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n //if we want a zero-length slice let's just return a zero-length array\n default {\n tempBytes := mload(0x40)\n //zero out the 32 bytes slice we are about to return\n //we need to do it because Solidity does not garbage collect\n mstore(tempBytes, 0)\n\n mstore(0x40, add(tempBytes, 0x20))\n }\n }\n\n return tempBytes;\n }\n\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\n require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n address tempAddress;\n\n assembly {\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n }\n\n return tempAddress;\n }\n\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\n require(_bytes.length >= _start + 1 , \"toUint8_outOfBounds\");\n uint8 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x1), _start))\n }\n\n return tempUint;\n }\n\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\n require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n uint16 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x2), _start))\n }\n\n return tempUint;\n }\n\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\n require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n uint32 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x4), _start))\n }\n\n return tempUint;\n }\n\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\n require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n uint64 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x8), _start))\n }\n\n return tempUint;\n }\n\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\n require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n uint96 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0xc), _start))\n }\n\n return tempUint;\n }\n\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\n require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n uint128 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x10), _start))\n }\n\n return tempUint;\n }\n\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\n require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n uint256 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempUint;\n }\n\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\n require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n bytes32 tempBytes32;\n\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n } eq(add(lt(mc, end), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equalStorage(\n bytes storage _preBytes,\n bytes memory _postBytes\n )\n internal\n view\n returns (bool)\n {\n bool success = true;\n\n assembly {\n // we know _preBytes_offset is 0\n let fslot := sload(_preBytes.slot)\n // Decode the length of the stored array like in concatStorage().\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(slength, mlength)\n case 1 {\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n if iszero(iszero(slength)) {\n switch lt(slength, 32)\n case 1 {\n // blank the last byte which is the length\n fslot := mul(div(fslot, 0x100), 0x100)\n\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n // unsuccess:\n success := 0\n }\n }\n default {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := keccak256(0x0, 0x20)\n\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n for {} eq(add(lt(mc, end), cb), 2) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n if iszero(eq(sload(sc), mload(mc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity >=0.7.6;\n\nlibrary ExcessivelySafeCall {\n uint256 constant LOW_28_MASK =\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\n\n /// @notice Use when you _really_ really _really_ don't trust the called\n /// contract. This prevents the called contract from causing reversion of\n /// the caller in as many ways as we can.\n /// @dev The main difference between this and a solidity low-level call is\n /// that we limit the number of bytes that the callee can cause to be\n /// copied to caller memory. This prevents stupid things like malicious\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\n /// to memory.\n /// @param _target The address to call\n /// @param _gas The amount of gas to forward to the remote contract\n /// @param _maxCopy The maximum number of bytes of returndata to copy\n /// to memory.\n /// @param _calldata The data to send to the remote contract\n /// @return success and returndata, as `.call()`. Returndata is capped to\n /// `_maxCopy` bytes.\n function excessivelySafeCall(\n address _target,\n uint256 _gas,\n uint16 _maxCopy,\n bytes memory _calldata\n ) internal returns (bool, bytes memory) {\n // set up for assembly call\n uint256 _toCopy;\n bool _success;\n bytes memory _returnData = new bytes(_maxCopy);\n // dispatch message to recipient\n // by assembly calling \"handle\" function\n // we call via assembly to avoid memcopying a very large returndata\n // returned by a malicious contract\n assembly {\n _success := call(\n _gas, // gas\n _target, // recipient\n 0, // ether value\n add(_calldata, 0x20), // inloc\n mload(_calldata), // inlen\n 0, // outloc\n 0 // outlen\n )\n // limit our copy to 256 bytes\n _toCopy := returndatasize()\n if gt(_toCopy, _maxCopy) {\n _toCopy := _maxCopy\n }\n // Store the length of the copied bytes\n mstore(_returnData, _toCopy)\n // copy the bytes from returndata[0:_toCopy]\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n }\n return (_success, _returnData);\n }\n\n /// @notice Use when you _really_ really _really_ don't trust the called\n /// contract. This prevents the called contract from causing reversion of\n /// the caller in as many ways as we can.\n /// @dev The main difference between this and a solidity low-level call is\n /// that we limit the number of bytes that the callee can cause to be\n /// copied to caller memory. This prevents stupid things like malicious\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\n /// to memory.\n /// @param _target The address to call\n /// @param _gas The amount of gas to forward to the remote contract\n /// @param _maxCopy The maximum number of bytes of returndata to copy\n /// to memory.\n /// @param _calldata The data to send to the remote contract\n /// @return success and returndata, as `.call()`. Returndata is capped to\n /// `_maxCopy` bytes.\n function excessivelySafeStaticCall(\n address _target,\n uint256 _gas,\n uint16 _maxCopy,\n bytes memory _calldata\n ) internal view returns (bool, bytes memory) {\n // set up for assembly call\n uint256 _toCopy;\n bool _success;\n bytes memory _returnData = new bytes(_maxCopy);\n // dispatch message to recipient\n // by assembly calling \"handle\" function\n // we call via assembly to avoid memcopying a very large returndata\n // returned by a malicious contract\n assembly {\n _success := staticcall(\n _gas, // gas\n _target, // recipient\n add(_calldata, 0x20), // inloc\n mload(_calldata), // inlen\n 0, // outloc\n 0 // outlen\n )\n // limit our copy to 256 bytes\n _toCopy := returndatasize()\n if gt(_toCopy, _maxCopy) {\n _toCopy := _maxCopy\n }\n // Store the length of the copied bytes\n mstore(_returnData, _toCopy)\n // copy the bytes from returndata[0:_toCopy]\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n }\n return (_success, _returnData);\n }\n\n /**\n * @notice Swaps function selectors in encoded contract calls\n * @dev Allows reuse of encoded calldata for functions with identical\n * argument types but different names. It simply swaps out the first 4 bytes\n * for the new selector. This function modifies memory in place, and should\n * only be used with caution.\n * @param _newSelector The new 4-byte selector\n * @param _buf The encoded contract args\n */\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\n internal\n pure\n {\n require(_buf.length >= 4);\n uint256 _mask = LOW_28_MASK;\n assembly {\n // load the first word of\n let _word := mload(add(_buf, 0x20))\n // mask out the top 4 bytes\n // /x\n _word := and(_word, _mask)\n _word := or(_newSelector, _word)\n mstore(add(_buf, 0x20), _word)\n }\n }\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\n * overridden;\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `amount`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n // decrementing then incrementing.\n _balances[to] += amount;\n }\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n unchecked {\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n _balances[account] += amount;\n }\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n // Overflow not possible: amount <= accountBalance <= totalSupply.\n _totalSupply -= amount;\n }\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * has been transferred to `to`.\n * - when `from` is zero, `amount` tokens have been minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n"},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\n */\ninterface IL2LayerZeroDelegation {\n function onVeBalBridged(address user) external;\n\n function onVeBalSupplyUpdate() external;\n}\n"},"contracts/interfaces/IOmniVotingEscrow.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @dev Partial voting escrow bridge interface.\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\n */\ninterface IOmniVotingEscrow {\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\n\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\n\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\n\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\n}\n"},"contracts/interfaces/IVotingEscrow.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\ninterface IVotingEscrow {\n struct Point {\n int128 bias;\n int128 slope;\n uint ts;\n uint blk; // TODO get rid of blk?\n }\n\n function epoch() external view returns (uint);\n\n function user_point_epoch(address _user) external returns (uint);\n\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\n\n function point_history(uint _epoch) external returns (Point memory);\n\n function checkpoint() external;\n\n function locked__end(address user) external view returns (uint);\n}\n"},"contracts/interfaces/IVotingEscrowRemapper.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\nimport \"./IVotingEscrow.sol\";\nimport \"./IOmniVotingEscrow.sol\";\n\ninterface IVotingEscrowRemapper {\n /**\n * @notice Returns Voting Escrow contract address.\n */\n function getVotingEscrow() external view returns (IVotingEscrow);\n\n // /**\n // * @notice Returns Omni Voting Escrow contract address).\n // */\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\n //\n // /**\n // * @notice Get timestamp when `user`'s lock finishes.\n // * @dev The returned value is taken directly from the voting escrow.\n // */\n // function getLockedEnd(address user) external view returns (uint256);\n\n // /**\n // * @notice Returns the local user corresponding to an address on a remote chain.\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\n // * @param chainId - The chain ID of the network which this user is on.\n // */\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\n\n /**\n * @notice Returns the remote user corresponding to an address on the local chain.\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\n * @param chainId - The chain ID of the network which the remote user is on.\n */\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\n}\n"},"contracts/mocks/ERC20Mock.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n// this is a MOCK\ncontract ERC20Mock is ERC20 {\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}\n\n function mint(address _to, uint _amount) public {\n _mint(_to, _amount);\n }\n}\n"},"contracts/mocks/L2LayerZeroDelegation.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport \"../interfaces/IL2LayerZeroDelegation.sol\";\n\ncontract L2LayerZeroDelegation is IL2LayerZeroDelegation {\n function onVeBalBridged(address user) external {}\n\n function onVeBalSupplyUpdate() external {}\n}\n"},"contracts/mocks/LZEndpointMock.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\";\n\n/*\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\nunlike a real LayerZero endpoint, it is\n- no messaging library versioning\n- send() will short circuit to lzReceive()\n- no user application configuration\n*/\ncontract LZMock is LZEndpointMock {\n constructor(uint16 _chainId) LZEndpointMock(_chainId) {}\n}\n"},"contracts/mocks/MockToken.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.4;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n// this is a MOCK\ncontract MockToken is ERC20 {\n // this is a MOCK\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {\n _mint(msg.sender, 1_000_000_000 * 10**18); // mint 1B to deployoooor\n }\n\n // this is a MOCK\n function mint(address _to, uint _amount) public {\n _mint(_to, _amount);\n }\n}\n"},"contracts/mocks/VotingEscrowRemapperMock.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport \"../interfaces/IVotingEscrowRemapper.sol\";\n\ncontract VotingEscrowRemapperMock is IVotingEscrowRemapper {\n IVotingEscrow public getVotingEscrow;\n\n mapping(uint16 => mapping(address => address)) public _localToRemoteAddressMap;\n\n constructor(address _votingEscrow) {\n getVotingEscrow = IVotingEscrow(_votingEscrow);\n }\n\n function getRemoteUser(address _localUser, uint16 _dstChainId) external view returns (address) {\n return _localToRemoteAddressMap[_dstChainId][_localUser];\n }\n\n function setRemoteUser(address _remoteUser, uint16 _dstChainId) external {\n _localToRemoteAddressMap[_dstChainId][msg.sender] = _remoteUser;\n }\n}\n"},"contracts/OmniVotingEscrow.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"./interfaces/IVotingEscrow.sol\";\nimport \"./interfaces/IOmniVotingEscrow.sol\";\nimport \"./interfaces/IVotingEscrowRemapper.sol\";\nimport \"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\";\n\ncontract OmniVotingEscrow is NonblockingLzApp, IOmniVotingEscrow {\n IVotingEscrow public immutable votingEscrow;\n IVotingEscrowRemapper public immutable votingEscrowRemapper;\n\n // Packet types for child chains:\n uint16 PT_USER = 0; // user balance and total supply update\n uint16 PT_TS = 1; // total supply update\n\n event UserBalToChain(uint16 dstChainId, address localUser, address remoteUser, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\n event TotalSupplyToChain(uint16 dstChainId, IVotingEscrow.Point totalSupplyPoint);\n\n constructor(address _lzEndpoint, address _votingEscrowRemapper) NonblockingLzApp(_lzEndpoint) {\n require(_votingEscrowRemapper != address(0x0), \"OmniVotingEscrow: remapper cannot be 0x0\");\n\n votingEscrowRemapper = IVotingEscrowRemapper(_votingEscrowRemapper);\n votingEscrow = votingEscrowRemapper.getVotingEscrow();\n }\n\n function _nonblockingLzReceive(\n uint16, /*_srcChainId*/\n bytes memory, /*_srcAddress*/\n uint64, /*_nonce*/\n bytes memory /*_payload*/\n ) internal virtual override {\n revert(\"OmniVotingEscrow: cannot receive lzMsgs\");\n }\n\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory lzPayload = abi.encode(PT_USER, address(0x0), 0, IVotingEscrow.Point(0, 0, 0, 0), IVotingEscrow.Point(0, 0, 0, 0));\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\n }\n\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory lzPayload = abi.encode(PT_TS, IVotingEscrow.Point(0, 0, 0, 0));\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\n }\n\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\n uint userEpoch = votingEscrow.user_point_epoch(_localUser);\n IVotingEscrow.Point memory uPoint = votingEscrow.user_point_history(_localUser, userEpoch);\n\n uint lockedEnd = votingEscrow.locked__end(_localUser);\n\n // always send total supply along with a user update\n uint totalSupplyEpoch = votingEscrow.epoch();\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n\n address remappedAddress = votingEscrowRemapper.getRemoteUser(_localUser, _dstChainId);\n address remoteUser = remappedAddress != address(0x0) ? remappedAddress : _localUser;\n\n bytes memory lzPayload = abi.encode(PT_USER, remoteUser, lockedEnd, uPoint, tsPoint);\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\n emit UserBalToChain(_dstChainId, _localUser, remoteUser, uPoint, tsPoint);\n }\n\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\n uint totalSupplyEpoch = votingEscrow.epoch();\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n\n // Total supply point may only change if none has checkpointed after the current week has started.\n // If that's the case the checkpoint is performed at this point, before bridging the total supply.\n if (_hasLastCheckpointExpired(tsPoint.ts)) {\n votingEscrow.checkpoint();\n // Get updated point.\n totalSupplyEpoch = votingEscrow.epoch();\n tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n }\n\n bytes memory lzPayload = abi.encode(PT_TS, tsPoint);\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\n emit TotalSupplyToChain(_dstChainId, tsPoint);\n }\n\n function _hasLastCheckpointExpired(uint lastCheckpointTimestamp) internal view returns (bool) {\n // If last checkpoint rounded to weeks + one week is still behind the block timestamp, then it has expired.\n return (lastCheckpointTimestamp / 1 weeks) * 1 weeks + 1 weeks < block.timestamp;\n }\n}\n"},"contracts/OmniVotingEscrowChild.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"./interfaces/IVotingEscrow.sol\";\nimport \"./interfaces/IL2LayerZeroDelegation.sol\";\nimport \"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\";\n\ncontract OmniVotingEscrowChild is NonblockingLzApp {\n mapping(address => uint) public locked__end; // -> end of lock period\n mapping(address => IVotingEscrow.Point) public userPoints; // -> balanceOf\n IVotingEscrow.Point public totalSupplyPoint; // -> totalSupply\n\n // Packet types for child chains:\n uint16 PT_USER = 0; // user balance and total supply update\n uint16 PT_TS = 1; // total supply update\n\n IL2LayerZeroDelegation public immutable delegationHook;\n\n event UserBalFromChain(uint16 srcChainId, address user, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\n event TotalSupplyFromChain(uint16 srcChainId, IVotingEscrow.Point totalSupplyPoint);\n\n constructor(address _lzEndpoint, address _delegationHook) NonblockingLzApp(_lzEndpoint) {\n require(_delegationHook != address(0x0), \"OmniVotingEscrowChild: delegation hook cannot be 0x0\");\n delegationHook = IL2LayerZeroDelegation(_delegationHook);\n }\n\n function _nonblockingLzReceive(\n uint16 _srcChainId,\n bytes memory, /*_srcAddress*/\n uint64, /*_nonce*/\n bytes memory _payload\n ) internal virtual override {\n uint16 packetType;\n assembly {\n packetType := mload(add(_payload, 32))\n }\n\n if (packetType == PT_USER) {\n _updateUserAndTotalSupplyFromChain(_srcChainId, _payload);\n } else if (packetType == PT_TS) {\n _updateTotalSupplyFromChain(_srcChainId, _payload);\n } else {\n revert(\"OmniVotingEscrowChild: unknown packet type\");\n }\n }\n\n function _updateUserAndTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\n (, address _userAddress, uint _lockedEnd, IVotingEscrow.Point memory _userPoint, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, address, uint, IVotingEscrow.Point, IVotingEscrow.Point));\n locked__end[_userAddress] = _lockedEnd;\n userPoints[_userAddress] = _userPoint;\n totalSupplyPoint = _totalSupplyPoint;\n\n delegationHook.onVeBalBridged(_userAddress);\n emit UserBalFromChain(_srcChainId, _userAddress, _userPoint, _totalSupplyPoint);\n }\n\n function _updateTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\n (, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, IVotingEscrow.Point));\n totalSupplyPoint = _totalSupplyPoint;\n\n delegationHook.onVeBalSupplyUpdate();\n emit TotalSupplyFromChain(_srcChainId, _totalSupplyPoint);\n }\n\n function balanceOf(address _user) public view returns (uint) {\n return _getPointValue(userPoints[_user]);\n }\n\n function totalSupply() public view returns (uint) {\n return _getPointValue(totalSupplyPoint);\n }\n\n // external for testing\n function getPointValue(IVotingEscrow.Point memory _point) external view returns (uint) {\n return _getPointValue(_point);\n }\n\n function _getPointValue(IVotingEscrow.Point memory _point) internal view returns (uint) {\n IVotingEscrow.Point memory p = _point;\n\n int128 bias = p.bias - (p.slope * int128(uint128(block.timestamp - p.ts)));\n return bias < 0 ? 0 : uint(uint128(bias));\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","storageLayout","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"errors":[{"component":"general","errorCode":"5740","formattedMessage":"Warning: Unreachable code.\n --> @layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:51:9:\n |\n51 | emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unreachable code.","severity":"warning","sourceLocation":{"end":2850,"file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","start":2779},"type":"Warning"}],"sources":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroUserApplicationConfig":[189]},"id":145,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:0"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","file":"./ILayerZeroUserApplicationConfig.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":145,"sourceUnit":190,"src":"59:47:0","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3,"name":"ILayerZeroUserApplicationConfig","nodeType":"IdentifierPath","referencedDeclaration":189,"src":"140:31:0"},"id":4,"nodeType":"InheritanceSpecifier","src":"140:31:0"}],"canonicalName":"ILayerZeroEndpoint","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":144,"linearizedBaseContracts":[144,189],"name":"ILayerZeroEndpoint","nameLocation":"118:18:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c5803100","id":19,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"923:4:0","nodeType":"FunctionDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6,"mutability":"mutable","name":"_dstChainId","nameLocation":"935:11:0","nodeType":"VariableDeclaration","scope":19,"src":"928:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5,"name":"uint16","nodeType":"ElementaryTypeName","src":"928:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":8,"mutability":"mutable","name":"_destination","nameLocation":"963:12:0","nodeType":"VariableDeclaration","scope":19,"src":"948:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7,"name":"bytes","nodeType":"ElementaryTypeName","src":"948:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10,"mutability":"mutable","name":"_payload","nameLocation":"992:8:0","nodeType":"VariableDeclaration","scope":19,"src":"977:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9,"name":"bytes","nodeType":"ElementaryTypeName","src":"977:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12,"mutability":"mutable","name":"_refundAddress","nameLocation":"1018:14:0","nodeType":"VariableDeclaration","scope":19,"src":"1002:30:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":11,"name":"address","nodeType":"ElementaryTypeName","src":"1002:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":14,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1042:18:0","nodeType":"VariableDeclaration","scope":19,"src":"1034:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16,"mutability":"mutable","name":"_adapterParams","nameLocation":"1077:14:0","nodeType":"VariableDeclaration","scope":19,"src":"1062:29:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15,"name":"bytes","nodeType":"ElementaryTypeName","src":"1062:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"927:165:0"},"returnParameters":{"id":18,"nodeType":"ParameterList","parameters":[],"src":"1109:0:0"},"scope":144,"src":"914:196:0","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"c2fa4813","id":34,"implemented":false,"kind":"function","modifiers":[],"name":"receivePayload","nameLocation":"1602:14:0","nodeType":"FunctionDefinition","parameters":{"id":32,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21,"mutability":"mutable","name":"_srcChainId","nameLocation":"1624:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1617:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20,"name":"uint16","nodeType":"ElementaryTypeName","src":"1617:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"_srcAddress","nameLocation":"1652:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1637:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":22,"name":"bytes","nodeType":"ElementaryTypeName","src":"1637:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"_dstAddress","nameLocation":"1673:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1665:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"1665:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27,"mutability":"mutable","name":"_nonce","nameLocation":"1693:6:0","nodeType":"VariableDeclaration","scope":34,"src":"1686:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":26,"name":"uint64","nodeType":"ElementaryTypeName","src":"1686:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":29,"mutability":"mutable","name":"_gasLimit","nameLocation":"1706:9:0","nodeType":"VariableDeclaration","scope":34,"src":"1701:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28,"name":"uint","nodeType":"ElementaryTypeName","src":"1701:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"_payload","nameLocation":"1732:8:0","nodeType":"VariableDeclaration","scope":34,"src":"1717:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":30,"name":"bytes","nodeType":"ElementaryTypeName","src":"1717:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1616:125:0"},"returnParameters":{"id":33,"nodeType":"ParameterList","parameters":[],"src":"1750:0:0"},"scope":144,"src":"1593:158:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fdc07c70","id":43,"implemented":false,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"1987:15:0","nodeType":"FunctionDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36,"mutability":"mutable","name":"_srcChainId","nameLocation":"2010:11:0","nodeType":"VariableDeclaration","scope":43,"src":"2003:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":35,"name":"uint16","nodeType":"ElementaryTypeName","src":"2003:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":38,"mutability":"mutable","name":"_srcAddress","nameLocation":"2038:11:0","nodeType":"VariableDeclaration","scope":43,"src":"2023:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":37,"name":"bytes","nodeType":"ElementaryTypeName","src":"2023:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2002:48:0"},"returnParameters":{"id":42,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43,"src":"2074:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":40,"name":"uint64","nodeType":"ElementaryTypeName","src":"2074:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2073:8:0"},"scope":144,"src":"1978:104:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7a145748","id":52,"implemented":false,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"2257:16:0","nodeType":"FunctionDefinition","parameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"_dstChainId","nameLocation":"2281:11:0","nodeType":"VariableDeclaration","scope":52,"src":"2274:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44,"name":"uint16","nodeType":"ElementaryTypeName","src":"2274:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47,"mutability":"mutable","name":"_srcAddress","nameLocation":"2302:11:0","nodeType":"VariableDeclaration","scope":52,"src":"2294:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2273:41:0"},"returnParameters":{"id":51,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52,"src":"2338:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49,"name":"uint64","nodeType":"ElementaryTypeName","src":"2338:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2337:8:0"},"scope":144,"src":"2248:98:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"40a7bb10","id":69,"implemented":false,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"2869:12:0","nodeType":"FunctionDefinition","parameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54,"mutability":"mutable","name":"_dstChainId","nameLocation":"2889:11:0","nodeType":"VariableDeclaration","scope":69,"src":"2882:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53,"name":"uint16","nodeType":"ElementaryTypeName","src":"2882:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":56,"mutability":"mutable","name":"_userApplication","nameLocation":"2910:16:0","nodeType":"VariableDeclaration","scope":69,"src":"2902:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55,"name":"address","nodeType":"ElementaryTypeName","src":"2902:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58,"mutability":"mutable","name":"_payload","nameLocation":"2943:8:0","nodeType":"VariableDeclaration","scope":69,"src":"2928:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":57,"name":"bytes","nodeType":"ElementaryTypeName","src":"2928:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":60,"mutability":"mutable","name":"_payInZRO","nameLocation":"2958:9:0","nodeType":"VariableDeclaration","scope":69,"src":"2953:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59,"name":"bool","nodeType":"ElementaryTypeName","src":"2953:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":62,"mutability":"mutable","name":"_adapterParam","nameLocation":"2984:13:0","nodeType":"VariableDeclaration","scope":69,"src":"2969:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":61,"name":"bytes","nodeType":"ElementaryTypeName","src":"2969:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2881:117:0"},"returnParameters":{"id":68,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65,"mutability":"mutable","name":"nativeFee","nameLocation":"3027:9:0","nodeType":"VariableDeclaration","scope":69,"src":"3022:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64,"name":"uint","nodeType":"ElementaryTypeName","src":"3022:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67,"mutability":"mutable","name":"zroFee","nameLocation":"3043:6:0","nodeType":"VariableDeclaration","scope":69,"src":"3038:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66,"name":"uint","nodeType":"ElementaryTypeName","src":"3038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:29:0"},"scope":144,"src":"2860:191:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3408e470","id":74,"implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"3129:10:0","nodeType":"FunctionDefinition","parameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"3139:2:0"},"returnParameters":{"id":73,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74,"src":"3165:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":71,"name":"uint16","nodeType":"ElementaryTypeName","src":"3165:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3164:8:0"},"scope":144,"src":"3120:53:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aaff5f16","id":83,"implemented":false,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"3439:12:0","nodeType":"FunctionDefinition","parameters":{"id":81,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76,"mutability":"mutable","name":"_srcChainId","nameLocation":"3459:11:0","nodeType":"VariableDeclaration","scope":83,"src":"3452:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":75,"name":"uint16","nodeType":"ElementaryTypeName","src":"3452:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":78,"mutability":"mutable","name":"_srcAddress","nameLocation":"3487:11:0","nodeType":"VariableDeclaration","scope":83,"src":"3472:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77,"name":"bytes","nodeType":"ElementaryTypeName","src":"3472:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"_payload","nameLocation":"3515:8:0","nodeType":"VariableDeclaration","scope":83,"src":"3500:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79,"name":"bytes","nodeType":"ElementaryTypeName","src":"3500:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3451:73:0"},"returnParameters":{"id":82,"nodeType":"ParameterList","parameters":[],"src":"3533:0:0"},"scope":144,"src":"3430:104:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0eaf6ea6","id":92,"implemented":false,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"3746:16:0","nodeType":"FunctionDefinition","parameters":{"id":88,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85,"mutability":"mutable","name":"_srcChainId","nameLocation":"3770:11:0","nodeType":"VariableDeclaration","scope":92,"src":"3763:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":84,"name":"uint16","nodeType":"ElementaryTypeName","src":"3763:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":87,"mutability":"mutable","name":"_srcAddress","nameLocation":"3798:11:0","nodeType":"VariableDeclaration","scope":92,"src":"3783:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86,"name":"bytes","nodeType":"ElementaryTypeName","src":"3783:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3762:48:0"},"returnParameters":{"id":91,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92,"src":"3834:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89,"name":"bool","nodeType":"ElementaryTypeName","src":"3834:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3833:6:0"},"scope":144,"src":"3737:103:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9c729da1","id":99,"implemented":false,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"3998:21:0","nodeType":"FunctionDefinition","parameters":{"id":95,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94,"mutability":"mutable","name":"_userApplication","nameLocation":"4028:16:0","nodeType":"VariableDeclaration","scope":99,"src":"4020:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93,"name":"address","nodeType":"ElementaryTypeName","src":"4020:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4019:26:0"},"returnParameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99,"src":"4069:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"4069:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4068:9:0"},"scope":144,"src":"3989:89:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"71ba2fd6","id":106,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"4238:24:0","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"_userApplication","nameLocation":"4271:16:0","nodeType":"VariableDeclaration","scope":106,"src":"4263:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"4263:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4262:26:0"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":106,"src":"4312:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":103,"name":"address","nodeType":"ElementaryTypeName","src":"4312:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4311:9:0"},"scope":144,"src":"4229:92:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e97a448a","id":111,"implemented":false,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"4458:16:0","nodeType":"FunctionDefinition","parameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"4474:2:0"},"returnParameters":{"id":110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":111,"src":"4500:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108,"name":"bool","nodeType":"ElementaryTypeName","src":"4500:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4499:6:0"},"scope":144,"src":"4449:57:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ca066b35","id":116,"implemented":false,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"4646:18:0","nodeType":"FunctionDefinition","parameters":{"id":112,"nodeType":"ParameterList","parameters":[],"src":"4664:2:0"},"returnParameters":{"id":115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":116,"src":"4690:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":113,"name":"bool","nodeType":"ElementaryTypeName","src":"4690:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4689:6:0"},"scope":144,"src":"4637:59:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f5ecbdbc","id":129,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"5103:9:0","nodeType":"FunctionDefinition","parameters":{"id":125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"_version","nameLocation":"5120:8:0","nodeType":"VariableDeclaration","scope":129,"src":"5113:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":117,"name":"uint16","nodeType":"ElementaryTypeName","src":"5113:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":120,"mutability":"mutable","name":"_chainId","nameLocation":"5137:8:0","nodeType":"VariableDeclaration","scope":129,"src":"5130:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":119,"name":"uint16","nodeType":"ElementaryTypeName","src":"5130:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":122,"mutability":"mutable","name":"_userApplication","nameLocation":"5155:16:0","nodeType":"VariableDeclaration","scope":129,"src":"5147:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"5147:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":124,"mutability":"mutable","name":"_configType","nameLocation":"5178:11:0","nodeType":"VariableDeclaration","scope":129,"src":"5173:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint","nodeType":"ElementaryTypeName","src":"5173:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5112:78:0"},"returnParameters":{"id":128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":129,"src":"5214:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":126,"name":"bytes","nodeType":"ElementaryTypeName","src":"5214:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5213:14:0"},"scope":144,"src":"5094:134:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"096568f6","id":136,"implemented":false,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"5387:14:0","nodeType":"FunctionDefinition","parameters":{"id":132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"_userApplication","nameLocation":"5410:16:0","nodeType":"VariableDeclaration","scope":136,"src":"5402:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":130,"name":"address","nodeType":"ElementaryTypeName","src":"5402:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5401:26:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":134,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":136,"src":"5451:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":133,"name":"uint16","nodeType":"ElementaryTypeName","src":"5451:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5450:8:0"},"scope":144,"src":"5378:81:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"da1a7c9a","id":143,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"5623:17:0","nodeType":"FunctionDefinition","parameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"_userApplication","nameLocation":"5649:16:0","nodeType":"VariableDeclaration","scope":143,"src":"5641:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5640:26:0"},"returnParameters":{"id":142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":143,"src":"5690:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":140,"name":"uint16","nodeType":"ElementaryTypeName","src":"5690:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5689:8:0"},"scope":144,"src":"5614:84:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":145,"src":"108:5592:0","usedErrors":[]}],"src":"33:5668:0"},"id":0},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[158]},"id":159,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":146,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":158,"linearizedBaseContracts":[158],"name":"ILayerZeroReceiver","nameLocation":"69:18:1","nodeType":"ContractDefinition","nodes":[{"functionSelector":"001d3567","id":157,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"482:9:1","nodeType":"FunctionDefinition","parameters":{"id":155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":148,"mutability":"mutable","name":"_srcChainId","nameLocation":"499:11:1","nodeType":"VariableDeclaration","scope":157,"src":"492:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":147,"name":"uint16","nodeType":"ElementaryTypeName","src":"492:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":150,"mutability":"mutable","name":"_srcAddress","nameLocation":"527:11:1","nodeType":"VariableDeclaration","scope":157,"src":"512:26:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":149,"name":"bytes","nodeType":"ElementaryTypeName","src":"512:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":152,"mutability":"mutable","name":"_nonce","nameLocation":"547:6:1","nodeType":"VariableDeclaration","scope":157,"src":"540:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":151,"name":"uint64","nodeType":"ElementaryTypeName","src":"540:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":154,"mutability":"mutable","name":"_payload","nameLocation":"570:8:1","nodeType":"VariableDeclaration","scope":157,"src":"555:23:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":153,"name":"bytes","nodeType":"ElementaryTypeName","src":"555:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"491:88:1"},"returnParameters":{"id":156,"nodeType":"ParameterList","parameters":[],"src":"588:0:1"},"scope":158,"src":"473:116:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":159,"src":"59:532:1","usedErrors":[]}],"src":"33:559:1"},"id":1},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","exportedSymbols":{"ILayerZeroUserApplicationConfig":[189]},"id":190,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":160,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:2"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroUserApplicationConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":189,"linearizedBaseContracts":[189],"name":"ILayerZeroUserApplicationConfig","nameLocation":"69:31:2","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cbed8b9c","id":171,"implemented":false,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"512:9:2","nodeType":"FunctionDefinition","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":162,"mutability":"mutable","name":"_version","nameLocation":"529:8:2","nodeType":"VariableDeclaration","scope":171,"src":"522:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":161,"name":"uint16","nodeType":"ElementaryTypeName","src":"522:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":164,"mutability":"mutable","name":"_chainId","nameLocation":"546:8:2","nodeType":"VariableDeclaration","scope":171,"src":"539:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":163,"name":"uint16","nodeType":"ElementaryTypeName","src":"539:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":166,"mutability":"mutable","name":"_configType","nameLocation":"561:11:2","nodeType":"VariableDeclaration","scope":171,"src":"556:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":165,"name":"uint","nodeType":"ElementaryTypeName","src":"556:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":168,"mutability":"mutable","name":"_config","nameLocation":"589:7:2","nodeType":"VariableDeclaration","scope":171,"src":"574:22:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":167,"name":"bytes","nodeType":"ElementaryTypeName","src":"574:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"521:76:2"},"returnParameters":{"id":170,"nodeType":"ParameterList","parameters":[],"src":"606:0:2"},"scope":189,"src":"503:104:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"07e0db17","id":176,"implemented":false,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"755:14:2","nodeType":"FunctionDefinition","parameters":{"id":174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173,"mutability":"mutable","name":"_version","nameLocation":"777:8:2","nodeType":"VariableDeclaration","scope":176,"src":"770:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":172,"name":"uint16","nodeType":"ElementaryTypeName","src":"770:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"769:17:2"},"returnParameters":{"id":175,"nodeType":"ParameterList","parameters":[],"src":"795:0:2"},"scope":189,"src":"746:50:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"10ddb137","id":181,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"949:17:2","nodeType":"FunctionDefinition","parameters":{"id":179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"_version","nameLocation":"974:8:2","nodeType":"VariableDeclaration","scope":181,"src":"967:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":177,"name":"uint16","nodeType":"ElementaryTypeName","src":"967:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"966:17:2"},"returnParameters":{"id":180,"nodeType":"ParameterList","parameters":[],"src":"992:0:2"},"scope":189,"src":"940:53:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"42d65a8d","id":188,"implemented":false,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"1271:18:2","nodeType":"FunctionDefinition","parameters":{"id":186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":183,"mutability":"mutable","name":"_srcChainId","nameLocation":"1297:11:2","nodeType":"VariableDeclaration","scope":188,"src":"1290:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":182,"name":"uint16","nodeType":"ElementaryTypeName","src":"1290:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":185,"mutability":"mutable","name":"_srcAddress","nameLocation":"1325:11:2","nodeType":"VariableDeclaration","scope":188,"src":"1310:26:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":184,"name":"bytes","nodeType":"ElementaryTypeName","src":"1310:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1289:48:2"},"returnParameters":{"id":187,"nodeType":"ParameterList","parameters":[],"src":"1346:0:2"},"scope":189,"src":"1262:85:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":190,"src":"59:1290:2","usedErrors":[]}],"src":"33:1317:2"},"id":2},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol","exportedSymbols":{"LzLib":[427]},"id":428,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":191,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"38:24:3"},{"id":192,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"63:33:3"},{"abstract":false,"baseContracts":[],"canonicalName":"LzLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":427,"linearizedBaseContracts":[427],"name":"LzLib","nameLocation":"106:5:3","nodeType":"ContractDefinition","nodes":[{"canonicalName":"LzLib.CallParams","id":197,"members":[{"constant":false,"id":194,"mutability":"mutable","name":"refundAddress","nameLocation":"193:13:3","nodeType":"VariableDeclaration","scope":197,"src":"177:29:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"177:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":196,"mutability":"mutable","name":"zroPaymentAddress","nameLocation":"224:17:3","nodeType":"VariableDeclaration","scope":197,"src":"216:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":195,"name":"address","nodeType":"ElementaryTypeName","src":"216:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"CallParams","nameLocation":"156:10:3","nodeType":"StructDefinition","scope":427,"src":"149:99:3","visibility":"public"},{"canonicalName":"LzLib.AirdropParams","id":202,"members":[{"constant":false,"id":199,"mutability":"mutable","name":"airdropAmount","nameLocation":"402:13:3","nodeType":"VariableDeclaration","scope":202,"src":"397:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":198,"name":"uint","nodeType":"ElementaryTypeName","src":"397:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":201,"mutability":"mutable","name":"airdropAddress","nameLocation":"433:14:3","nodeType":"VariableDeclaration","scope":202,"src":"425:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"425:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"AirdropParams","nameLocation":"373:13:3","nodeType":"StructDefinition","scope":427,"src":"366:88:3","visibility":"public"},{"body":{"id":240,"nodeType":"Block","src":"600:284:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":212,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"614:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"614:28:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"614:33:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":216,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"651:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"651:29:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"692:3:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:3","typeDescriptions":{}}},"id":221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"684:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"651:45:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"614:82:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":238,"nodeType":"Block","src":"783:95:3","statements":[{"expression":{"id":236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":231,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":210,"src":"797:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":233,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"839:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":234,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"852:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}],"id":232,"name":"buildAirdropAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"813:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_struct$_AirdropParams_$202_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,struct LzLib.AirdropParams memory) pure returns (bytes memory)"}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"813:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"797:70:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":237,"nodeType":"ExpressionStatement","src":"797:70:3"}]},"id":239,"nodeType":"IfStatement","src":"610:268:3","trueBody":{"id":230,"nodeType":"Block","src":"698:79:3","statements":[{"expression":{"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":224,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":210,"src":"712:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":226,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"754:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":225,"name":"buildDefaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"728:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"728:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"712:54:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":229,"nodeType":"ExpressionStatement","src":"712:54:3"}]}}]},"id":241,"implemented":true,"kind":"function","modifiers":[],"name":"buildAdapterParams","nameLocation":"469:18:3","nodeType":"FunctionDefinition","parameters":{"id":208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":205,"mutability":"mutable","name":"_airdropParams","nameLocation":"515:14:3","nodeType":"VariableDeclaration","scope":241,"src":"488:41:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":204,"nodeType":"UserDefinedTypeName","pathNode":{"id":203,"name":"LzLib.AirdropParams","nodeType":"IdentifierPath","referencedDeclaration":202,"src":"488:19:3"},"referencedDeclaration":202,"src":"488:19:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"},{"constant":false,"id":207,"mutability":"mutable","name":"_uaGasLimit","nameLocation":"536:11:3","nodeType":"VariableDeclaration","scope":241,"src":"531:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206,"name":"uint","nodeType":"ElementaryTypeName","src":"531:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"487:61:3"},"returnParameters":{"id":211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":210,"mutability":"mutable","name":"adapterParams","nameLocation":"585:13:3","nodeType":"VariableDeclaration","scope":241,"src":"572:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":209,"name":"bytes","nodeType":"ElementaryTypeName","src":"572:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"571:28:3"},"scope":427,"src":"460:424:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":257,"nodeType":"Block","src":"1003:153:3","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"31","id":252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1131:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":250,"name":"uint16","nodeType":"ElementaryTypeName","src":"1131:6:3","typeDescriptions":{}}},"id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1131:9:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":254,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":243,"src":"1142:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":248,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1114:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1114:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1114:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":247,"id":256,"nodeType":"Return","src":"1107:42:3"}]},"id":258,"implemented":true,"kind":"function","modifiers":[],"name":"buildDefaultAdapterParams","nameLocation":"927:25:3","nodeType":"FunctionDefinition","parameters":{"id":244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":243,"mutability":"mutable","name":"_uaGas","nameLocation":"958:6:3","nodeType":"VariableDeclaration","scope":258,"src":"953:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":242,"name":"uint","nodeType":"ElementaryTypeName","src":"953:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:13:3"},"returnParameters":{"id":247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":258,"src":"989:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":245,"name":"bytes","nodeType":"ElementaryTypeName","src":"989:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"988:14:3"},"scope":427,"src":"918:238:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":300,"nodeType":"Block","src":"1277:438:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":269,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1295:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"1295:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1319:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1295:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f7020616d6f756e74206d7573742062652067726561746572207468616e2030","id":273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:39:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""},"value":"Airdrop amount must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""}],"id":268,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1287:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1287:75:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":275,"nodeType":"ExpressionStatement","src":"1287:75:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":277,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1380:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"1380:22:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1414:3:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1406:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:3","typeDescriptions":{}}},"id":282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1406:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1380:38:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f702061646472657373206d75737420626520736574","id":284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1420:29:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""},"value":"Airdrop address must be set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""}],"id":276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1372:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1372:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":286,"nodeType":"ExpressionStatement","src":"1372:78:3"},{"expression":{"arguments":[{"arguments":[{"hexValue":"32","id":291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1650:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1643:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":289,"name":"uint16","nodeType":"ElementaryTypeName","src":"1643:6:3","typeDescriptions":{}}},"id":292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1643:9:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":293,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1654:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":294,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1662:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"1662:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":296,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1685:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"1685:22:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":287,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1626:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1626:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1626:82:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":267,"id":299,"nodeType":"Return","src":"1619:89:3"}]},"id":301,"implemented":true,"kind":"function","modifiers":[],"name":"buildAirdropAdapterParams","nameLocation":"1171:25:3","nodeType":"FunctionDefinition","parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"_uaGas","nameLocation":"1202:6:3","nodeType":"VariableDeclaration","scope":301,"src":"1197:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":259,"name":"uint","nodeType":"ElementaryTypeName","src":"1197:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":263,"mutability":"mutable","name":"_params","nameLocation":"1231:7:3","nodeType":"VariableDeclaration","scope":301,"src":"1210:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":262,"nodeType":"UserDefinedTypeName","pathNode":{"id":261,"name":"AirdropParams","nodeType":"IdentifierPath","referencedDeclaration":202,"src":"1210:13:3"},"referencedDeclaration":202,"src":"1210:13:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"}],"src":"1196:43:3"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":301,"src":"1263:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":265,"name":"bytes","nodeType":"ElementaryTypeName","src":"1263:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1262:14:3"},"scope":427,"src":"1162:553:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":322,"nodeType":"Block","src":"1809:192:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":309,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"1827:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1827:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:2:3","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"1827:27:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":313,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"1858:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1858:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1882:2:3","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"1858:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1827:57:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1886:23:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1819:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1819:91:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":320,"nodeType":"ExpressionStatement","src":"1819:91:3"},{"AST":{"nodeType":"YulBlock","src":"1929:66:3","statements":[{"nodeType":"YulAssignment","src":"1943:42:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"1965:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"1981:2:3","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1961:3:3"},"nodeType":"YulFunctionCall","src":"1961:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1955:5:3"},"nodeType":"YulFunctionCall","src":"1955:30:3"},"variableNames":[{"name":"gasLimit","nodeType":"YulIdentifier","src":"1943:8:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":303,"isOffset":false,"isSlot":false,"src":"1965:14:3","valueSize":1},{"declaration":306,"isOffset":false,"isSlot":false,"src":"1943:8:3","valueSize":1}],"id":321,"nodeType":"InlineAssembly","src":"1920:75:3"}]},"id":323,"implemented":true,"kind":"function","modifiers":[],"name":"getGasLimit","nameLocation":"1730:11:3","nodeType":"FunctionDefinition","parameters":{"id":304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":303,"mutability":"mutable","name":"_adapterParams","nameLocation":"1755:14:3","nodeType":"VariableDeclaration","scope":323,"src":"1742:27:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":302,"name":"bytes","nodeType":"ElementaryTypeName","src":"1742:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1741:29:3"},"returnParameters":{"id":307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":306,"mutability":"mutable","name":"gasLimit","nameLocation":"1799:8:3","nodeType":"VariableDeclaration","scope":323,"src":"1794:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":305,"name":"uint","nodeType":"ElementaryTypeName","src":"1794:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1793:15:3"},"scope":427,"src":"1721:280:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":374,"nodeType":"Block","src":"2196:555:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":337,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"2214:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2214:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2239:2:3","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"2214:27:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":341,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"2245:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2245:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2269:2:3","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"2245:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2214:57:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2273:23:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":336,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2206:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2206:91:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":348,"nodeType":"ExpressionStatement","src":"2206:91:3"},{"AST":{"nodeType":"YulBlock","src":"2316:115:3","statements":[{"nodeType":"YulAssignment","src":"2330:39:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2350:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2366:1:3","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2346:3:3"},"nodeType":"YulFunctionCall","src":"2346:22:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2340:5:3"},"nodeType":"YulFunctionCall","src":"2340:29:3"},"variableNames":[{"name":"txType","nodeType":"YulIdentifier","src":"2330:6:3"}]},{"nodeType":"YulAssignment","src":"2382:39:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2401:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2417:2:3","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2397:3:3"},"nodeType":"YulFunctionCall","src":"2397:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2391:5:3"},"nodeType":"YulFunctionCall","src":"2391:30:3"},"variableNames":[{"name":"uaGas","nodeType":"YulIdentifier","src":"2382:5:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":325,"isOffset":false,"isSlot":false,"src":"2350:14:3","valueSize":1},{"declaration":325,"isOffset":false,"isSlot":false,"src":"2401:14:3","valueSize":1},{"declaration":328,"isOffset":false,"isSlot":false,"src":"2330:6:3","valueSize":1},{"declaration":330,"isOffset":false,"isSlot":false,"src":"2382:5:3","valueSize":1}],"id":349,"nodeType":"InlineAssembly","src":"2307:124:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":351,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2448:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2458:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2448:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":354,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2463:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2473:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2463:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2448:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e737570706f7274656420747854797065","id":358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2476:20:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""},"value":"Unsupported txType"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""}],"id":350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2440:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:57:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":360,"nodeType":"ExpressionStatement","src":"2440:57:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":362,"name":"uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"2515:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2523:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2515:9:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617320746f6f206c6f77","id":365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2526:13:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""},"value":"Gas too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""}],"id":361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2507:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":367,"nodeType":"ExpressionStatement","src":"2507:33:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":368,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2555:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2565:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2555:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":373,"nodeType":"IfStatement","src":"2551:194:3","trueBody":{"id":372,"nodeType":"Block","src":"2568:177:3","statements":[{"AST":{"nodeType":"YulBlock","src":"2591:144:3","statements":[{"nodeType":"YulAssignment","src":"2609:47:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2636:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2652:2:3","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2632:3:3"},"nodeType":"YulFunctionCall","src":"2632:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2626:5:3"},"nodeType":"YulFunctionCall","src":"2626:30:3"},"variableNames":[{"name":"airdropAmount","nodeType":"YulIdentifier","src":"2609:13:3"}]},{"nodeType":"YulAssignment","src":"2673:48:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2701:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2717:2:3","type":"","value":"86"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2697:3:3"},"nodeType":"YulFunctionCall","src":"2697:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2691:5:3"},"nodeType":"YulFunctionCall","src":"2691:30:3"},"variableNames":[{"name":"airdropAddress","nodeType":"YulIdentifier","src":"2673:14:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":325,"isOffset":false,"isSlot":false,"src":"2636:14:3","valueSize":1},{"declaration":325,"isOffset":false,"isSlot":false,"src":"2701:14:3","valueSize":1},{"declaration":334,"isOffset":false,"isSlot":false,"src":"2673:14:3","valueSize":1},{"declaration":332,"isOffset":false,"isSlot":false,"src":"2609:13:3","valueSize":1}],"id":371,"nodeType":"InlineAssembly","src":"2582:153:3"}]}}]},"id":375,"implemented":true,"kind":"function","modifiers":[],"name":"decodeAdapterParams","nameLocation":"2045:19:3","nodeType":"FunctionDefinition","parameters":{"id":326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":325,"mutability":"mutable","name":"_adapterParams","nameLocation":"2078:14:3","nodeType":"VariableDeclaration","scope":375,"src":"2065:27:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":324,"name":"bytes","nodeType":"ElementaryTypeName","src":"2065:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2064:29:3"},"returnParameters":{"id":335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":328,"mutability":"mutable","name":"txType","nameLocation":"2124:6:3","nodeType":"VariableDeclaration","scope":375,"src":"2117:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":327,"name":"uint16","nodeType":"ElementaryTypeName","src":"2117:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":330,"mutability":"mutable","name":"uaGas","nameLocation":"2137:5:3","nodeType":"VariableDeclaration","scope":375,"src":"2132:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":329,"name":"uint","nodeType":"ElementaryTypeName","src":"2132:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":332,"mutability":"mutable","name":"airdropAmount","nameLocation":"2149:13:3","nodeType":"VariableDeclaration","scope":375,"src":"2144:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":331,"name":"uint","nodeType":"ElementaryTypeName","src":"2144:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":334,"mutability":"mutable","name":"airdropAddress","nameLocation":"2180:14:3","nodeType":"VariableDeclaration","scope":375,"src":"2164:30:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":333,"name":"address","nodeType":"ElementaryTypeName","src":"2164:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"2116:79:3"},"scope":427,"src":"2036:715:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":406,"nodeType":"Block","src":"2981:173:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"id":391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":385,"name":"_bytes32Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"3007:15:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2999:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":383,"name":"bytes12","nodeType":"ElementaryTypeName","src":"2999:7:3","typeDescriptions":{}}},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2999:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3035:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3027:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":387,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3027:7:3","typeDescriptions":{}}},"id":390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3027:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"src":"2999:38:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646472657373","id":392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3039:17:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""},"value":"Invalid address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""}],"id":382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2991:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2991:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":394,"nodeType":"ExpressionStatement","src":"2991:66:3"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":401,"name":"_bytes32Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"3129:15:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3124:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":399,"name":"uint","nodeType":"ElementaryTypeName","src":"3124:4:3","typeDescriptions":{}}},"id":402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3124:21:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3116:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":397,"name":"uint160","nodeType":"ElementaryTypeName","src":"3116:7:3","typeDescriptions":{}}},"id":403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3116:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3108:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":395,"name":"address","nodeType":"ElementaryTypeName","src":"3108:7:3","typeDescriptions":{}}},"id":404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3108:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":381,"id":405,"nodeType":"Return","src":"3101:46:3"}]},"id":407,"implemented":true,"kind":"function","modifiers":[],"name":"bytes32ToAddress","nameLocation":"2898:16:3","nodeType":"FunctionDefinition","parameters":{"id":378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":377,"mutability":"mutable","name":"_bytes32Address","nameLocation":"2923:15:3","nodeType":"VariableDeclaration","scope":407,"src":"2915:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2915:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2914:25:3"},"returnParameters":{"id":381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":380,"mutability":"mutable","name":"_address","nameLocation":"2971:8:3","nodeType":"VariableDeclaration","scope":407,"src":"2963:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":379,"name":"address","nodeType":"ElementaryTypeName","src":"2963:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2962:18:3"},"scope":427,"src":"2889:265:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":425,"nodeType":"Block","src":"3252:56:3","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":420,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":409,"src":"3290:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3282:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":418,"name":"uint160","nodeType":"ElementaryTypeName","src":"3282:7:3","typeDescriptions":{}}},"id":421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3282:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3277:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":416,"name":"uint","nodeType":"ElementaryTypeName","src":"3277:4:3","typeDescriptions":{}}},"id":422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3277:23:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3269:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3269:7:3","typeDescriptions":{}}},"id":423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3269:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":413,"id":424,"nodeType":"Return","src":"3262:39:3"}]},"id":426,"implemented":true,"kind":"function","modifiers":[],"name":"addressToBytes32","nameLocation":"3169:16:3","nodeType":"FunctionDefinition","parameters":{"id":410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":409,"mutability":"mutable","name":"_address","nameLocation":"3194:8:3","nodeType":"VariableDeclaration","scope":426,"src":"3186:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":408,"name":"address","nodeType":"ElementaryTypeName","src":"3186:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3185:18:3"},"returnParameters":{"id":413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":412,"mutability":"mutable","name":"_bytes32Address","nameLocation":"3235:15:3","nodeType":"VariableDeclaration","scope":426,"src":"3227:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3227:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3226:25:3"},"scope":427,"src":"3160:148:3","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":428,"src":"98:3212:3","usedErrors":[]}],"src":"38:3273:3"},"id":3},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LzApp":[917],"Ownable":[2996]},"id":918,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":429,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:4"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":2997,"src":"58:52:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","file":"../interfaces/ILayerZeroReceiver.sol","id":431,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":159,"src":"111:46:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","file":"../interfaces/ILayerZeroUserApplicationConfig.sol","id":432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":190,"src":"158:59:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","file":"../interfaces/ILayerZeroEndpoint.sol","id":433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":145,"src":"218:46:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol","file":"../util/BytesLib.sol","id":434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":2787,"src":"265:30:4","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":435,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":2996,"src":"370:7:4"},"id":436,"nodeType":"InheritanceSpecifier","src":"370:7:4"},{"baseName":{"id":437,"name":"ILayerZeroReceiver","nodeType":"IdentifierPath","referencedDeclaration":158,"src":"379:18:4"},"id":438,"nodeType":"InheritanceSpecifier","src":"379:18:4"},{"baseName":{"id":439,"name":"ILayerZeroUserApplicationConfig","nodeType":"IdentifierPath","referencedDeclaration":189,"src":"399:31:4"},"id":440,"nodeType":"InheritanceSpecifier","src":"399:31:4"}],"canonicalName":"LzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":917,"linearizedBaseContracts":[917,189,158,2996,3708],"name":"LzApp","nameLocation":"361:5:4","nodeType":"ContractDefinition","nodes":[{"id":443,"libraryName":{"id":441,"name":"BytesLib","nodeType":"IdentifierPath","referencedDeclaration":2786,"src":"443:8:4"},"nodeType":"UsingForDirective","src":"437:25:4","typeName":{"id":442,"name":"bytes","nodeType":"ElementaryTypeName","src":"456:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":false,"functionSelector":"b353aaa7","id":446,"mutability":"immutable","name":"lzEndpoint","nameLocation":"504:10:4","nodeType":"VariableDeclaration","scope":917,"src":"468:46:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":445,"nodeType":"UserDefinedTypeName","pathNode":{"id":444,"name":"ILayerZeroEndpoint","nodeType":"IdentifierPath","referencedDeclaration":144,"src":"468:18:4"},"referencedDeclaration":144,"src":"468:18:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"visibility":"public"},{"constant":false,"functionSelector":"7533d788","id":450,"mutability":"mutable","name":"trustedRemoteLookup","nameLocation":"552:19:4","nodeType":"VariableDeclaration","scope":917,"src":"520:51:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"typeName":{"id":449,"keyType":{"id":447,"name":"uint16","nodeType":"ElementaryTypeName","src":"528:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"520:24:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"valueType":{"id":448,"name":"bytes","nodeType":"ElementaryTypeName","src":"538:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"visibility":"public"},{"constant":false,"functionSelector":"8cfd8f5c","id":456,"mutability":"mutable","name":"minDstGasLookup","nameLocation":"627:15:4","nodeType":"VariableDeclaration","scope":917,"src":"577:65:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"typeName":{"id":455,"keyType":{"id":451,"name":"uint16","nodeType":"ElementaryTypeName","src":"585:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"577:42:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"valueType":{"id":454,"keyType":{"id":452,"name":"uint16","nodeType":"ElementaryTypeName","src":"603:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"595:23:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueType":{"id":453,"name":"uint","nodeType":"ElementaryTypeName","src":"613:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"950c8a74","id":458,"mutability":"mutable","name":"precrime","nameLocation":"663:8:4","nodeType":"VariableDeclaration","scope":917,"src":"648:23:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":457,"name":"address","nodeType":"ElementaryTypeName","src":"648:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"id":462,"name":"SetPrecrime","nameLocation":"684:11:4","nodeType":"EventDefinition","parameters":{"id":461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":460,"indexed":false,"mutability":"mutable","name":"precrime","nameLocation":"704:8:4","nodeType":"VariableDeclaration","scope":462,"src":"696:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":459,"name":"address","nodeType":"ElementaryTypeName","src":"696:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"695:18:4"},"src":"678:36:4"},{"anonymous":false,"id":468,"name":"SetTrustedRemote","nameLocation":"725:16:4","nodeType":"EventDefinition","parameters":{"id":467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"749:14:4","nodeType":"VariableDeclaration","scope":468,"src":"742:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":463,"name":"uint16","nodeType":"ElementaryTypeName","src":"742:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":466,"indexed":false,"mutability":"mutable","name":"_path","nameLocation":"771:5:4","nodeType":"VariableDeclaration","scope":468,"src":"765:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":465,"name":"bytes","nodeType":"ElementaryTypeName","src":"765:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"741:36:4"},"src":"719:59:4"},{"anonymous":false,"id":474,"name":"SetTrustedRemoteAddress","nameLocation":"789:23:4","nodeType":"EventDefinition","parameters":{"id":473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":470,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"820:14:4","nodeType":"VariableDeclaration","scope":474,"src":"813:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":469,"name":"uint16","nodeType":"ElementaryTypeName","src":"813:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":472,"indexed":false,"mutability":"mutable","name":"_remoteAddress","nameLocation":"842:14:4","nodeType":"VariableDeclaration","scope":474,"src":"836:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":471,"name":"bytes","nodeType":"ElementaryTypeName","src":"836:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"812:45:4"},"src":"783:75:4"},{"anonymous":false,"id":482,"name":"SetMinDstGas","nameLocation":"869:12:4","nodeType":"EventDefinition","parameters":{"id":481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":476,"indexed":false,"mutability":"mutable","name":"_dstChainId","nameLocation":"889:11:4","nodeType":"VariableDeclaration","scope":482,"src":"882:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":475,"name":"uint16","nodeType":"ElementaryTypeName","src":"882:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":478,"indexed":false,"mutability":"mutable","name":"_type","nameLocation":"909:5:4","nodeType":"VariableDeclaration","scope":482,"src":"902:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":477,"name":"uint16","nodeType":"ElementaryTypeName","src":"902:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":480,"indexed":false,"mutability":"mutable","name":"_minDstGas","nameLocation":"921:10:4","nodeType":"VariableDeclaration","scope":482,"src":"916:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":479,"name":"uint","nodeType":"ElementaryTypeName","src":"916:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"881:51:4"},"src":"863:70:4"},{"body":{"id":493,"nodeType":"Block","src":"970:59:4","statements":[{"expression":{"id":491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":487,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"980:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":489,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"1012:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":488,"name":"ILayerZeroEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"993:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroEndpoint_$144_$","typeString":"type(contract ILayerZeroEndpoint)"}},"id":490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"993:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"src":"980:42:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":492,"nodeType":"ExpressionStatement","src":"980:42:4"}]},"id":494,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":484,"mutability":"mutable","name":"_endpoint","nameLocation":"959:9:4","nodeType":"VariableDeclaration","scope":494,"src":"951:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":483,"name":"address","nodeType":"ElementaryTypeName","src":"951:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"950:19:4"},"returnParameters":{"id":486,"nodeType":"ParameterList","parameters":[],"src":"970:0:4"},"scope":917,"src":"939:90:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[157],"body":{"id":552,"nodeType":"Block","src":"1166:622:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":507,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1249:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1249:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":511,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"1273:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}],"id":510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1265:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":509,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:4","typeDescriptions":{}}},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1265:19:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1249:35:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","id":514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1286:32:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""},"value":"LzApp: invalid endpoint caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""}],"id":506,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1241:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1241:78:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":516,"nodeType":"ExpressionStatement","src":"1241:78:4"},{"assignments":[518],"declarations":[{"constant":false,"id":518,"mutability":"mutable","name":"trustedRemote","nameLocation":"1343:13:4","nodeType":"VariableDeclaration","scope":552,"src":"1330:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":517,"name":"bytes","nodeType":"ElementaryTypeName","src":"1330:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":522,"initialValue":{"baseExpression":{"id":519,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"1359:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":521,"indexExpression":{"id":520,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"1379:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1359:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1330:61:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":524,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1541:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1541:18:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":526,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1563:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1563:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1541:42:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":529,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1587:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1587:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1610:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1587:24:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1541:70:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":535,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1625:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":534,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1615:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1615:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":538,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1651:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":537,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1641:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1641:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1615:50:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1541:124:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6e7472616374","id":542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1667:40:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""},"value":"LzApp: invalid source sending contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""}],"id":523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1533:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1533:175:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":544,"nodeType":"ExpressionStatement","src":"1533:175:4"},{"expression":{"arguments":[{"id":546,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"1738:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":547,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1751:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":548,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"1764:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":549,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"1772:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":545,"name":"_blockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":564,"src":"1719:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1719:62:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":551,"nodeType":"ExpressionStatement","src":"1719:62:4"}]},"functionSelector":"001d3567","id":553,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"1044:9:4","nodeType":"FunctionDefinition","overrides":{"id":504,"nodeType":"OverrideSpecifier","overrides":[],"src":"1157:8:4"},"parameters":{"id":503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":496,"mutability":"mutable","name":"_srcChainId","nameLocation":"1061:11:4","nodeType":"VariableDeclaration","scope":553,"src":"1054:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":495,"name":"uint16","nodeType":"ElementaryTypeName","src":"1054:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":498,"mutability":"mutable","name":"_srcAddress","nameLocation":"1089:11:4","nodeType":"VariableDeclaration","scope":553,"src":"1074:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":497,"name":"bytes","nodeType":"ElementaryTypeName","src":"1074:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":500,"mutability":"mutable","name":"_nonce","nameLocation":"1109:6:4","nodeType":"VariableDeclaration","scope":553,"src":"1102:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":499,"name":"uint64","nodeType":"ElementaryTypeName","src":"1102:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":502,"mutability":"mutable","name":"_payload","nameLocation":"1132:8:4","nodeType":"VariableDeclaration","scope":553,"src":"1117:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":501,"name":"bytes","nodeType":"ElementaryTypeName","src":"1117:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1053:88:4"},"returnParameters":{"id":505,"nodeType":"ParameterList","parameters":[],"src":"1166:0:4"},"scope":917,"src":"1035:753:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":564,"implemented":false,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"1946:18:4","nodeType":"FunctionDefinition","parameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":555,"mutability":"mutable","name":"_srcChainId","nameLocation":"1972:11:4","nodeType":"VariableDeclaration","scope":564,"src":"1965:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":554,"name":"uint16","nodeType":"ElementaryTypeName","src":"1965:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":557,"mutability":"mutable","name":"_srcAddress","nameLocation":"1998:11:4","nodeType":"VariableDeclaration","scope":564,"src":"1985:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":556,"name":"bytes","nodeType":"ElementaryTypeName","src":"1985:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":559,"mutability":"mutable","name":"_nonce","nameLocation":"2018:6:4","nodeType":"VariableDeclaration","scope":564,"src":"2011:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":558,"name":"uint64","nodeType":"ElementaryTypeName","src":"2011:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":561,"mutability":"mutable","name":"_payload","nameLocation":"2039:8:4","nodeType":"VariableDeclaration","scope":564,"src":"2026:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":560,"name":"bytes","nodeType":"ElementaryTypeName","src":"2026:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1964:84:4"},"returnParameters":{"id":563,"nodeType":"ParameterList","parameters":[],"src":"2065:0:4"},"scope":917,"src":"1937:129:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":606,"nodeType":"Block","src":"2255:308:4","statements":[{"assignments":[580],"declarations":[{"constant":false,"id":580,"mutability":"mutable","name":"trustedRemote","nameLocation":"2278:13:4","nodeType":"VariableDeclaration","scope":606,"src":"2265:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":579,"name":"bytes","nodeType":"ElementaryTypeName","src":"2265:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":584,"initialValue":{"baseExpression":{"id":581,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"2294:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":583,"indexExpression":{"id":582,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":566,"src":"2314:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2294:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2265:61:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":586,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"2344:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2344:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2368:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2344:25:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2371:50:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""},"value":"LzApp: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""}],"id":585,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2336:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2336:86:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"2336:86:4"},{"expression":{"arguments":[{"id":598,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":566,"src":"2467:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":599,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"2480:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":600,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"2495:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":601,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2505:14:4","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":602,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"2521:18:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":603,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":574,"src":"2541:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":593,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"2432:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"send","nodeType":"MemberAccess","referencedDeclaration":19,"src":"2432:15:4","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":596,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":576,"src":"2455:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2432:34:4","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2432:124:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":605,"nodeType":"ExpressionStatement","src":"2432:124:4"}]},"id":607,"implemented":true,"kind":"function","modifiers":[],"name":"_lzSend","nameLocation":"2081:7:4","nodeType":"FunctionDefinition","parameters":{"id":577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":566,"mutability":"mutable","name":"_dstChainId","nameLocation":"2096:11:4","nodeType":"VariableDeclaration","scope":607,"src":"2089:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":565,"name":"uint16","nodeType":"ElementaryTypeName","src":"2089:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":568,"mutability":"mutable","name":"_payload","nameLocation":"2122:8:4","nodeType":"VariableDeclaration","scope":607,"src":"2109:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":567,"name":"bytes","nodeType":"ElementaryTypeName","src":"2109:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":570,"mutability":"mutable","name":"_refundAddress","nameLocation":"2148:14:4","nodeType":"VariableDeclaration","scope":607,"src":"2132:30:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":569,"name":"address","nodeType":"ElementaryTypeName","src":"2132:15:4","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":572,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"2172:18:4","nodeType":"VariableDeclaration","scope":607,"src":"2164:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":571,"name":"address","nodeType":"ElementaryTypeName","src":"2164:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":574,"mutability":"mutable","name":"_adapterParams","nameLocation":"2205:14:4","nodeType":"VariableDeclaration","scope":607,"src":"2192:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":573,"name":"bytes","nodeType":"ElementaryTypeName","src":"2192:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":576,"mutability":"mutable","name":"_nativeFee","nameLocation":"2226:10:4","nodeType":"VariableDeclaration","scope":607,"src":"2221:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":575,"name":"uint","nodeType":"ElementaryTypeName","src":"2221:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2088:149:4"},"returnParameters":{"id":578,"nodeType":"ParameterList","parameters":[],"src":"2255:0:4"},"scope":917,"src":"2072:491:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":648,"nodeType":"Block","src":"2694:290:4","statements":[{"assignments":[619],"declarations":[{"constant":false,"id":619,"mutability":"mutable","name":"providedGasLimit","nameLocation":"2709:16:4","nodeType":"VariableDeclaration","scope":648,"src":"2704:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":618,"name":"uint","nodeType":"ElementaryTypeName","src":"2704:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":623,"initialValue":{"arguments":[{"id":621,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"2741:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":620,"name":"_getGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"2728:12:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2728:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2704:52:4"},{"assignments":[625],"declarations":[{"constant":false,"id":625,"mutability":"mutable","name":"minGasLimit","nameLocation":"2771:11:4","nodeType":"VariableDeclaration","scope":648,"src":"2766:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":624,"name":"uint","nodeType":"ElementaryTypeName","src":"2766:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":633,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":626,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"2785:15:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":628,"indexExpression":{"id":627,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"2801:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2785:28:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":630,"indexExpression":{"id":629,"name":"_type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"2814:5:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2785:35:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":631,"name":"_extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"2823:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2785:47:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2766:66:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":635,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":625,"src":"2850:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2864:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2850:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206d696e4761734c696d6974206e6f7420736574","id":638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2867:28:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""},"value":"LzApp: minGasLimit not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""}],"id":634,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2842:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2842:54:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":640,"nodeType":"ExpressionStatement","src":"2842:54:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":642,"name":"providedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"2914:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":643,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":625,"src":"2934:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2914:31:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20676173206c696d697420697320746f6f206c6f77","id":645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2947:29:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""},"value":"LzApp: gas limit is too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""}],"id":641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2906:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2906:71:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":647,"nodeType":"ExpressionStatement","src":"2906:71:4"}]},"id":649,"implemented":true,"kind":"function","modifiers":[],"name":"_checkGasLimit","nameLocation":"2578:14:4","nodeType":"FunctionDefinition","parameters":{"id":616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":609,"mutability":"mutable","name":"_dstChainId","nameLocation":"2600:11:4","nodeType":"VariableDeclaration","scope":649,"src":"2593:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":608,"name":"uint16","nodeType":"ElementaryTypeName","src":"2593:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":611,"mutability":"mutable","name":"_type","nameLocation":"2620:5:4","nodeType":"VariableDeclaration","scope":649,"src":"2613:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":610,"name":"uint16","nodeType":"ElementaryTypeName","src":"2613:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":613,"mutability":"mutable","name":"_adapterParams","nameLocation":"2640:14:4","nodeType":"VariableDeclaration","scope":649,"src":"2627:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":612,"name":"bytes","nodeType":"ElementaryTypeName","src":"2627:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":615,"mutability":"mutable","name":"_extraGas","nameLocation":"2661:9:4","nodeType":"VariableDeclaration","scope":649,"src":"2656:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":614,"name":"uint","nodeType":"ElementaryTypeName","src":"2656:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2592:79:4"},"returnParameters":{"id":617,"nodeType":"ParameterList","parameters":[],"src":"2694:0:4"},"scope":917,"src":"2569:415:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":665,"nodeType":"Block","src":"3087:169:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":657,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"3105:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3105:21:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3334","id":659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3130:2:4","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"3105:27:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c69642061646170746572506172616d73","id":661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3134:30:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""},"value":"LzApp: invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""}],"id":656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3097:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3097:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":663,"nodeType":"ExpressionStatement","src":"3097:68:4"},{"AST":{"nodeType":"YulBlock","src":"3184:66:4","statements":[{"nodeType":"YulAssignment","src":"3198:42:4","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"3220:14:4"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:4","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:4"},"nodeType":"YulFunctionCall","src":"3216:23:4"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3210:5:4"},"nodeType":"YulFunctionCall","src":"3210:30:4"},"variableNames":[{"name":"gasLimit","nodeType":"YulIdentifier","src":"3198:8:4"}]}]},"evmVersion":"london","externalReferences":[{"declaration":651,"isOffset":false,"isSlot":false,"src":"3220:14:4","valueSize":1},{"declaration":654,"isOffset":false,"isSlot":false,"src":"3198:8:4","valueSize":1}],"id":664,"nodeType":"InlineAssembly","src":"3175:75:4"}]},"id":666,"implemented":true,"kind":"function","modifiers":[],"name":"_getGasLimit","nameLocation":"2999:12:4","nodeType":"FunctionDefinition","parameters":{"id":652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":651,"mutability":"mutable","name":"_adapterParams","nameLocation":"3025:14:4","nodeType":"VariableDeclaration","scope":666,"src":"3012:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":650,"name":"bytes","nodeType":"ElementaryTypeName","src":"3012:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3011:29:4"},"returnParameters":{"id":655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":654,"mutability":"mutable","name":"gasLimit","nameLocation":"3077:8:4","nodeType":"VariableDeclaration","scope":666,"src":"3072:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":653,"name":"uint","nodeType":"ElementaryTypeName","src":"3072:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3071:15:4"},"scope":917,"src":"2990:266:4","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":690,"nodeType":"Block","src":"3475:92:4","statements":[{"expression":{"arguments":[{"id":681,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"3513:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":682,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"3523:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":685,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3541:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}],"id":684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3533:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":683,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:4","typeDescriptions":{}}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3533:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":687,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":674,"src":"3548:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":679,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3492:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getConfig","nodeType":"MemberAccess","referencedDeclaration":129,"src":"3492:20:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint16,uint16,address,uint256) view external returns (bytes memory)"}},"id":688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3492:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":678,"id":689,"nodeType":"Return","src":"3485:75:4"}]},"functionSelector":"f5ecbdbc","id":691,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"3367:9:4","nodeType":"FunctionDefinition","parameters":{"id":675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":668,"mutability":"mutable","name":"_version","nameLocation":"3384:8:4","nodeType":"VariableDeclaration","scope":691,"src":"3377:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":667,"name":"uint16","nodeType":"ElementaryTypeName","src":"3377:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":670,"mutability":"mutable","name":"_chainId","nameLocation":"3401:8:4","nodeType":"VariableDeclaration","scope":691,"src":"3394:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":669,"name":"uint16","nodeType":"ElementaryTypeName","src":"3394:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":691,"src":"3411:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":671,"name":"address","nodeType":"ElementaryTypeName","src":"3411:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":674,"mutability":"mutable","name":"_configType","nameLocation":"3425:11:4","nodeType":"VariableDeclaration","scope":691,"src":"3420:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":673,"name":"uint","nodeType":"ElementaryTypeName","src":"3420:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3376:61:4"},"returnParameters":{"id":678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":691,"src":"3461:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":676,"name":"bytes","nodeType":"ElementaryTypeName","src":"3461:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3460:14:4"},"scope":917,"src":"3358:209:4","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[171],"body":{"id":714,"nodeType":"Block","src":"3749:79:4","statements":[{"expression":{"arguments":[{"id":708,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"3780:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":709,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"3790:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":710,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"3800:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":711,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"3813:7:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":705,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3759:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setConfig","nodeType":"MemberAccess","referencedDeclaration":171,"src":"3759:20:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,uint16,uint256,bytes memory) external"}},"id":712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3759:62:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":713,"nodeType":"ExpressionStatement","src":"3759:62:4"}]},"functionSelector":"cbed8b9c","id":715,"implemented":true,"kind":"function","modifiers":[{"id":703,"kind":"modifierInvocation","modifierName":{"id":702,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"3739:9:4"},"nodeType":"ModifierInvocation","src":"3739:9:4"}],"name":"setConfig","nameLocation":"3635:9:4","nodeType":"FunctionDefinition","overrides":{"id":701,"nodeType":"OverrideSpecifier","overrides":[],"src":"3730:8:4"},"parameters":{"id":700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":693,"mutability":"mutable","name":"_version","nameLocation":"3652:8:4","nodeType":"VariableDeclaration","scope":715,"src":"3645:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":692,"name":"uint16","nodeType":"ElementaryTypeName","src":"3645:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":695,"mutability":"mutable","name":"_chainId","nameLocation":"3669:8:4","nodeType":"VariableDeclaration","scope":715,"src":"3662:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":694,"name":"uint16","nodeType":"ElementaryTypeName","src":"3662:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":697,"mutability":"mutable","name":"_configType","nameLocation":"3684:11:4","nodeType":"VariableDeclaration","scope":715,"src":"3679:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":696,"name":"uint","nodeType":"ElementaryTypeName","src":"3679:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":699,"mutability":"mutable","name":"_config","nameLocation":"3712:7:4","nodeType":"VariableDeclaration","scope":715,"src":"3697:22:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":698,"name":"bytes","nodeType":"ElementaryTypeName","src":"3697:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3644:76:4"},"returnParameters":{"id":704,"nodeType":"ParameterList","parameters":[],"src":"3749:0:4"},"scope":917,"src":"3626:202:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[176],"body":{"id":729,"nodeType":"Block","src":"3903:52:4","statements":[{"expression":{"arguments":[{"id":726,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":717,"src":"3939:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":723,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3913:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setSendVersion","nodeType":"MemberAccess","referencedDeclaration":176,"src":"3913:25:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3913:35:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":728,"nodeType":"ExpressionStatement","src":"3913:35:4"}]},"functionSelector":"07e0db17","id":730,"implemented":true,"kind":"function","modifiers":[{"id":721,"kind":"modifierInvocation","modifierName":{"id":720,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"3893:9:4"},"nodeType":"ModifierInvocation","src":"3893:9:4"}],"name":"setSendVersion","nameLocation":"3843:14:4","nodeType":"FunctionDefinition","overrides":{"id":719,"nodeType":"OverrideSpecifier","overrides":[],"src":"3884:8:4"},"parameters":{"id":718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":717,"mutability":"mutable","name":"_version","nameLocation":"3865:8:4","nodeType":"VariableDeclaration","scope":730,"src":"3858:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":716,"name":"uint16","nodeType":"ElementaryTypeName","src":"3858:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3857:17:4"},"returnParameters":{"id":722,"nodeType":"ParameterList","parameters":[],"src":"3903:0:4"},"scope":917,"src":"3834:121:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[181],"body":{"id":744,"nodeType":"Block","src":"4033:55:4","statements":[{"expression":{"arguments":[{"id":741,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"4072:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":738,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4043:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setReceiveVersion","nodeType":"MemberAccess","referencedDeclaration":181,"src":"4043:28:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4043:38:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":743,"nodeType":"ExpressionStatement","src":"4043:38:4"}]},"functionSelector":"10ddb137","id":745,"implemented":true,"kind":"function","modifiers":[{"id":736,"kind":"modifierInvocation","modifierName":{"id":735,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4023:9:4"},"nodeType":"ModifierInvocation","src":"4023:9:4"}],"name":"setReceiveVersion","nameLocation":"3970:17:4","nodeType":"FunctionDefinition","overrides":{"id":734,"nodeType":"OverrideSpecifier","overrides":[],"src":"4014:8:4"},"parameters":{"id":733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"mutability":"mutable","name":"_version","nameLocation":"3995:8:4","nodeType":"VariableDeclaration","scope":745,"src":"3988:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":731,"name":"uint16","nodeType":"ElementaryTypeName","src":"3988:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3987:17:4"},"returnParameters":{"id":737,"nodeType":"ParameterList","parameters":[],"src":"4033:0:4"},"scope":917,"src":"3961:127:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[188],"body":{"id":762,"nodeType":"Block","src":"4198:72:4","statements":[{"expression":{"arguments":[{"id":758,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"4238:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":759,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":749,"src":"4251:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":755,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4208:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"forceResumeReceive","nodeType":"MemberAccess","referencedDeclaration":188,"src":"4208:29:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory) external"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4208:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":761,"nodeType":"ExpressionStatement","src":"4208:55:4"}]},"functionSelector":"42d65a8d","id":763,"implemented":true,"kind":"function","modifiers":[{"id":753,"kind":"modifierInvocation","modifierName":{"id":752,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4188:9:4"},"nodeType":"ModifierInvocation","src":"4188:9:4"}],"name":"forceResumeReceive","nameLocation":"4103:18:4","nodeType":"FunctionDefinition","overrides":{"id":751,"nodeType":"OverrideSpecifier","overrides":[],"src":"4179:8:4"},"parameters":{"id":750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":747,"mutability":"mutable","name":"_srcChainId","nameLocation":"4129:11:4","nodeType":"VariableDeclaration","scope":763,"src":"4122:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":746,"name":"uint16","nodeType":"ElementaryTypeName","src":"4122:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":749,"mutability":"mutable","name":"_srcAddress","nameLocation":"4157:11:4","nodeType":"VariableDeclaration","scope":763,"src":"4142:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":748,"name":"bytes","nodeType":"ElementaryTypeName","src":"4142:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4121:48:4"},"returnParameters":{"id":754,"nodeType":"ParameterList","parameters":[],"src":"4198:0:4"},"scope":917,"src":"4094:176:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":783,"nodeType":"Block","src":"4500:108:4","statements":[{"expression":{"id":776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":772,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"4510:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":774,"indexExpression":{"id":773,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"4530:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4510:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":775,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"4545:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"4510:40:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":777,"nodeType":"ExpressionStatement","src":"4510:40:4"},{"eventCall":{"arguments":[{"id":779,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"4582:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":780,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"4595:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":778,"name":"SetTrustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"4565:16:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4565:36:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":782,"nodeType":"EmitStatement","src":"4560:41:4"}]},"functionSelector":"eb8d72b7","id":784,"implemented":true,"kind":"function","modifiers":[{"id":770,"kind":"modifierInvocation","modifierName":{"id":769,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4490:9:4"},"nodeType":"ModifierInvocation","src":"4490:9:4"}],"name":"setTrustedRemote","nameLocation":"4422:16:4","nodeType":"FunctionDefinition","parameters":{"id":768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":765,"mutability":"mutable","name":"_srcChainId","nameLocation":"4446:11:4","nodeType":"VariableDeclaration","scope":784,"src":"4439:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":764,"name":"uint16","nodeType":"ElementaryTypeName","src":"4439:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":767,"mutability":"mutable","name":"_path","nameLocation":"4474:5:4","nodeType":"VariableDeclaration","scope":784,"src":"4459:20:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":766,"name":"bytes","nodeType":"ElementaryTypeName","src":"4459:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4438:42:4"},"returnParameters":{"id":771,"nodeType":"ParameterList","parameters":[],"src":"4500:0:4"},"scope":917,"src":"4413:195:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":811,"nodeType":"Block","src":"4720:172:4","statements":[{"expression":{"id":804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":793,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"4730:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":795,"indexExpression":{"id":794,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"4750:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4730:35:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":798,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"4785:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"id":801,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4809:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}],"id":800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4801:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":799,"name":"address","nodeType":"ElementaryTypeName","src":"4801:7:4","typeDescriptions":{}}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4801:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4768:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4768:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4768:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4730:85:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":805,"nodeType":"ExpressionStatement","src":"4730:85:4"},{"eventCall":{"arguments":[{"id":807,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"4854:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":808,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"4870:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":806,"name":"SetTrustedRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"4830:23:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4830:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":810,"nodeType":"EmitStatement","src":"4825:60:4"}]},"functionSelector":"a6c3d165","id":812,"implemented":true,"kind":"function","modifiers":[{"id":791,"kind":"modifierInvocation","modifierName":{"id":790,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4710:9:4"},"nodeType":"ModifierInvocation","src":"4710:9:4"}],"name":"setTrustedRemoteAddress","nameLocation":"4623:23:4","nodeType":"FunctionDefinition","parameters":{"id":789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":786,"mutability":"mutable","name":"_remoteChainId","nameLocation":"4654:14:4","nodeType":"VariableDeclaration","scope":812,"src":"4647:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":785,"name":"uint16","nodeType":"ElementaryTypeName","src":"4647:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":788,"mutability":"mutable","name":"_remoteAddress","nameLocation":"4685:14:4","nodeType":"VariableDeclaration","scope":812,"src":"4670:29:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":787,"name":"bytes","nodeType":"ElementaryTypeName","src":"4670:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4646:54:4"},"returnParameters":{"id":792,"nodeType":"ParameterList","parameters":[],"src":"4720:0:4"},"scope":917,"src":"4614:278:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":842,"nodeType":"Block","src":"4991:233:4","statements":[{"assignments":[820],"declarations":[{"constant":false,"id":820,"mutability":"mutable","name":"path","nameLocation":"5014:4:4","nodeType":"VariableDeclaration","scope":842,"src":"5001:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":819,"name":"bytes","nodeType":"ElementaryTypeName","src":"5001:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":824,"initialValue":{"baseExpression":{"id":821,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"5021:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":823,"indexExpression":{"id":822,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":814,"src":"5041:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5021:35:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5001:55:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":826,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5074:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5074:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5089:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5074:16:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","id":830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5092:31:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""},"value":"LzApp: no trusted path record"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""}],"id":825,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5066:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5066:58:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":832,"nodeType":"ExpressionStatement","src":"5066:58:4"},{"expression":{"arguments":[{"hexValue":"30","id":835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5152:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":836,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5155:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5155:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3230","id":838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5169:2:4","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"5155:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":833,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5141:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":2517,"src":"5141:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5141:31:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":818,"id":841,"nodeType":"Return","src":"5134:38:4"}]},"functionSelector":"9f38369a","id":843,"implemented":true,"kind":"function","modifiers":[],"name":"getTrustedRemoteAddress","nameLocation":"4907:23:4","nodeType":"FunctionDefinition","parameters":{"id":815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":814,"mutability":"mutable","name":"_remoteChainId","nameLocation":"4938:14:4","nodeType":"VariableDeclaration","scope":843,"src":"4931:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":813,"name":"uint16","nodeType":"ElementaryTypeName","src":"4931:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4930:23:4"},"returnParameters":{"id":818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":843,"src":"4977:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":816,"name":"bytes","nodeType":"ElementaryTypeName","src":"4977:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4976:14:4"},"scope":917,"src":"4898:326:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":858,"nodeType":"Block","src":"5289:74:4","statements":[{"expression":{"id":852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":850,"name":"precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":458,"src":"5299:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":851,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"5310:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5299:20:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":853,"nodeType":"ExpressionStatement","src":"5299:20:4"},{"eventCall":{"arguments":[{"id":855,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"5346:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":854,"name":"SetPrecrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":462,"src":"5334:11:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5334:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"EmitStatement","src":"5329:27:4"}]},"functionSelector":"baf3292d","id":859,"implemented":true,"kind":"function","modifiers":[{"id":848,"kind":"modifierInvocation","modifierName":{"id":847,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"5279:9:4"},"nodeType":"ModifierInvocation","src":"5279:9:4"}],"name":"setPrecrime","nameLocation":"5239:11:4","nodeType":"FunctionDefinition","parameters":{"id":846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":845,"mutability":"mutable","name":"_precrime","nameLocation":"5259:9:4","nodeType":"VariableDeclaration","scope":859,"src":"5251:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":844,"name":"address","nodeType":"ElementaryTypeName","src":"5251:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5250:19:4"},"returnParameters":{"id":849,"nodeType":"ParameterList","parameters":[],"src":"5289:0:4"},"scope":917,"src":"5230:133:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":891,"nodeType":"Block","src":"5464:185:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":871,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5482:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5492:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5482:11:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","id":874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5495:23:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e","typeString":"literal_string \"LzApp: invalid minGas\""},"value":"LzApp: invalid minGas"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e","typeString":"literal_string \"LzApp: invalid minGas\""}],"id":870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5474:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5474:45:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":876,"nodeType":"ExpressionStatement","src":"5474:45:4"},{"expression":{"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":877,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"5529:15:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":880,"indexExpression":{"id":878,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"5545:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5529:28:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":881,"indexExpression":{"id":879,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"5558:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5529:41:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":882,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5573:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5529:51:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":884,"nodeType":"ExpressionStatement","src":"5529:51:4"},{"eventCall":{"arguments":[{"id":886,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"5608:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":887,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"5621:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":888,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5634:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":885,"name":"SetMinDstGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":482,"src":"5595:12:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint16,uint256)"}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5595:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":890,"nodeType":"EmitStatement","src":"5590:52:4"}]},"functionSelector":"df2a5b3b","id":892,"implemented":true,"kind":"function","modifiers":[{"id":868,"kind":"modifierInvocation","modifierName":{"id":867,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"5454:9:4"},"nodeType":"ModifierInvocation","src":"5454:9:4"}],"name":"setMinDstGas","nameLocation":"5378:12:4","nodeType":"FunctionDefinition","parameters":{"id":866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":861,"mutability":"mutable","name":"_dstChainId","nameLocation":"5398:11:4","nodeType":"VariableDeclaration","scope":892,"src":"5391:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":860,"name":"uint16","nodeType":"ElementaryTypeName","src":"5391:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":863,"mutability":"mutable","name":"_packetType","nameLocation":"5418:11:4","nodeType":"VariableDeclaration","scope":892,"src":"5411:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":862,"name":"uint16","nodeType":"ElementaryTypeName","src":"5411:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":865,"mutability":"mutable","name":"_minGas","nameLocation":"5436:7:4","nodeType":"VariableDeclaration","scope":892,"src":"5431:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":864,"name":"uint","nodeType":"ElementaryTypeName","src":"5431:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5390:54:4"},"returnParameters":{"id":869,"nodeType":"ParameterList","parameters":[],"src":"5464:0:4"},"scope":917,"src":"5369:280:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":915,"nodeType":"Block","src":"5846:145:4","statements":[{"assignments":[902],"declarations":[{"constant":false,"id":902,"mutability":"mutable","name":"trustedSource","nameLocation":"5869:13:4","nodeType":"VariableDeclaration","scope":915,"src":"5856:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":901,"name":"bytes","nodeType":"ElementaryTypeName","src":"5856:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":906,"initialValue":{"baseExpression":{"id":903,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"5885:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":905,"indexExpression":{"id":904,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"5905:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5885:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5856:61:4"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":908,"name":"trustedSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":902,"src":"5944:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":907,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5934:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5934:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":911,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":896,"src":"5972:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":910,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5962:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5962:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5934:50:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":900,"id":914,"nodeType":"Return","src":"5927:57:4"}]},"functionSelector":"3d8b38f6","id":916,"implemented":true,"kind":"function","modifiers":[],"name":"isTrustedRemote","nameLocation":"5753:15:4","nodeType":"FunctionDefinition","parameters":{"id":897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":894,"mutability":"mutable","name":"_srcChainId","nameLocation":"5776:11:4","nodeType":"VariableDeclaration","scope":916,"src":"5769:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":893,"name":"uint16","nodeType":"ElementaryTypeName","src":"5769:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":896,"mutability":"mutable","name":"_srcAddress","nameLocation":"5804:11:4","nodeType":"VariableDeclaration","scope":916,"src":"5789:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":895,"name":"bytes","nodeType":"ElementaryTypeName","src":"5789:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5768:48:4"},"returnParameters":{"id":900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":916,"src":"5840:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":898,"name":"bool","nodeType":"ElementaryTypeName","src":"5840:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5839:6:4"},"scope":917,"src":"5744:247:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":918,"src":"343:5650:4","usedErrors":[]}],"src":"33:5961:4"},"id":4},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LzApp":[917],"NonblockingLzApp":[1136],"Ownable":[2996]},"id":1137,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":919,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:5"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","file":"./LzApp.sol","id":920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1137,"sourceUnit":918,"src":"58:21:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol","file":"../util/ExcessivelySafeCall.sol","id":921,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1137,"sourceUnit":2884,"src":"80:41:5","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":922,"name":"LzApp","nodeType":"IdentifierPath","referencedDeclaration":917,"src":"505:5:5"},"id":923,"nodeType":"InheritanceSpecifier","src":"505:5:5"}],"canonicalName":"NonblockingLzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":1136,"linearizedBaseContracts":[1136,917,189,158,2996,3708],"name":"NonblockingLzApp","nameLocation":"485:16:5","nodeType":"ContractDefinition","nodes":[{"id":926,"libraryName":{"id":924,"name":"ExcessivelySafeCall","nodeType":"IdentifierPath","referencedDeclaration":2883,"src":"523:19:5"},"nodeType":"UsingForDirective","src":"517:38:5","typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"547:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":934,"nodeType":"Block","src":"609:2:5","statements":[]},"id":935,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":931,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"598:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":932,"kind":"baseConstructorSpecifier","modifierName":{"id":930,"name":"LzApp","nodeType":"IdentifierPath","referencedDeclaration":917,"src":"592:5:5"},"nodeType":"ModifierInvocation","src":"592:16:5"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":928,"mutability":"mutable","name":"_endpoint","nameLocation":"581:9:5","nodeType":"VariableDeclaration","scope":935,"src":"573:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"573:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"572:19:5"},"returnParameters":{"id":933,"nodeType":"ParameterList","parameters":[],"src":"609:0:5"},"scope":1136,"src":"561:50:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"functionSelector":"5b8c41e6","id":943,"mutability":"mutable","name":"failedMessages","nameLocation":"688:14:5","nodeType":"VariableDeclaration","scope":1136,"src":"617:85:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"typeName":{"id":942,"keyType":{"id":936,"name":"uint16","nodeType":"ElementaryTypeName","src":"625:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"617:63:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"valueType":{"id":941,"keyType":{"id":937,"name":"bytes","nodeType":"ElementaryTypeName","src":"643:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"635:44:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes => mapping(uint64 => bytes32))"},"valueType":{"id":940,"keyType":{"id":938,"name":"uint64","nodeType":"ElementaryTypeName","src":"660:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"652:26:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"},"valueType":{"id":939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"670:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}}}},"visibility":"public"},{"anonymous":false,"id":955,"name":"MessageFailed","nameLocation":"715:13:5","nodeType":"EventDefinition","parameters":{"id":954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":945,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"736:11:5","nodeType":"VariableDeclaration","scope":955,"src":"729:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":944,"name":"uint16","nodeType":"ElementaryTypeName","src":"729:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":947,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"755:11:5","nodeType":"VariableDeclaration","scope":955,"src":"749:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":946,"name":"bytes","nodeType":"ElementaryTypeName","src":"749:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":949,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"775:6:5","nodeType":"VariableDeclaration","scope":955,"src":"768:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":948,"name":"uint64","nodeType":"ElementaryTypeName","src":"768:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":951,"indexed":false,"mutability":"mutable","name":"_payload","nameLocation":"789:8:5","nodeType":"VariableDeclaration","scope":955,"src":"783:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":950,"name":"bytes","nodeType":"ElementaryTypeName","src":"783:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":953,"indexed":false,"mutability":"mutable","name":"_reason","nameLocation":"805:7:5","nodeType":"VariableDeclaration","scope":955,"src":"799:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":952,"name":"bytes","nodeType":"ElementaryTypeName","src":"799:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"728:85:5"},"src":"709:105:5"},{"anonymous":false,"id":965,"name":"RetryMessageSuccess","nameLocation":"825:19:5","nodeType":"EventDefinition","parameters":{"id":964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":957,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"852:11:5","nodeType":"VariableDeclaration","scope":965,"src":"845:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":956,"name":"uint16","nodeType":"ElementaryTypeName","src":"845:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":959,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"871:11:5","nodeType":"VariableDeclaration","scope":965,"src":"865:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":958,"name":"bytes","nodeType":"ElementaryTypeName","src":"865:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":961,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"891:6:5","nodeType":"VariableDeclaration","scope":965,"src":"884:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":960,"name":"uint64","nodeType":"ElementaryTypeName","src":"884:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":963,"indexed":false,"mutability":"mutable","name":"_payloadHash","nameLocation":"907:12:5","nodeType":"VariableDeclaration","scope":965,"src":"899:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"899:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"844:76:5"},"src":"819:102:5"},{"baseFunctions":[564],"body":{"id":1025,"nodeType":"Block","src":"1118:453:5","statements":[{"assignments":[978,980],"declarations":[{"constant":false,"id":978,"mutability":"mutable","name":"success","nameLocation":"1134:7:5","nodeType":"VariableDeclaration","scope":1025,"src":"1129:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":977,"name":"bool","nodeType":"ElementaryTypeName","src":"1129:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":980,"mutability":"mutable","name":"reason","nameLocation":"1156:6:5","nodeType":"VariableDeclaration","scope":1025,"src":"1143:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":979,"name":"bytes","nodeType":"ElementaryTypeName","src":"1143:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1000,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":986,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"1200:7:5","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1200:9:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313530","id":988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1211:3:5","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},{"arguments":[{"expression":{"expression":{"id":991,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1239:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonblockingLzReceive","nodeType":"MemberAccess","referencedDeclaration":1056,"src":"1239:25:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1239:34:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":994,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1275:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":995,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1288:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":996,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1301:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":997,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1309:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1216:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1216:22:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:102:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":983,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1174:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}],"id":982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1166:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":981,"name":"address","nodeType":"ElementaryTypeName","src":"1166:7:5","typeDescriptions":{}}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1166:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"excessivelySafeCall","nodeType":"MemberAccess","referencedDeclaration":2826,"src":"1166:33:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$bound_to$_t_address_$","typeString":"function (address,uint256,uint16,bytes memory) returns (bool,bytes memory)"}},"id":999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1166:153:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1128:191:5"},{"condition":{"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1376:8:5","subExpression":{"id":1001,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":978,"src":"1377:7:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1024,"nodeType":"IfStatement","src":"1372:193:5","trueBody":{"id":1023,"nodeType":"Block","src":"1386:179:5","statements":[{"expression":{"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1003,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"1400:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1007,"indexExpression":{"id":1004,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1415:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1400:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1008,"indexExpression":{"id":1005,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1428:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1400:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1009,"indexExpression":{"id":1006,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1441:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1400:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1011,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1461:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1010,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1451:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1451:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1400:70:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1014,"nodeType":"ExpressionStatement","src":"1400:70:5"},{"eventCall":{"arguments":[{"id":1016,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1503:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1017,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1516:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1018,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1529:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1019,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1537:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1020,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"1547:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1015,"name":"MessageFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"1489:13:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory,bytes memory)"}},"id":1021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1489:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1022,"nodeType":"EmitStatement","src":"1484:70:5"}]}}]},"id":1026,"implemented":true,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"989:18:5","nodeType":"FunctionDefinition","overrides":{"id":975,"nodeType":"OverrideSpecifier","overrides":[],"src":"1109:8:5"},"parameters":{"id":974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":967,"mutability":"mutable","name":"_srcChainId","nameLocation":"1015:11:5","nodeType":"VariableDeclaration","scope":1026,"src":"1008:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":966,"name":"uint16","nodeType":"ElementaryTypeName","src":"1008:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":969,"mutability":"mutable","name":"_srcAddress","nameLocation":"1041:11:5","nodeType":"VariableDeclaration","scope":1026,"src":"1028:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":968,"name":"bytes","nodeType":"ElementaryTypeName","src":"1028:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":971,"mutability":"mutable","name":"_nonce","nameLocation":"1061:6:5","nodeType":"VariableDeclaration","scope":1026,"src":"1054:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":970,"name":"uint64","nodeType":"ElementaryTypeName","src":"1054:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":973,"mutability":"mutable","name":"_payload","nameLocation":"1082:8:5","nodeType":"VariableDeclaration","scope":1026,"src":"1069:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":972,"name":"bytes","nodeType":"ElementaryTypeName","src":"1069:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1007:84:5"},"returnParameters":{"id":976,"nodeType":"ParameterList","parameters":[],"src":"1118:0:5"},"scope":1136,"src":"980:591:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1055,"nodeType":"Block","src":"1710:209:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1038,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1765:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1765:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":1042,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1789:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}],"id":1041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1781:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1040,"name":"address","nodeType":"ElementaryTypeName","src":"1781:7:5","typeDescriptions":{}}},"id":1043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1781:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1765:29:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265204c7a417070","id":1045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1796:40:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""},"value":"NonblockingLzApp: caller must be LzApp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""}],"id":1037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1757:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1757:80:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1047,"nodeType":"ExpressionStatement","src":"1757:80:5"},{"expression":{"arguments":[{"id":1049,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"1869:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1050,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"1882:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1051,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"1895:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1052,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1903:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1048,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"1847:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1847:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1054,"nodeType":"ExpressionStatement","src":"1847:65:5"}]},"functionSelector":"66ad5c8a","id":1056,"implemented":true,"kind":"function","modifiers":[],"name":"nonblockingLzReceive","nameLocation":"1586:20:5","nodeType":"FunctionDefinition","parameters":{"id":1035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1028,"mutability":"mutable","name":"_srcChainId","nameLocation":"1614:11:5","nodeType":"VariableDeclaration","scope":1056,"src":"1607:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1027,"name":"uint16","nodeType":"ElementaryTypeName","src":"1607:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1030,"mutability":"mutable","name":"_srcAddress","nameLocation":"1642:11:5","nodeType":"VariableDeclaration","scope":1056,"src":"1627:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1029,"name":"bytes","nodeType":"ElementaryTypeName","src":"1627:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1032,"mutability":"mutable","name":"_nonce","nameLocation":"1662:6:5","nodeType":"VariableDeclaration","scope":1056,"src":"1655:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1031,"name":"uint64","nodeType":"ElementaryTypeName","src":"1655:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1034,"mutability":"mutable","name":"_payload","nameLocation":"1685:8:5","nodeType":"VariableDeclaration","scope":1056,"src":"1670:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1033,"name":"bytes","nodeType":"ElementaryTypeName","src":"1670:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1606:88:5"},"returnParameters":{"id":1036,"nodeType":"ParameterList","parameters":[],"src":"1710:0:5"},"scope":1136,"src":"1577:342:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":1067,"implemented":false,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1971:21:5","nodeType":"FunctionDefinition","parameters":{"id":1065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1058,"mutability":"mutable","name":"_srcChainId","nameLocation":"2000:11:5","nodeType":"VariableDeclaration","scope":1067,"src":"1993:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1057,"name":"uint16","nodeType":"ElementaryTypeName","src":"1993:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1060,"mutability":"mutable","name":"_srcAddress","nameLocation":"2026:11:5","nodeType":"VariableDeclaration","scope":1067,"src":"2013:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1059,"name":"bytes","nodeType":"ElementaryTypeName","src":"2013:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1062,"mutability":"mutable","name":"_nonce","nameLocation":"2046:6:5","nodeType":"VariableDeclaration","scope":1067,"src":"2039:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1061,"name":"uint64","nodeType":"ElementaryTypeName","src":"2039:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1064,"mutability":"mutable","name":"_payload","nameLocation":"2067:8:5","nodeType":"VariableDeclaration","scope":1067,"src":"2054:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1063,"name":"bytes","nodeType":"ElementaryTypeName","src":"2054:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1992:84:5"},"returnParameters":{"id":1066,"nodeType":"ParameterList","parameters":[],"src":"2093:0:5"},"scope":1136,"src":"1962:132:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1134,"nodeType":"Block","src":"2233:624:5","statements":[{"assignments":[1079],"declarations":[{"constant":false,"id":1079,"mutability":"mutable","name":"payloadHash","nameLocation":"2295:11:5","nodeType":"VariableDeclaration","scope":1134,"src":"2287:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2287:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1087,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1080,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"2309:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1082,"indexExpression":{"id":1081,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2324:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1084,"indexExpression":{"id":1083,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2337:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1086,"indexExpression":{"id":1085,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2350:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2287:70:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1089,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2375:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2398:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2390:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2390:7:5","typeDescriptions":{}}},"id":1093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2390:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2375:25:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373616765","id":1095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2402:37:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""},"value":"NonblockingLzApp: no stored message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""}],"id":1088,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2367:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2367:73:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1097,"nodeType":"ExpressionStatement","src":"2367:73:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1100,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"2468:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1099,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2458:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2458:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1102,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2481:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2458:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6164","id":1104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2494:35:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""},"value":"NonblockingLzApp: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""}],"id":1098,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2450:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2450:80:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1106,"nodeType":"ExpressionStatement","src":"2450:80:5"},{"expression":{"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1107,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"2576:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1111,"indexExpression":{"id":1108,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2591:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2576:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1112,"indexExpression":{"id":1109,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2604:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2576:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1113,"indexExpression":{"id":1110,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2617:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2576:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2635:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2627:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2627:7:5","typeDescriptions":{}}},"id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2627:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2576:61:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1119,"nodeType":"ExpressionStatement","src":"2576:61:5"},{"expression":{"arguments":[{"id":1121,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2726:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1122,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2739:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1123,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2752:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1124,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"2760:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1120,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"2704:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2704:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1126,"nodeType":"ExpressionStatement","src":"2704:65:5"},{"eventCall":{"arguments":[{"id":1128,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2804:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1129,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2817:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1130,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2830:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1131,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2838:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1127,"name":"RetryMessageSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"2784:19:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes32)"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2784:66:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1133,"nodeType":"EmitStatement","src":"2779:71:5"}]},"functionSelector":"d1deba1f","id":1135,"implemented":true,"kind":"function","modifiers":[],"name":"retryMessage","nameLocation":"2109:12:5","nodeType":"FunctionDefinition","parameters":{"id":1076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1069,"mutability":"mutable","name":"_srcChainId","nameLocation":"2129:11:5","nodeType":"VariableDeclaration","scope":1135,"src":"2122:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1068,"name":"uint16","nodeType":"ElementaryTypeName","src":"2122:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1071,"mutability":"mutable","name":"_srcAddress","nameLocation":"2157:11:5","nodeType":"VariableDeclaration","scope":1135,"src":"2142:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1070,"name":"bytes","nodeType":"ElementaryTypeName","src":"2142:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1073,"mutability":"mutable","name":"_nonce","nameLocation":"2177:6:5","nodeType":"VariableDeclaration","scope":1135,"src":"2170:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1072,"name":"uint64","nodeType":"ElementaryTypeName","src":"2170:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1075,"mutability":"mutable","name":"_payload","nameLocation":"2200:8:5","nodeType":"VariableDeclaration","scope":1135,"src":"2185:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1074,"name":"bytes","nodeType":"ElementaryTypeName","src":"2185:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2121:88:5"},"returnParameters":{"id":1077,"nodeType":"ParameterList","parameters":[],"src":"2233:0:5"},"scope":1136,"src":"2100:757:5","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":1137,"src":"467:2392:5","usedErrors":[]}],"src":"33:2827:5"},"id":5},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LZEndpointMock":[2453],"LzLib":[427]},"id":2454,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":1138,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:6"},{"id":1139,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:6"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","file":"../interfaces/ILayerZeroReceiver.sol","id":1140,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":159,"src":"83:46:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","file":"../interfaces/ILayerZeroEndpoint.sol","id":1141,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":145,"src":"130:46:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol","file":"../libraries/LzLib.sol","id":1142,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":428,"src":"177:32:6","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1143,"name":"ILayerZeroEndpoint","nodeType":"IdentifierPath","referencedDeclaration":144,"src":"844:18:6"},"id":1144,"nodeType":"InheritanceSpecifier","src":"844:18:6"}],"canonicalName":"LZEndpointMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":2453,"linearizedBaseContracts":[2453,144,189],"name":"LZEndpointMock","nameLocation":"826:14:6","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1147,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"893:12:6","nodeType":"VariableDeclaration","scope":2453,"src":"869:40:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1145,"name":"uint8","nodeType":"ElementaryTypeName","src":"869:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"908:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1150,"mutability":"constant","name":"_ENTERED","nameLocation":"939:8:6","nodeType":"VariableDeclaration","scope":2453,"src":"915:36:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1148,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":false,"functionSelector":"c81b383a","id":1154,"mutability":"mutable","name":"lzEndpointLookup","nameLocation":"993:16:6","nodeType":"VariableDeclaration","scope":2453,"src":"958:51:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":1153,"keyType":{"id":1151,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"958:27:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":1152,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"db14f305","id":1156,"mutability":"mutable","name":"mockChainId","nameLocation":"1030:11:6","nodeType":"VariableDeclaration","scope":2453,"src":"1016:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1155,"name":"uint16","nodeType":"ElementaryTypeName","src":"1016:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"public"},{"constant":false,"functionSelector":"3e0dd83e","id":1158,"mutability":"mutable","name":"nextMsgBlocked","nameLocation":"1059:14:6","nodeType":"VariableDeclaration","scope":2453,"src":"1047:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1157,"name":"bool","nodeType":"ElementaryTypeName","src":"1047:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"907c5e7e","id":1161,"mutability":"mutable","name":"relayerFeeConfig","nameLocation":"1122:16:6","nodeType":"VariableDeclaration","scope":2453,"src":"1098:40:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig"},"typeName":{"id":1160,"nodeType":"UserDefinedTypeName","pathNode":{"id":1159,"name":"RelayerFeeConfig","nodeType":"IdentifierPath","referencedDeclaration":1217,"src":"1098:16:6"},"referencedDeclaration":1217,"src":"1098:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"07d3277f","id":1164,"mutability":"mutable","name":"protocolFeeConfig","nameLocation":"1169:17:6","nodeType":"VariableDeclaration","scope":2453,"src":"1144:42:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig"},"typeName":{"id":1163,"nodeType":"UserDefinedTypeName","pathNode":{"id":1162,"name":"ProtocolFeeConfig","nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"1144:17:6"},"referencedDeclaration":1206,"src":"1144:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"f9cd3ceb","id":1166,"mutability":"mutable","name":"oracleFee","nameLocation":"1204:9:6","nodeType":"VariableDeclaration","scope":2453,"src":"1192:21:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1165,"name":"uint","nodeType":"ElementaryTypeName","src":"1192:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"272bd384","id":1168,"mutability":"mutable","name":"defaultAdapterParams","nameLocation":"1232:20:6","nodeType":"VariableDeclaration","scope":2453,"src":"1219:33:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":1167,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"constant":false,"functionSelector":"9924d33b","id":1174,"mutability":"mutable","name":"inboundNonce","nameLocation":"1396:12:6","nodeType":"VariableDeclaration","scope":2453,"src":"1345:63:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"typeName":{"id":1173,"keyType":{"id":1169,"name":"uint16","nodeType":"ElementaryTypeName","src":"1353:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1345:43:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"valueType":{"id":1172,"keyType":{"id":1170,"name":"bytes","nodeType":"ElementaryTypeName","src":"1371:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1363:24:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes => uint64)"},"valueType":{"id":1171,"name":"uint64","nodeType":"ElementaryTypeName","src":"1380:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"b2086499","id":1180,"mutability":"mutable","name":"outboundNonce","nameLocation":"1542:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1489:66:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"typeName":{"id":1179,"keyType":{"id":1175,"name":"uint16","nodeType":"ElementaryTypeName","src":"1497:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1489:45:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"valueType":{"id":1178,"keyType":{"id":1176,"name":"address","nodeType":"ElementaryTypeName","src":"1515:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1507:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueType":{"id":1177,"name":"uint64","nodeType":"ElementaryTypeName","src":"1526:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"76a386dc","id":1187,"mutability":"mutable","name":"storedPayload","nameLocation":"1786:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1728:71:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"typeName":{"id":1186,"keyType":{"id":1181,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1728:50:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"valueType":{"id":1185,"keyType":{"id":1182,"name":"bytes","nodeType":"ElementaryTypeName","src":"1754:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1746:31:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.StoredPayload)"},"valueType":{"id":1184,"nodeType":"UserDefinedTypeName","pathNode":{"id":1183,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"1763:13:6"},"referencedDeclaration":1224,"src":"1763:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}}}},"visibility":"public"},{"constant":false,"functionSelector":"12a9ee6b","id":1195,"mutability":"mutable","name":"msgsToDeliver","nameLocation":"1906:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1846:73:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"typeName":{"id":1194,"keyType":{"id":1188,"name":"uint16","nodeType":"ElementaryTypeName","src":"1854:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1846:52:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"valueType":{"id":1193,"keyType":{"id":1189,"name":"bytes","nodeType":"ElementaryTypeName","src":"1872:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1864:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])"},"valueType":{"baseType":{"id":1191,"nodeType":"UserDefinedTypeName","pathNode":{"id":1190,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"1881:13:6"},"referencedDeclaration":1231,"src":"1881:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":1192,"nodeType":"ArrayTypeName","src":"1881:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}}}},"visibility":"public"},{"constant":false,"id":1198,"mutability":"mutable","name":"_send_entered_state","nameLocation":"1965:19:6","nodeType":"VariableDeclaration","scope":2453,"src":"1950:38:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1196,"name":"uint8","nodeType":"ElementaryTypeName","src":"1950:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1987:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"_receive_entered_state","nameLocation":"2009:22:6","nodeType":"VariableDeclaration","scope":2453,"src":"1994:41:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1199,"name":"uint8","nodeType":"ElementaryTypeName","src":"1994:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2034:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"canonicalName":"LZEndpointMock.ProtocolFeeConfig","id":1206,"members":[{"constant":false,"id":1203,"mutability":"mutable","name":"zroFee","nameLocation":"2082:6:6","nodeType":"VariableDeclaration","scope":1206,"src":"2077:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1202,"name":"uint","nodeType":"ElementaryTypeName","src":"2077:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1205,"mutability":"mutable","name":"nativeBP","nameLocation":"2103:8:6","nodeType":"VariableDeclaration","scope":1206,"src":"2098:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1204,"name":"uint","nodeType":"ElementaryTypeName","src":"2098:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolFeeConfig","nameLocation":"2049:17:6","nodeType":"StructDefinition","scope":2453,"src":"2042:76:6","visibility":"public"},{"canonicalName":"LZEndpointMock.RelayerFeeConfig","id":1217,"members":[{"constant":false,"id":1208,"mutability":"mutable","name":"dstPriceRatio","nameLocation":"2166:13:6","nodeType":"VariableDeclaration","scope":1217,"src":"2158:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1207,"name":"uint128","nodeType":"ElementaryTypeName","src":"2158:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1210,"mutability":"mutable","name":"dstGasPriceInWei","nameLocation":"2206:16:6","nodeType":"VariableDeclaration","scope":1217,"src":"2198:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1209,"name":"uint128","nodeType":"ElementaryTypeName","src":"2198:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1212,"mutability":"mutable","name":"dstNativeAmtCap","nameLocation":"2240:15:6","nodeType":"VariableDeclaration","scope":1217,"src":"2232:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1211,"name":"uint128","nodeType":"ElementaryTypeName","src":"2232:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1214,"mutability":"mutable","name":"baseGas","nameLocation":"2272:7:6","nodeType":"VariableDeclaration","scope":1217,"src":"2265:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1213,"name":"uint64","nodeType":"ElementaryTypeName","src":"2265:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1216,"mutability":"mutable","name":"gasPerByte","nameLocation":"2296:10:6","nodeType":"VariableDeclaration","scope":1217,"src":"2289:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1215,"name":"uint64","nodeType":"ElementaryTypeName","src":"2289:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"RelayerFeeConfig","nameLocation":"2131:16:6","nodeType":"StructDefinition","scope":2453,"src":"2124:189:6","visibility":"public"},{"canonicalName":"LZEndpointMock.StoredPayload","id":1224,"members":[{"constant":false,"id":1219,"mutability":"mutable","name":"payloadLength","nameLocation":"2357:13:6","nodeType":"VariableDeclaration","scope":1224,"src":"2350:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1218,"name":"uint64","nodeType":"ElementaryTypeName","src":"2350:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1221,"mutability":"mutable","name":"dstAddress","nameLocation":"2388:10:6","nodeType":"VariableDeclaration","scope":1224,"src":"2380:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"2380:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"payloadHash","nameLocation":"2416:11:6","nodeType":"VariableDeclaration","scope":1224,"src":"2408:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2408:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"StoredPayload","nameLocation":"2326:13:6","nodeType":"StructDefinition","scope":2453,"src":"2319:115:6","visibility":"public"},{"canonicalName":"LZEndpointMock.QueuedPayload","id":1231,"members":[{"constant":false,"id":1226,"mutability":"mutable","name":"dstAddress","nameLocation":"2479:10:6","nodeType":"VariableDeclaration","scope":1231,"src":"2471:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1225,"name":"address","nodeType":"ElementaryTypeName","src":"2471:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1228,"mutability":"mutable","name":"nonce","nameLocation":"2506:5:6","nodeType":"VariableDeclaration","scope":1231,"src":"2499:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1227,"name":"uint64","nodeType":"ElementaryTypeName","src":"2499:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"payload","nameLocation":"2527:7:6","nodeType":"VariableDeclaration","scope":1231,"src":"2521:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1229,"name":"bytes","nodeType":"ElementaryTypeName","src":"2521:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"QueuedPayload","nameLocation":"2447:13:6","nodeType":"StructDefinition","scope":2453,"src":"2440:101:6","visibility":"public"},{"body":{"id":1249,"nodeType":"Block","src":"2575:193:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1234,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2593:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1235,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2616:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2593:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6379","id":1237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2630:35:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""},"value":"LayerZeroMock: no send reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""}],"id":1233,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2585:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:81:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1239,"nodeType":"ExpressionStatement","src":"2585:81:6"},{"expression":{"id":1242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1240,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2676:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1241,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"2698:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2676:30:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1243,"nodeType":"ExpressionStatement","src":"2676:30:6"},{"id":1244,"nodeType":"PlaceholderStatement","src":"2716:1:6"},{"expression":{"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1245,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2727:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1246,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2749:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2727:34:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1248,"nodeType":"ExpressionStatement","src":"2727:34:6"}]},"id":1250,"name":"sendNonReentrant","nameLocation":"2556:16:6","nodeType":"ModifierDefinition","parameters":{"id":1232,"nodeType":"ParameterList","parameters":[],"src":"2572:2:6"},"src":"2547:221:6","virtual":false,"visibility":"internal"},{"body":{"id":1268,"nodeType":"Block","src":"2805:205:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1253,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2823:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1254,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2849:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2823:38:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472616e6379","id":1256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2863:38:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""},"value":"LayerZeroMock: no receive reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""}],"id":1252,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2815:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2815:87:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1258,"nodeType":"ExpressionStatement","src":"2815:87:6"},{"expression":{"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1259,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2912:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1260,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"2937:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2912:33:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1262,"nodeType":"ExpressionStatement","src":"2912:33:6"},{"id":1263,"nodeType":"PlaceholderStatement","src":"2955:1:6"},{"expression":{"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1264,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2966:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1265,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2991:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2966:37:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1267,"nodeType":"ExpressionStatement","src":"2966:37:6"}]},"id":1269,"name":"receiveNonReentrant","nameLocation":"2783:19:6","nodeType":"ModifierDefinition","parameters":{"id":1251,"nodeType":"ParameterList","parameters":[],"src":"2802:2:6"},"src":"2774:236:6","virtual":false,"visibility":"internal"},{"anonymous":false,"id":1275,"name":"UaForceResumeReceive","nameLocation":"3022:20:6","nodeType":"EventDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"3050:7:6","nodeType":"VariableDeclaration","scope":1275,"src":"3043:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3043:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1273,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3065:10:6","nodeType":"VariableDeclaration","scope":1275,"src":"3059:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1272,"name":"bytes","nodeType":"ElementaryTypeName","src":"3059:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3042:34:6"},"src":"3016:61:6"},{"anonymous":false,"id":1285,"name":"PayloadCleared","nameLocation":"3088:14:6","nodeType":"EventDefinition","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1277,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3110:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3103:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1276,"name":"uint16","nodeType":"ElementaryTypeName","src":"3103:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1279,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3128:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3122:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1278,"name":"bytes","nodeType":"ElementaryTypeName","src":"3122:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1281,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3147:5:6","nodeType":"VariableDeclaration","scope":1285,"src":"3140:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1280,"name":"uint64","nodeType":"ElementaryTypeName","src":"3140:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1283,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3162:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3154:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1282,"name":"address","nodeType":"ElementaryTypeName","src":"3154:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3102:71:6"},"src":"3082:92:6"},{"anonymous":false,"id":1299,"name":"PayloadStored","nameLocation":"3185:13:6","nodeType":"EventDefinition","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1287,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3206:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3199:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1286,"name":"uint16","nodeType":"ElementaryTypeName","src":"3199:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1289,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3224:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3218:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1288,"name":"bytes","nodeType":"ElementaryTypeName","src":"3218:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1291,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3244:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3236:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1290,"name":"address","nodeType":"ElementaryTypeName","src":"3236:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1293,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3263:5:6","nodeType":"VariableDeclaration","scope":1299,"src":"3256:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1292,"name":"uint64","nodeType":"ElementaryTypeName","src":"3256:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1295,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"3276:7:6","nodeType":"VariableDeclaration","scope":1299,"src":"3270:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1294,"name":"bytes","nodeType":"ElementaryTypeName","src":"3270:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1297,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"3291:6:6","nodeType":"VariableDeclaration","scope":1299,"src":"3285:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1296,"name":"bytes","nodeType":"ElementaryTypeName","src":"3285:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3198:100:6"},"src":"3179:120:6"},{"anonymous":false,"id":1305,"name":"ValueTransferFailed","nameLocation":"3310:19:6","nodeType":"EventDefinition","parameters":{"id":1304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1301,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3346:2:6","nodeType":"VariableDeclaration","scope":1305,"src":"3330:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1300,"name":"address","nodeType":"ElementaryTypeName","src":"3330:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1303,"indexed":true,"mutability":"mutable","name":"quantity","nameLocation":"3363:8:6","nodeType":"VariableDeclaration","scope":1305,"src":"3350:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1302,"name":"uint","nodeType":"ElementaryTypeName","src":"3350:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3329:43:6"},"src":"3304:69:6"},{"body":{"id":1342,"nodeType":"Block","src":"3408:501:6","statements":[{"expression":{"id":1312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1310,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"3418:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1311,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1307,"src":"3432:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3418:22:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":1313,"nodeType":"ExpressionStatement","src":"3418:22:6"},{"expression":{"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1314,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"3474:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653130","id":1316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3539:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653130","id":1317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3612:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653139","id":1318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"1e19"},{"hexValue":"313030","id":1319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3674:3:6","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"31","id":1320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3703:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1315,"name":"RelayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1217,"src":"3493:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RelayerFeeConfig_$1217_storage_ptr_$","typeString":"type(struct LZEndpointMock.RelayerFeeConfig storage pointer)"}},"id":1321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["dstPriceRatio","dstGasPriceInWei","dstNativeAmtCap","baseGas","gasPerByte"],"nodeType":"FunctionCall","src":"3493:222:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_memory_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig memory"}},"src":"3474:241:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":1323,"nodeType":"ExpressionStatement","src":"3474:241:6"},{"expression":{"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1324,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"3725:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653138","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3772:4:6","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},{"hexValue":"31303030","id":1327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3788:4:6","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":1325,"name":"ProtocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1206,"src":"3745:17:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtocolFeeConfig_$1206_storage_ptr_$","typeString":"type(struct LZEndpointMock.ProtocolFeeConfig storage pointer)"}},"id":1328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["zroFee","nativeBP"],"nodeType":"FunctionCall","src":"3745:49:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_memory_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig memory"}},"src":"3725:69:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":1330,"nodeType":"ExpressionStatement","src":"3725:69:6"},{"expression":{"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1331,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"3814:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31653136","id":1332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3826:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"value":"1e16"},"src":"3814:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1334,"nodeType":"ExpressionStatement","src":"3814:16:6"},{"expression":{"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1335,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"3840:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030303030","id":1338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3895:6:6","typeDescriptions":{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"},"value":"200000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"}],"expression":{"id":1336,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"3863:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"buildDefaultAdapterParams","nodeType":"MemberAccess","referencedDeclaration":258,"src":"3863:31:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3863:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3840:62:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1341,"nodeType":"ExpressionStatement","src":"3840:62:6"}]},"id":1343,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"_chainId","nameLocation":"3398:8:6","nodeType":"VariableDeclaration","scope":1343,"src":"3391:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1306,"name":"uint16","nodeType":"ElementaryTypeName","src":"3391:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3390:17:6"},"returnParameters":{"id":1309,"nodeType":"ParameterList","parameters":[],"src":"3408:0:6"},"scope":2453,"src":"3379:530:6","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[19],"body":{"id":1518,"nodeType":"Block","src":"4221:1804:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1362,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1347,"src":"4239:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4239:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3430","id":1364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4255:2:6","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"4239:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520616464726573732073697a65","id":1366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4259:46:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""},"value":"LayerZeroMock: incorrect remote address size"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""}],"id":1361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4231:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4231:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1368,"nodeType":"ExpressionStatement","src":"4231:75:6"},{"assignments":[1370],"declarations":[{"constant":false,"id":1370,"mutability":"mutable","name":"dstAddr","nameLocation":"4352:7:6","nodeType":"VariableDeclaration","scope":1518,"src":"4344:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1369,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1371,"nodeType":"VariableDeclarationStatement","src":"4344:15:6"},{"AST":{"nodeType":"YulBlock","src":"4378:56:6","statements":[{"nodeType":"YulAssignment","src":"4392:32:6","value":{"arguments":[{"arguments":[{"name":"_path","nodeType":"YulIdentifier","src":"4413:5:6"},{"kind":"number","nodeType":"YulLiteral","src":"4420:2:6","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4409:3:6"},"nodeType":"YulFunctionCall","src":"4409:14:6"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4403:5:6"},"nodeType":"YulFunctionCall","src":"4403:21:6"},"variableNames":[{"name":"dstAddr","nodeType":"YulIdentifier","src":"4392:7:6"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1347,"isOffset":false,"isSlot":false,"src":"4413:5:6","valueSize":1},{"declaration":1370,"isOffset":false,"isSlot":false,"src":"4392:7:6","valueSize":1}],"id":1372,"nodeType":"InlineAssembly","src":"4369:65:6"},{"assignments":[1374],"declarations":[{"constant":false,"id":1374,"mutability":"mutable","name":"lzEndpoint","nameLocation":"4452:10:6","nodeType":"VariableDeclaration","scope":1518,"src":"4444:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1373,"name":"address","nodeType":"ElementaryTypeName","src":"4444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1378,"initialValue":{"baseExpression":{"id":1375,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"4465:16:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":1377,"indexExpression":{"id":1376,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"4482:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4465:25:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4444:46:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1380,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"4508:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4530:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4522:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1381,"name":"address","nodeType":"ElementaryTypeName","src":"4522:7:6","typeDescriptions":{}}},"id":1384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4522:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4508:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c617965725a65726f20456e64706f696e74206e6f7420666f756e64","id":1386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4534:57:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""},"value":"LayerZeroMock: destination LayerZero Endpoint not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""}],"id":1379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4500:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4500:92:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1388,"nodeType":"ExpressionStatement","src":"4500:92:6"},{"assignments":[1390],"declarations":[{"constant":false,"id":1390,"mutability":"mutable","name":"adapterParams","nameLocation":"4648:13:6","nodeType":"VariableDeclaration","scope":1518,"src":"4635:26:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1389,"name":"bytes","nodeType":"ElementaryTypeName","src":"4635:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1398,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1391,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"4664:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4664:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4688:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4664:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1396,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"4709:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4664:65:6","trueExpression":{"id":1395,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"4692:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4635:94:6"},{"assignments":[1400,null],"declarations":[{"constant":false,"id":1400,"mutability":"mutable","name":"nativeFee","nameLocation":"4745:9:6","nodeType":"VariableDeclaration","scope":1518,"src":"4740:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1399,"name":"uint","nodeType":"ElementaryTypeName","src":"4740:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":1414,"initialValue":{"arguments":[{"id":1402,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"4773:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":1403,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4783:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4783:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1405,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"4795:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1406,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"4805:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":1409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4835:3:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4827:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1407,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:6","typeDescriptions":{}}},"id":1410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4827:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4805:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1412,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"4841:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1401,"name":"estimateFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1824,"src":"4760:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view returns (uint256,uint256)"}},"id":1413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4760:95:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4739:116:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1416,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4873:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"4873:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1418,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"4886:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766520666f722066656573","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4897:43:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""},"value":"LayerZeroMock: not enough native for fees"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""}],"id":1415,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4865:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4865:76:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1422,"nodeType":"ExpressionStatement","src":"4865:76:6"},{"assignments":[1424],"declarations":[{"constant":false,"id":1424,"mutability":"mutable","name":"nonce","nameLocation":"4959:5:6","nodeType":"VariableDeclaration","scope":1518,"src":"4952:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1423,"name":"uint64","nodeType":"ElementaryTypeName","src":"4952:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1432,"initialValue":{"id":1431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4967:37:6","subExpression":{"baseExpression":{"baseExpression":{"id":1425,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"4969:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":1427,"indexExpression":{"id":1426,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"4983:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4969:23:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":1430,"indexExpression":{"expression":{"id":1428,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4993:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4993:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4969:35:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4952:52:6"},{"assignments":[1434],"declarations":[{"constant":false,"id":1434,"mutability":"mutable","name":"amount","nameLocation":"5060:6:6","nodeType":"VariableDeclaration","scope":1518,"src":"5055:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1433,"name":"uint","nodeType":"ElementaryTypeName","src":"5055:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1439,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1435,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5069:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"5069:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1437,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"5081:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5069:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5055:35:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1440,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5104:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5113:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5104:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1458,"nodeType":"IfStatement","src":"5100:163:6","trueBody":{"id":1457,"nodeType":"Block","src":"5116:147:6","statements":[{"assignments":[1444,null],"declarations":[{"constant":false,"id":1444,"mutability":"mutable","name":"success","nameLocation":"5136:7:6","nodeType":"VariableDeclaration","scope":1457,"src":"5131:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1443,"name":"bool","nodeType":"ElementaryTypeName","src":"5131:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1451,"initialValue":{"arguments":[{"hexValue":"","id":1449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5184:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1445,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"5149:14:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5149:19:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1447,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5176:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5149:34:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5149:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5130:57:6"},{"expression":{"arguments":[{"id":1453,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"5209:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","id":1454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5218:33:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""},"value":"LayerZeroMock: failed to refund"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""}],"id":1452,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5201:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5201:51:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1456,"nodeType":"ExpressionStatement","src":"5201:51:6"}]}},{"assignments":[null,1460,1462,1464],"declarations":[null,{"constant":false,"id":1460,"mutability":"mutable","name":"extraGas","nameLocation":"5425:8:6","nodeType":"VariableDeclaration","scope":1518,"src":"5420:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1459,"name":"uint","nodeType":"ElementaryTypeName","src":"5420:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1462,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"5440:12:6","nodeType":"VariableDeclaration","scope":1518,"src":"5435:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1461,"name":"uint","nodeType":"ElementaryTypeName","src":"5435:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1464,"mutability":"mutable","name":"dstNativeAddr","nameLocation":"5470:13:6","nodeType":"VariableDeclaration","scope":1518,"src":"5454:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1463,"name":"address","nodeType":"ElementaryTypeName","src":"5454:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":1469,"initialValue":{"arguments":[{"id":1467,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"5513:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1465,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"5487:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":1466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":375,"src":"5487:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5487:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"5417:110:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1470,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5541:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5556:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5541:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1492,"nodeType":"IfStatement","src":"5537:222:6","trueBody":{"id":1491,"nodeType":"Block","src":"5559:200:6","statements":[{"assignments":[1474,null],"declarations":[{"constant":false,"id":1474,"mutability":"mutable","name":"success","nameLocation":"5579:7:6","nodeType":"VariableDeclaration","scope":1491,"src":"5574:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1473,"name":"bool","nodeType":"ElementaryTypeName","src":"5574:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1481,"initialValue":{"arguments":[{"hexValue":"","id":1479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5632:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1475,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"5592:13:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5592:18:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1477,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5618:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5592:39:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5592:43:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5573:62:6"},{"condition":{"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5653:8:6","subExpression":{"id":1482,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"5654:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1490,"nodeType":"IfStatement","src":"5649:100:6","trueBody":{"id":1489,"nodeType":"Block","src":"5663:86:6","statements":[{"eventCall":{"arguments":[{"id":1485,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"5706:13:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1486,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5721:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1484,"name":"ValueTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"5686:19:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5686:48:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1488,"nodeType":"EmitStatement","src":"5681:53:6"}]}}]}},{"assignments":[1494],"declarations":[{"constant":false,"id":1494,"mutability":"mutable","name":"srcUaAddress","nameLocation":"5782:12:6","nodeType":"VariableDeclaration","scope":1518,"src":"5769:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1493,"name":"bytes","nodeType":"ElementaryTypeName","src":"5769:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1501,"initialValue":{"arguments":[{"expression":{"id":1497,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5814:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5814:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1499,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"5826:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1495,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5797:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5797:16:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5797:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5769:65:6"},{"assignments":[1503],"declarations":[{"constant":false,"id":1503,"mutability":"mutable","name":"payload","nameLocation":"5887:7:6","nodeType":"VariableDeclaration","scope":1518,"src":"5874:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1502,"name":"bytes","nodeType":"ElementaryTypeName","src":"5874:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1505,"initialValue":{"id":1504,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"5897:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"5874:31:6"},{"expression":{"arguments":[{"id":1510,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"5957:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1511,"name":"srcUaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"5970:12:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1512,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"5984:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1513,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1424,"src":"5993:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1514,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"6000:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1515,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"6010:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1507,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"5930:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1506,"name":"LZEndpointMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2453,"src":"5915:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LZEndpointMock_$2453_$","typeString":"type(contract LZEndpointMock)"}},"id":1508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5915:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"receivePayload","nodeType":"MemberAccess","referencedDeclaration":1726,"src":"5915:41:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,uint256,bytes memory) external"}},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5915:103:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1517,"nodeType":"ExpressionStatement","src":"5915:103:6"}]},"functionSelector":"c5803100","id":1519,"implemented":true,"kind":"function","modifiers":[{"id":1359,"kind":"modifierInvocation","modifierName":{"id":1358,"name":"sendNonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1250,"src":"4204:16:6"},"nodeType":"ModifierInvocation","src":"4204:16:6"}],"name":"send","nameLocation":"4022:4:6","nodeType":"FunctionDefinition","overrides":{"id":1357,"nodeType":"OverrideSpecifier","overrides":[],"src":"4195:8:6"},"parameters":{"id":1356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1345,"mutability":"mutable","name":"_chainId","nameLocation":"4034:8:6","nodeType":"VariableDeclaration","scope":1519,"src":"4027:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1344,"name":"uint16","nodeType":"ElementaryTypeName","src":"4027:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1347,"mutability":"mutable","name":"_path","nameLocation":"4057:5:6","nodeType":"VariableDeclaration","scope":1519,"src":"4044:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1346,"name":"bytes","nodeType":"ElementaryTypeName","src":"4044:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1349,"mutability":"mutable","name":"_payload","nameLocation":"4079:8:6","nodeType":"VariableDeclaration","scope":1519,"src":"4064:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1348,"name":"bytes","nodeType":"ElementaryTypeName","src":"4064:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1351,"mutability":"mutable","name":"_refundAddress","nameLocation":"4105:14:6","nodeType":"VariableDeclaration","scope":1519,"src":"4089:30:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1350,"name":"address","nodeType":"ElementaryTypeName","src":"4089:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1353,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"4129:18:6","nodeType":"VariableDeclaration","scope":1519,"src":"4121:26:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1352,"name":"address","nodeType":"ElementaryTypeName","src":"4121:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1355,"mutability":"mutable","name":"_adapterParams","nameLocation":"4162:14:6","nodeType":"VariableDeclaration","scope":1519,"src":"4149:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1354,"name":"bytes","nodeType":"ElementaryTypeName","src":"4149:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4026:151:6"},"returnParameters":{"id":1360,"nodeType":"ParameterList","parameters":[],"src":"4221:0:6"},"scope":2453,"src":"4013:2012:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[34],"body":{"id":1725,"nodeType":"Block","src":"6212:2094:6","statements":[{"assignments":[1539],"declarations":[{"constant":false,"id":1539,"mutability":"mutable","name":"sp","nameLocation":"6244:2:6","nodeType":"VariableDeclaration","scope":1725,"src":"6222:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1538,"nodeType":"UserDefinedTypeName","pathNode":{"id":1537,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"6222:13:6"},"referencedDeclaration":1224,"src":"6222:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1545,"initialValue":{"baseExpression":{"baseExpression":{"id":1540,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"6249:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1542,"indexExpression":{"id":1541,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6263:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6249:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1544,"indexExpression":{"id":1543,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6276:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6249:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6222:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1547,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"6365:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6375:34:6","subExpression":{"baseExpression":{"baseExpression":{"id":1548,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"6377:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1550,"indexExpression":{"id":1549,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6390:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6377:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1552,"indexExpression":{"id":1551,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6403:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6377:32:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6365:44:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","id":1555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6411:28:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""},"value":"LayerZeroMock: wrong nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""}],"id":1546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6357:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6357:83:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1557,"nodeType":"ExpressionStatement","src":"6357:83:6"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1558,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1539,"src":"6578:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"6578:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6604:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6596:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6596:7:6","typeDescriptions":{}}},"id":1563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6596:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6578:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":1636,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7432:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1722,"nodeType":"Block","src":"7791:509:6","statements":[{"clauses":[{"block":{"id":1683,"nodeType":"Block","src":"7905:2:6","statements":[]},"errorName":"","id":1684,"nodeType":"TryCatchClause","src":"7905:2:6"},{"block":{"id":1719,"nodeType":"Block","src":"7936:354:6","statements":[{"expression":{"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1688,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"7954:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1691,"indexExpression":{"id":1689,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7968:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7954:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1692,"indexExpression":{"id":1690,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7981:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7954:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":1696,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8011:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8011:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8004:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1694,"name":"uint64","nodeType":"ElementaryTypeName","src":"8004:6:6","typeDescriptions":{}}},"id":1698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8004:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1699,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"8029:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1701,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8052:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1700,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8042:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8042:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1693,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"7990:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$1224_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":1703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7990:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"7954:108:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":1705,"nodeType":"ExpressionStatement","src":"7954:108:6"},{"eventCall":{"arguments":[{"id":1707,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"8099:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1708,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"8112:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1709,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"8119:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1710,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"8132:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1711,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8140:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1712,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"8150:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1706,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"8085:13:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":1713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8085:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1714,"nodeType":"EmitStatement","src":"8080:77:6"},{"expression":{"id":1717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1715,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"8253:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8270:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8253:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1718,"nodeType":"ExpressionStatement","src":"8253:22:6"}]},"errorName":"","id":1720,"nodeType":"TryCatchClause","parameters":{"id":1687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1686,"mutability":"mutable","name":"reason","nameLocation":"7928:6:6","nodeType":"VariableDeclaration","scope":1720,"src":"7915:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1685,"name":"bytes","nodeType":"ElementaryTypeName","src":"7915:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7914:21:6"},"src":"7908:382:6"}],"externalCall":{"arguments":[{"id":1678,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7867:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1679,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7880:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1680,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"7887:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1681,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7895:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":1673,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7828:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1672,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"7809:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":1674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7809:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"7809:41:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"id":1676,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1529,"src":"7856:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"7809:57:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$gas","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7809:95:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1721,"nodeType":"TryStatement","src":"7805:485:6"}]},"id":1723,"nodeType":"IfStatement","src":"7428:872:6","trueBody":{"id":1671,"nodeType":"Block","src":"7448:337:6","statements":[{"expression":{"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1637,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"7462:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1640,"indexExpression":{"id":1638,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7476:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7462:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1641,"indexExpression":{"id":1639,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7489:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7462:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":1645,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7519:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7519:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7512:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1643,"name":"uint64","nodeType":"ElementaryTypeName","src":"7512:6:6","typeDescriptions":{}}},"id":1647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7512:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1648,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7537:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1650,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7560:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1649,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7550:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7550:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1642,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"7498:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$1224_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7498:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"7462:108:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":1654,"nodeType":"ExpressionStatement","src":"7462:108:6"},{"eventCall":{"arguments":[{"id":1656,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7603:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1657,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7616:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1658,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7623:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1659,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"7636:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1660,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7644:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"hexValue":"","id":1663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7660:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7654:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1661,"name":"bytes","nodeType":"ElementaryTypeName","src":"7654:5:6","typeDescriptions":{}}},"id":1664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7654:9:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1655,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"7589:13:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":1665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7589:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1666,"nodeType":"EmitStatement","src":"7584:80:6"},{"expression":{"id":1669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1667,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7752:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7769:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7752:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1670,"nodeType":"ExpressionStatement","src":"7752:22:6"}]}},"id":1724,"nodeType":"IfStatement","src":"6574:1726:6","trueBody":{"id":1635,"nodeType":"Block","src":"6608:814:6","statements":[{"assignments":[1569],"declarations":[{"constant":false,"id":1569,"mutability":"mutable","name":"msgs","nameLocation":"6646:4:6","nodeType":"VariableDeclaration","scope":1635,"src":"6622:28:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":1567,"nodeType":"UserDefinedTypeName","pathNode":{"id":1566,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"6622:13:6"},"referencedDeclaration":1231,"src":"6622:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":1568,"nodeType":"ArrayTypeName","src":"6622:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":1575,"initialValue":{"baseExpression":{"baseExpression":{"id":1570,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"6653:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":1572,"indexExpression":{"id":1571,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6667:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6653:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":1574,"indexExpression":{"id":1573,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6680:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6653:33:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6622:64:6"},{"assignments":[1578],"declarations":[{"constant":false,"id":1578,"mutability":"mutable","name":"newMsg","nameLocation":"6721:6:6","nodeType":"VariableDeclaration","scope":1635,"src":"6700:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":1577,"nodeType":"UserDefinedTypeName","pathNode":{"id":1576,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"6700:13:6"},"referencedDeclaration":1231,"src":"6700:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":1584,"initialValue":{"arguments":[{"id":1580,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"6744:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1581,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"6757:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1582,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"6765:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1579,"name":"QueuedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"6730:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QueuedPayload_$1231_storage_ptr_$","typeString":"type(struct LZEndpointMock.QueuedPayload storage pointer)"}},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6730:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6700:74:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1585,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"6980:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6980:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6994:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6980:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1633,"nodeType":"Block","src":"7362:50:6","statements":[{"expression":{"arguments":[{"id":1630,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7390:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":1627,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7380:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7380:9:6","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$1231_storage_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":1631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7380:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1632,"nodeType":"ExpressionStatement","src":"7380:17:6"}]},"id":1634,"nodeType":"IfStatement","src":"6976:436:6","trueBody":{"id":1626,"nodeType":"Block","src":"6997:359:6","statements":[{"expression":{"arguments":[{"id":1592,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7061:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":1589,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7051:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7051:9:6","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$1231_storage_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":1593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7051:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1594,"nodeType":"ExpressionStatement","src":"7051:17:6"},{"body":{"id":1618,"nodeType":"Block","src":"7184:62:6","statements":[{"expression":{"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1608,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7206:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1612,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1609,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7211:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7215:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7211:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7206:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1613,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7220:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1615,"indexExpression":{"id":1614,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7225:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7220:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"src":"7206:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":1617,"nodeType":"ExpressionStatement","src":"7206:21:6"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7158:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1600,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7162:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7162:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7176:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7162:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7158:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1619,"initializationExpression":{"assignments":[1596],"declarations":[{"constant":false,"id":1596,"mutability":"mutable","name":"i","nameLocation":"7151:1:6","nodeType":"VariableDeclaration","scope":1619,"src":"7146:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint","nodeType":"ElementaryTypeName","src":"7146:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1598,"initialValue":{"hexValue":"30","id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7155:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7146:10:6"},"loopExpression":{"expression":{"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7179:3:6","subExpression":{"id":1605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7179:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1607,"nodeType":"ExpressionStatement","src":"7179:3:6"},"nodeType":"ForStatement","src":"7141:105:6"},{"expression":{"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1620,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7325:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1622,"indexExpression":{"hexValue":"30","id":1621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7330:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7325:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1623,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7335:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"src":"7325:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":1625,"nodeType":"ExpressionStatement","src":"7325:16:6"}]}}]}}]},"functionSelector":"c2fa4813","id":1726,"implemented":true,"kind":"function","modifiers":[{"id":1535,"kind":"modifierInvocation","modifierName":{"id":1534,"name":"receiveNonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1269,"src":"6192:19:6"},"nodeType":"ModifierInvocation","src":"6192:19:6"}],"name":"receivePayload","nameLocation":"6040:14:6","nodeType":"FunctionDefinition","overrides":{"id":1533,"nodeType":"OverrideSpecifier","overrides":[],"src":"6183:8:6"},"parameters":{"id":1532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1521,"mutability":"mutable","name":"_srcChainId","nameLocation":"6062:11:6","nodeType":"VariableDeclaration","scope":1726,"src":"6055:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1520,"name":"uint16","nodeType":"ElementaryTypeName","src":"6055:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1523,"mutability":"mutable","name":"_path","nameLocation":"6090:5:6","nodeType":"VariableDeclaration","scope":1726,"src":"6075:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1522,"name":"bytes","nodeType":"ElementaryTypeName","src":"6075:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1525,"mutability":"mutable","name":"_dstAddress","nameLocation":"6105:11:6","nodeType":"VariableDeclaration","scope":1726,"src":"6097:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1524,"name":"address","nodeType":"ElementaryTypeName","src":"6097:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1527,"mutability":"mutable","name":"_nonce","nameLocation":"6125:6:6","nodeType":"VariableDeclaration","scope":1726,"src":"6118:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1526,"name":"uint64","nodeType":"ElementaryTypeName","src":"6118:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1529,"mutability":"mutable","name":"_gasLimit","nameLocation":"6138:9:6","nodeType":"VariableDeclaration","scope":1726,"src":"6133:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1528,"name":"uint","nodeType":"ElementaryTypeName","src":"6133:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1531,"mutability":"mutable","name":"_payload","nameLocation":"6164:8:6","nodeType":"VariableDeclaration","scope":1726,"src":"6149:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1530,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6054:119:6"},"returnParameters":{"id":1536,"nodeType":"ParameterList","parameters":[],"src":"6212:0:6"},"scope":2453,"src":"6031:2275:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[43],"body":{"id":1742,"nodeType":"Block","src":"8416:53:6","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1736,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"8433:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1738,"indexExpression":{"id":1737,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"8446:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8433:22:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1740,"indexExpression":{"id":1739,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"8456:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8433:29:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1735,"id":1741,"nodeType":"Return","src":"8426:36:6"}]},"functionSelector":"fdc07c70","id":1743,"implemented":true,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"8321:15:6","nodeType":"FunctionDefinition","overrides":{"id":1732,"nodeType":"OverrideSpecifier","overrides":[],"src":"8390:8:6"},"parameters":{"id":1731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1728,"mutability":"mutable","name":"_chainID","nameLocation":"8344:8:6","nodeType":"VariableDeclaration","scope":1743,"src":"8337:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1727,"name":"uint16","nodeType":"ElementaryTypeName","src":"8337:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1730,"mutability":"mutable","name":"_path","nameLocation":"8369:5:6","nodeType":"VariableDeclaration","scope":1743,"src":"8354:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1729,"name":"bytes","nodeType":"ElementaryTypeName","src":"8354:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8336:39:6"},"returnParameters":{"id":1735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1734,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1743,"src":"8408:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1733,"name":"uint64","nodeType":"ElementaryTypeName","src":"8408:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8407:8:6"},"scope":2453,"src":"8312:157:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[52],"body":{"id":1759,"nodeType":"Block","src":"8579:60:6","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1753,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"8596:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":1755,"indexExpression":{"id":1754,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"8610:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8596:23:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":1757,"indexExpression":{"id":1756,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"8620:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8596:36:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1752,"id":1758,"nodeType":"Return","src":"8589:43:6"}]},"functionSelector":"7a145748","id":1760,"implemented":true,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"8484:16:6","nodeType":"FunctionDefinition","overrides":{"id":1749,"nodeType":"OverrideSpecifier","overrides":[],"src":"8553:8:6"},"parameters":{"id":1748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1745,"mutability":"mutable","name":"_chainID","nameLocation":"8508:8:6","nodeType":"VariableDeclaration","scope":1760,"src":"8501:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1744,"name":"uint16","nodeType":"ElementaryTypeName","src":"8501:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1747,"mutability":"mutable","name":"_srcAddress","nameLocation":"8526:11:6","nodeType":"VariableDeclaration","scope":1760,"src":"8518:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1746,"name":"address","nodeType":"ElementaryTypeName","src":"8518:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8500:38:6"},"returnParameters":{"id":1752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"8571:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1750,"name":"uint64","nodeType":"ElementaryTypeName","src":"8571:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8570:8:6"},"scope":2453,"src":"8475:164:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[69],"body":{"id":1823,"nodeType":"Block","src":"8831:507:6","statements":[{"assignments":[1778],"declarations":[{"constant":false,"id":1778,"mutability":"mutable","name":"adapterParams","nameLocation":"8854:13:6","nodeType":"VariableDeclaration","scope":1823,"src":"8841:26:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1777,"name":"bytes","nodeType":"ElementaryTypeName","src":"8841:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1786,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1779,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"8870:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8870:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8894:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8870:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1784,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"8915:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8870:65:6","trueExpression":{"id":1783,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"8898:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8841:94:6"},{"assignments":[1788],"declarations":[{"constant":false,"id":1788,"mutability":"mutable","name":"relayerFee","nameLocation":"8974:10:6","nodeType":"VariableDeclaration","scope":1823,"src":"8969:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1787,"name":"uint","nodeType":"ElementaryTypeName","src":"8969:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1797,"initialValue":{"arguments":[{"id":1790,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"9002:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"31","id":1791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9015:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":1792,"name":"_userApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"9018:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1793,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1766,"src":"9036:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9036:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1795,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"9053:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1789,"name":"_getRelayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2452,"src":"8987:14:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint16,uint16,address,uint256,bytes memory) view returns (uint256)"}},"id":1796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8987:80:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8969:98:6"},{"assignments":[1799],"declarations":[{"constant":false,"id":1799,"mutability":"mutable","name":"protocolFee","nameLocation":"9108:11:6","nodeType":"VariableDeclaration","scope":1823,"src":"9103:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1798,"name":"uint","nodeType":"ElementaryTypeName","src":"9103:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1805,"initialValue":{"arguments":[{"id":1801,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"9139:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1802,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"9150:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1803,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"9162:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1800,"name":"_getProtocolFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2356,"src":"9122:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) view returns (uint256)"}},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9122:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9103:69:6"},{"expression":{"condition":{"id":1806,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"9182:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1810,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9217:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1811,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"9229:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9217:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9182:58:6","trueExpression":{"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1807,"name":"zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1775,"src":"9194:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1808,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"9203:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9194:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1814,"nodeType":"ExpressionStatement","src":"9182:58:6"},{"expression":{"id":1821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1815,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9285:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1816,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9297:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1817,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"9309:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9297:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1819,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"9322:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9297:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9285:46:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1822,"nodeType":"ExpressionStatement","src":"9285:46:6"}]},"functionSelector":"40a7bb10","id":1824,"implemented":true,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"8654:12:6","nodeType":"FunctionDefinition","parameters":{"id":1771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1762,"mutability":"mutable","name":"_dstChainId","nameLocation":"8674:11:6","nodeType":"VariableDeclaration","scope":1824,"src":"8667:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1761,"name":"uint16","nodeType":"ElementaryTypeName","src":"8667:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1764,"mutability":"mutable","name":"_userApplication","nameLocation":"8695:16:6","nodeType":"VariableDeclaration","scope":1824,"src":"8687:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1763,"name":"address","nodeType":"ElementaryTypeName","src":"8687:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1766,"mutability":"mutable","name":"_payload","nameLocation":"8726:8:6","nodeType":"VariableDeclaration","scope":1824,"src":"8713:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1765,"name":"bytes","nodeType":"ElementaryTypeName","src":"8713:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1768,"mutability":"mutable","name":"_payInZRO","nameLocation":"8741:9:6","nodeType":"VariableDeclaration","scope":1824,"src":"8736:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1767,"name":"bool","nodeType":"ElementaryTypeName","src":"8736:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1770,"mutability":"mutable","name":"_adapterParams","nameLocation":"8765:14:6","nodeType":"VariableDeclaration","scope":1824,"src":"8752:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1769,"name":"bytes","nodeType":"ElementaryTypeName","src":"8752:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8666:114:6"},"returnParameters":{"id":1776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1773,"mutability":"mutable","name":"nativeFee","nameLocation":"8807:9:6","nodeType":"VariableDeclaration","scope":1824,"src":"8802:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1772,"name":"uint","nodeType":"ElementaryTypeName","src":"8802:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1775,"mutability":"mutable","name":"zroFee","nameLocation":"8823:6:6","nodeType":"VariableDeclaration","scope":1824,"src":"8818:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1774,"name":"uint","nodeType":"ElementaryTypeName","src":"8818:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8801:29:6"},"scope":2453,"src":"8645:693:6","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[74],"body":{"id":1832,"nodeType":"Block","src":"9406:35:6","statements":[{"expression":{"id":1830,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"9423:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":1829,"id":1831,"nodeType":"Return","src":"9416:18:6"}]},"functionSelector":"3408e470","id":1833,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"9353:10:6","nodeType":"FunctionDefinition","overrides":{"id":1826,"nodeType":"OverrideSpecifier","overrides":[],"src":"9380:8:6"},"parameters":{"id":1825,"nodeType":"ParameterList","parameters":[],"src":"9363:2:6"},"returnParameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1833,"src":"9398:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1827,"name":"uint16","nodeType":"ElementaryTypeName","src":"9398:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"9397:8:6"},"scope":2453,"src":"9344:97:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[83],"body":{"id":1933,"nodeType":"Block","src":"9554:686:6","statements":[{"assignments":[1845],"declarations":[{"constant":false,"id":1845,"mutability":"mutable","name":"sp","nameLocation":"9586:2:6","nodeType":"VariableDeclaration","scope":1933,"src":"9564:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1844,"nodeType":"UserDefinedTypeName","pathNode":{"id":1843,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"9564:13:6"},"referencedDeclaration":1224,"src":"9564:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1851,"initialValue":{"baseExpression":{"baseExpression":{"id":1846,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"9591:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1848,"indexExpression":{"id":1847,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"9605:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9591:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1850,"indexExpression":{"id":1849,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"9618:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9591:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9564:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1853,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9642:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9642:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9668:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9660:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9660:7:6","typeDescriptions":{}}},"id":1858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9660:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9642:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":1860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9672:34:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":1852,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9634:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9634:73:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1862,"nodeType":"ExpressionStatement","src":"9634:73:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1864,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"9725:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9725:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1866,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9744:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"9744:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9725:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1870,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"9774:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1869,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9764:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1872,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9787:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9787:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9764:37:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9725:76:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","id":1876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9803:32:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""},"value":"LayerZeroMock: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""}],"id":1863,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9717:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9717:119:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1878,"nodeType":"ExpressionStatement","src":"9717:119:6"},{"assignments":[1880],"declarations":[{"constant":false,"id":1880,"mutability":"mutable","name":"dstAddress","nameLocation":"9855:10:6","nodeType":"VariableDeclaration","scope":1933,"src":"9847:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1879,"name":"address","nodeType":"ElementaryTypeName","src":"9847:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1883,"initialValue":{"expression":{"id":1881,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9868:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"9868:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9847:34:6"},{"expression":{"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1884,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9926:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"9926:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9945:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9926:20:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":1889,"nodeType":"ExpressionStatement","src":"9926:20:6"},{"expression":{"id":1897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1890,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9956:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"9956:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9980:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9972:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1893,"name":"address","nodeType":"ElementaryTypeName","src":"9972:7:6","typeDescriptions":{}}},"id":1896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9972:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9956:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1898,"nodeType":"ExpressionStatement","src":"9956:26:6"},{"expression":{"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1899,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9992:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9992:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10017:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10009:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10009:7:6","typeDescriptions":{}}},"id":1905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10009:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9992:27:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1907,"nodeType":"ExpressionStatement","src":"9992:27:6"},{"assignments":[1909],"declarations":[{"constant":false,"id":1909,"mutability":"mutable","name":"nonce","nameLocation":"10037:5:6","nodeType":"VariableDeclaration","scope":1933,"src":"10030:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1908,"name":"uint64","nodeType":"ElementaryTypeName","src":"10030:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1915,"initialValue":{"baseExpression":{"baseExpression":{"id":1910,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"10045:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1912,"indexExpression":{"id":1911,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10058:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10045:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1914,"indexExpression":{"id":1913,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10071:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10045:32:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10030:47:6"},{"expression":{"arguments":[{"id":1920,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10129:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1921,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10142:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1922,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"10149:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1923,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"10156:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":1917,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"10107:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1916,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"10088:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10088:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"10088:40:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10088:77:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1925,"nodeType":"ExpressionStatement","src":"10088:77:6"},{"eventCall":{"arguments":[{"id":1927,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10195:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1928,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10208:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1929,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"10215:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1930,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"10222:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1926,"name":"PayloadCleared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1285,"src":"10180:14:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_address_$returns$__$","typeString":"function (uint16,bytes memory,uint64,address)"}},"id":1931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10180:53:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1932,"nodeType":"EmitStatement","src":"10175:58:6"}]},"functionSelector":"aaff5f16","id":1934,"implemented":true,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"9456:12:6","nodeType":"FunctionDefinition","overrides":{"id":1841,"nodeType":"OverrideSpecifier","overrides":[],"src":"9545:8:6"},"parameters":{"id":1840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1835,"mutability":"mutable","name":"_srcChainId","nameLocation":"9476:11:6","nodeType":"VariableDeclaration","scope":1934,"src":"9469:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1834,"name":"uint16","nodeType":"ElementaryTypeName","src":"9469:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1837,"mutability":"mutable","name":"_path","nameLocation":"9504:5:6","nodeType":"VariableDeclaration","scope":1934,"src":"9489:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1836,"name":"bytes","nodeType":"ElementaryTypeName","src":"9489:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1839,"mutability":"mutable","name":"_payload","nameLocation":"9526:8:6","nodeType":"VariableDeclaration","scope":1934,"src":"9511:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1838,"name":"bytes","nodeType":"ElementaryTypeName","src":"9511:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9468:67:6"},"returnParameters":{"id":1842,"nodeType":"ParameterList","parameters":[],"src":"9554:0:6"},"scope":2453,"src":"9447:793:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[92],"body":{"id":1961,"nodeType":"Block","src":"10352:122:6","statements":[{"assignments":[1946],"declarations":[{"constant":false,"id":1946,"mutability":"mutable","name":"sp","nameLocation":"10384:2:6","nodeType":"VariableDeclaration","scope":1961,"src":"10362:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1945,"nodeType":"UserDefinedTypeName","pathNode":{"id":1944,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"10362:13:6"},"referencedDeclaration":1224,"src":"10362:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1952,"initialValue":{"baseExpression":{"baseExpression":{"id":1947,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"10389:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1949,"indexExpression":{"id":1948,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"10403:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10389:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1951,"indexExpression":{"id":1950,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1938,"src":"10416:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10389:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10362:60:6"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1953,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1946,"src":"10439:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"10439:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10457:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10457:7:6","typeDescriptions":{}}},"id":1958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10457:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10439:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1943,"id":1960,"nodeType":"Return","src":"10432:35:6"}]},"functionSelector":"0eaf6ea6","id":1962,"implemented":true,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"10255:16:6","nodeType":"FunctionDefinition","overrides":{"id":1940,"nodeType":"OverrideSpecifier","overrides":[],"src":"10328:8:6"},"parameters":{"id":1939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1936,"mutability":"mutable","name":"_srcChainId","nameLocation":"10279:11:6","nodeType":"VariableDeclaration","scope":1962,"src":"10272:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1935,"name":"uint16","nodeType":"ElementaryTypeName","src":"10272:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1938,"mutability":"mutable","name":"_path","nameLocation":"10307:5:6","nodeType":"VariableDeclaration","scope":1962,"src":"10292:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1937,"name":"bytes","nodeType":"ElementaryTypeName","src":"10292:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10271:42:6"},"returnParameters":{"id":1943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1962,"src":"10346:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1941,"name":"bool","nodeType":"ElementaryTypeName","src":"10346:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10345:6:6"},"scope":2453,"src":"10246:228:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[99],"body":{"id":1975,"nodeType":"Block","src":"10561:37:6","statements":[{"expression":{"arguments":[{"id":1972,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10586:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}],"id":1971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10578:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1970,"name":"address","nodeType":"ElementaryTypeName","src":"10578:7:6","typeDescriptions":{}}},"id":1973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10578:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1969,"id":1974,"nodeType":"Return","src":"10571:20:6"}]},"functionSelector":"9c729da1","id":1976,"implemented":true,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"10489:21:6","nodeType":"FunctionDefinition","overrides":{"id":1966,"nodeType":"OverrideSpecifier","overrides":[],"src":"10534:8:6"},"parameters":{"id":1965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1976,"src":"10511:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1963,"name":"address","nodeType":"ElementaryTypeName","src":"10511:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10510:9:6"},"returnParameters":{"id":1969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1976,"src":"10552:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1967,"name":"address","nodeType":"ElementaryTypeName","src":"10552:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10551:9:6"},"scope":2453,"src":"10480:118:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[106],"body":{"id":1989,"nodeType":"Block","src":"10688:37:6","statements":[{"expression":{"arguments":[{"id":1986,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10713:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}],"id":1985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10705:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1984,"name":"address","nodeType":"ElementaryTypeName","src":"10705:7:6","typeDescriptions":{}}},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10705:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1983,"id":1988,"nodeType":"Return","src":"10698:20:6"}]},"functionSelector":"71ba2fd6","id":1990,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"10613:24:6","nodeType":"FunctionDefinition","overrides":{"id":1980,"nodeType":"OverrideSpecifier","overrides":[],"src":"10661:8:6"},"parameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1990,"src":"10638:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1977,"name":"address","nodeType":"ElementaryTypeName","src":"10638:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10637:9:6"},"returnParameters":{"id":1983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1990,"src":"10679:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1981,"name":"address","nodeType":"ElementaryTypeName","src":"10679:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10678:9:6"},"scope":2453,"src":"10604:121:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[111],"body":{"id":2000,"nodeType":"Block","src":"10797:55:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1996,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"10814:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1997,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10837:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10814:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1995,"id":1999,"nodeType":"Return","src":"10807:38:6"}]},"functionSelector":"e97a448a","id":2001,"implemented":true,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"10740:16:6","nodeType":"FunctionDefinition","overrides":{"id":1992,"nodeType":"OverrideSpecifier","overrides":[],"src":"10773:8:6"},"parameters":{"id":1991,"nodeType":"ParameterList","parameters":[],"src":"10756:2:6"},"returnParameters":{"id":1995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2001,"src":"10791:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1993,"name":"bool","nodeType":"ElementaryTypeName","src":"10791:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10790:6:6"},"scope":2453,"src":"10731:121:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[116],"body":{"id":2011,"nodeType":"Block","src":"10926:58:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2007,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"10943:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2008,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10969:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10943:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2006,"id":2010,"nodeType":"Return","src":"10936:41:6"}]},"functionSelector":"ca066b35","id":2012,"implemented":true,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"10867:18:6","nodeType":"FunctionDefinition","overrides":{"id":2003,"nodeType":"OverrideSpecifier","overrides":[],"src":"10902:8:6"},"parameters":{"id":2002,"nodeType":"ParameterList","parameters":[],"src":"10885:2:6"},"returnParameters":{"id":2006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2012,"src":"10920:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2004,"name":"bool","nodeType":"ElementaryTypeName","src":"10920:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10919:6:6"},"scope":2453,"src":"10858:126:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[129],"body":{"id":2028,"nodeType":"Block","src":"11174:26:6","statements":[{"expression":{"hexValue":"","id":2026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11191:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":2025,"id":2027,"nodeType":"Return","src":"11184:9:6"}]},"functionSelector":"f5ecbdbc","id":2029,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"10999:9:6","nodeType":"FunctionDefinition","overrides":{"id":2022,"nodeType":"OverrideSpecifier","overrides":[],"src":"11142:8:6"},"parameters":{"id":2021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11018:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2013,"name":"uint16","nodeType":"ElementaryTypeName","src":"11018:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11047:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2015,"name":"uint16","nodeType":"ElementaryTypeName","src":"11047:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11076:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2017,"name":"address","nodeType":"ElementaryTypeName","src":"11076:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11101:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2019,"name":"uint","nodeType":"ElementaryTypeName","src":"11101:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11008:119:6"},"returnParameters":{"id":2025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11160:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2023,"name":"bytes","nodeType":"ElementaryTypeName","src":"11160:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11159:14:6"},"scope":2453,"src":"10990:210:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[136],"body":{"id":2039,"nodeType":"Block","src":"11314:25:6","statements":[{"expression":{"hexValue":"31","id":2037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11331:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":2036,"id":2038,"nodeType":"Return","src":"11324:8:6"}]},"functionSelector":"096568f6","id":2040,"implemented":true,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"11215:14:6","nodeType":"FunctionDefinition","overrides":{"id":2033,"nodeType":"OverrideSpecifier","overrides":[],"src":"11288:8:6"},"parameters":{"id":2032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2040,"src":"11239:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2030,"name":"address","nodeType":"ElementaryTypeName","src":"11239:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11229:44:6"},"returnParameters":{"id":2036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2040,"src":"11306:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2034,"name":"uint16","nodeType":"ElementaryTypeName","src":"11306:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11305:8:6"},"scope":2453,"src":"11206:133:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[143],"body":{"id":2050,"nodeType":"Block","src":"11456:25:6","statements":[{"expression":{"hexValue":"31","id":2048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11473:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":2047,"id":2049,"nodeType":"Return","src":"11466:8:6"}]},"functionSelector":"da1a7c9a","id":2051,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"11354:17:6","nodeType":"FunctionDefinition","overrides":{"id":2044,"nodeType":"OverrideSpecifier","overrides":[],"src":"11430:8:6"},"parameters":{"id":2043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2051,"src":"11381:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2041,"name":"address","nodeType":"ElementaryTypeName","src":"11381:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11371:44:6"},"returnParameters":{"id":2047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2051,"src":"11448:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2045,"name":"uint16","nodeType":"ElementaryTypeName","src":"11448:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11447:8:6"},"scope":2453,"src":"11345:136:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[171],"body":{"id":2063,"nodeType":"Block","src":"11652:2:6","statements":[]},"functionSelector":"cbed8b9c","id":2064,"implemented":true,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"11496:9:6","nodeType":"FunctionDefinition","overrides":{"id":2061,"nodeType":"OverrideSpecifier","overrides":[],"src":"11643:8:6"},"parameters":{"id":2060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11515:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2052,"name":"uint16","nodeType":"ElementaryTypeName","src":"11515:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11544:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2054,"name":"uint16","nodeType":"ElementaryTypeName","src":"11544:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11573:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2056,"name":"uint","nodeType":"ElementaryTypeName","src":"11573:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11603:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2058,"name":"bytes","nodeType":"ElementaryTypeName","src":"11603:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11505:128:6"},"returnParameters":{"id":2062,"nodeType":"ParameterList","parameters":[],"src":"11652:0:6"},"scope":2453,"src":"11487:167:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[176],"body":{"id":2070,"nodeType":"Block","src":"11736:2:6","statements":[]},"functionSelector":"07e0db17","id":2071,"implemented":true,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"11669:14:6","nodeType":"FunctionDefinition","overrides":{"id":2068,"nodeType":"OverrideSpecifier","overrides":[],"src":"11727:8:6"},"parameters":{"id":2067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2071,"src":"11693:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2065,"name":"uint16","nodeType":"ElementaryTypeName","src":"11693:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11683:34:6"},"returnParameters":{"id":2069,"nodeType":"ParameterList","parameters":[],"src":"11736:0:6"},"scope":2453,"src":"11660:78:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[181],"body":{"id":2077,"nodeType":"Block","src":"11823:2:6","statements":[]},"functionSelector":"10ddb137","id":2078,"implemented":true,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"11753:17:6","nodeType":"FunctionDefinition","overrides":{"id":2075,"nodeType":"OverrideSpecifier","overrides":[],"src":"11814:8:6"},"parameters":{"id":2074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2078,"src":"11780:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2072,"name":"uint16","nodeType":"ElementaryTypeName","src":"11780:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11770:34:6"},"returnParameters":{"id":2076,"nodeType":"ParameterList","parameters":[],"src":"11823:0:6"},"scope":2453,"src":"11744:81:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[188],"body":{"id":2149,"nodeType":"Block","src":"11919:632:6","statements":[{"assignments":[2088],"declarations":[{"constant":false,"id":2088,"mutability":"mutable","name":"sp","nameLocation":"11951:2:6","nodeType":"VariableDeclaration","scope":2149,"src":"11929:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":2087,"nodeType":"UserDefinedTypeName","pathNode":{"id":2086,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"11929:13:6"},"referencedDeclaration":1224,"src":"11929:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":2094,"initialValue":{"baseExpression":{"baseExpression":{"id":2089,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"11956:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2091,"indexExpression":{"id":2090,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"11970:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11956:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2093,"indexExpression":{"id":2092,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"11983:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11956:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11929:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2096,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12085:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"12085:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12111:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12103:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12103:7:6","typeDescriptions":{}}},"id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12103:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12085:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":2103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12115:34:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":2095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12077:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12077:73:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2105,"nodeType":"ExpressionStatement","src":"12077:73:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2107,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12168:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"12168:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2109,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12185:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12185:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12168:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","id":2112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12197:31:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""},"value":"LayerZeroMock: invalid caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""}],"id":2106,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12160:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12160:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2114,"nodeType":"ExpressionStatement","src":"12160:69:6"},{"expression":{"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2115,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12275:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"12275:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12294:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12275:20:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2120,"nodeType":"ExpressionStatement","src":"12275:20:6"},{"expression":{"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2121,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12305:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"12305:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12329:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12321:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2124,"name":"address","nodeType":"ElementaryTypeName","src":"12321:7:6","typeDescriptions":{}}},"id":2127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12321:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12305:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2129,"nodeType":"ExpressionStatement","src":"12305:26:6"},{"expression":{"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2130,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12341:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"12341:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12366:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12358:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12358:7:6","typeDescriptions":{}}},"id":2136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12358:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12341:27:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2138,"nodeType":"ExpressionStatement","src":"12341:27:6"},{"eventCall":{"arguments":[{"id":2140,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"12405:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2141,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"12418:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2139,"name":"UaForceResumeReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"12384:20:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12384:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2143,"nodeType":"EmitStatement","src":"12379:45:6"},{"expression":{"arguments":[{"id":2145,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"12525:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2146,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"12538:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2144,"name":"_clearMsgQue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2326,"src":"12512:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (uint16,bytes calldata)"}},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12512:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2148,"nodeType":"ExpressionStatement","src":"12512:32:6"}]},"functionSelector":"42d65a8d","id":2150,"implemented":true,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"11840:18:6","nodeType":"FunctionDefinition","overrides":{"id":2084,"nodeType":"OverrideSpecifier","overrides":[],"src":"11910:8:6"},"parameters":{"id":2083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2080,"mutability":"mutable","name":"_srcChainId","nameLocation":"11866:11:6","nodeType":"VariableDeclaration","scope":2150,"src":"11859:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2079,"name":"uint16","nodeType":"ElementaryTypeName","src":"11859:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2082,"mutability":"mutable","name":"_path","nameLocation":"11894:5:6","nodeType":"VariableDeclaration","scope":2150,"src":"11879:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2081,"name":"bytes","nodeType":"ElementaryTypeName","src":"11879:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11858:42:6"},"returnParameters":{"id":2085,"nodeType":"ParameterList","parameters":[],"src":"11919:0:6"},"scope":2453,"src":"11831:720:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2166,"nodeType":"Block","src":"12782:70:6","statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":2159,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"12799:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2161,"indexExpression":{"id":2160,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"12813:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12799:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2163,"indexExpression":{"id":2162,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2154,"src":"12826:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12799:39:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12799:46:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2158,"id":2165,"nodeType":"Return","src":"12792:53:6"}]},"functionSelector":"7f6df8e6","id":2167,"implemented":true,"kind":"function","modifiers":[],"name":"getLengthOfQueue","nameLocation":"12688:16:6","nodeType":"FunctionDefinition","parameters":{"id":2155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2152,"mutability":"mutable","name":"_srcChainId","nameLocation":"12712:11:6","nodeType":"VariableDeclaration","scope":2167,"src":"12705:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2151,"name":"uint16","nodeType":"ElementaryTypeName","src":"12705:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2154,"mutability":"mutable","name":"_srcAddress","nameLocation":"12740:11:6","nodeType":"VariableDeclaration","scope":2167,"src":"12725:26:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2153,"name":"bytes","nodeType":"ElementaryTypeName","src":"12725:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12704:48:6"},"returnParameters":{"id":2158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2167,"src":"12776:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2156,"name":"uint","nodeType":"ElementaryTypeName","src":"12776:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12775:6:6"},"scope":2453,"src":"12679:173:6","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2174,"nodeType":"Block","src":"12957:38:6","statements":[{"expression":{"id":2172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2170,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"12967:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12984:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12967:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2173,"nodeType":"ExpressionStatement","src":"12967:21:6"}]},"functionSelector":"d23104f1","id":2175,"implemented":true,"kind":"function","modifiers":[],"name":"blockNextMsg","nameLocation":"12933:12:6","nodeType":"FunctionDefinition","parameters":{"id":2168,"nodeType":"ParameterList","parameters":[],"src":"12945:2:6"},"returnParameters":{"id":2169,"nodeType":"ParameterList","parameters":[],"src":"12957:0:6"},"scope":2453,"src":"12924:71:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2188,"nodeType":"Block","src":"13079:60:6","statements":[{"expression":{"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2182,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13089:16:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":2184,"indexExpression":{"id":2183,"name":"destAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2177,"src":"13106:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13089:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2185,"name":"lzEndpointAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"13118:14:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13089:43:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2187,"nodeType":"ExpressionStatement","src":"13089:43:6"}]},"functionSelector":"c08f15a1","id":2189,"implemented":true,"kind":"function","modifiers":[],"name":"setDestLzEndpoint","nameLocation":"13010:17:6","nodeType":"FunctionDefinition","parameters":{"id":2180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2177,"mutability":"mutable","name":"destAddr","nameLocation":"13036:8:6","nodeType":"VariableDeclaration","scope":2189,"src":"13028:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2176,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2179,"mutability":"mutable","name":"lzEndpointAddr","nameLocation":"13054:14:6","nodeType":"VariableDeclaration","scope":2189,"src":"13046:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2178,"name":"address","nodeType":"ElementaryTypeName","src":"13046:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13027:42:6"},"returnParameters":{"id":2181,"nodeType":"ParameterList","parameters":[],"src":"13079:0:6"},"scope":2453,"src":"13001:138:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2232,"nodeType":"Block","src":"13293:284:6","statements":[{"expression":{"id":2206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2202,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13303:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"13303:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2205,"name":"_dstPriceRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2191,"src":"13336:14:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13303:47:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2207,"nodeType":"ExpressionStatement","src":"13303:47:6"},{"expression":{"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2208,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13360:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"13360:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2211,"name":"_dstGasPriceInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2193,"src":"13396:17:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13360:53:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2213,"nodeType":"ExpressionStatement","src":"13360:53:6"},{"expression":{"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2214,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13423:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":1212,"src":"13423:32:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2217,"name":"_dstNativeAmtCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"13458:16:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13423:51:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2219,"nodeType":"ExpressionStatement","src":"13423:51:6"},{"expression":{"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2220,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13484:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":1214,"src":"13484:24:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2223,"name":"_baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"13511:8:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13484:35:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2225,"nodeType":"ExpressionStatement","src":"13484:35:6"},{"expression":{"id":2230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2226,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13529:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":1216,"src":"13529:27:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2229,"name":"_gasPerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"13559:11:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13529:41:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2231,"nodeType":"ExpressionStatement","src":"13529:41:6"}]},"functionSelector":"2c365e25","id":2233,"implemented":true,"kind":"function","modifiers":[],"name":"setRelayerPrice","nameLocation":"13154:15:6","nodeType":"FunctionDefinition","parameters":{"id":2200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2191,"mutability":"mutable","name":"_dstPriceRatio","nameLocation":"13178:14:6","nodeType":"VariableDeclaration","scope":2233,"src":"13170:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2190,"name":"uint128","nodeType":"ElementaryTypeName","src":"13170:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2193,"mutability":"mutable","name":"_dstGasPriceInWei","nameLocation":"13202:17:6","nodeType":"VariableDeclaration","scope":2233,"src":"13194:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2192,"name":"uint128","nodeType":"ElementaryTypeName","src":"13194:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2195,"mutability":"mutable","name":"_dstNativeAmtCap","nameLocation":"13229:16:6","nodeType":"VariableDeclaration","scope":2233,"src":"13221:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2194,"name":"uint128","nodeType":"ElementaryTypeName","src":"13221:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"_baseGas","nameLocation":"13254:8:6","nodeType":"VariableDeclaration","scope":2233,"src":"13247:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2196,"name":"uint64","nodeType":"ElementaryTypeName","src":"13247:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2199,"mutability":"mutable","name":"_gasPerByte","nameLocation":"13271:11:6","nodeType":"VariableDeclaration","scope":2233,"src":"13264:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2198,"name":"uint64","nodeType":"ElementaryTypeName","src":"13264:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13169:114:6"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[],"src":"13293:0:6"},"scope":2453,"src":"13145:432:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2252,"nodeType":"Block","src":"13646:99:6","statements":[{"expression":{"id":2244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2240,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"13656:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"13656:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2243,"name":"_zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"13683:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13656:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2245,"nodeType":"ExpressionStatement","src":"13656:34:6"},{"expression":{"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2246,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"13700:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":1205,"src":"13700:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2249,"name":"_nativeBP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"13729:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13700:38:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2251,"nodeType":"ExpressionStatement","src":"13700:38:6"}]},"functionSelector":"240de277","id":2253,"implemented":true,"kind":"function","modifiers":[],"name":"setProtocolFee","nameLocation":"13592:14:6","nodeType":"FunctionDefinition","parameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2235,"mutability":"mutable","name":"_zroFee","nameLocation":"13612:7:6","nodeType":"VariableDeclaration","scope":2253,"src":"13607:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2234,"name":"uint","nodeType":"ElementaryTypeName","src":"13607:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2237,"mutability":"mutable","name":"_nativeBP","nameLocation":"13626:9:6","nodeType":"VariableDeclaration","scope":2253,"src":"13621:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2236,"name":"uint","nodeType":"ElementaryTypeName","src":"13621:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13606:30:6"},"returnParameters":{"id":2239,"nodeType":"ParameterList","parameters":[],"src":"13646:0:6"},"scope":2453,"src":"13583:162:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2262,"nodeType":"Block","src":"13799:39:6","statements":[{"expression":{"id":2260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2258,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"13809:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2259,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2255,"src":"13821:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13809:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2261,"nodeType":"ExpressionStatement","src":"13809:22:6"}]},"functionSelector":"b6d9ef60","id":2263,"implemented":true,"kind":"function","modifiers":[],"name":"setOracleFee","nameLocation":"13760:12:6","nodeType":"FunctionDefinition","parameters":{"id":2256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2255,"mutability":"mutable","name":"_oracleFee","nameLocation":"13778:10:6","nodeType":"VariableDeclaration","scope":2263,"src":"13773:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2254,"name":"uint","nodeType":"ElementaryTypeName","src":"13773:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13772:17:6"},"returnParameters":{"id":2257,"nodeType":"ParameterList","parameters":[],"src":"13799:0:6"},"scope":2453,"src":"13751:87:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2272,"nodeType":"Block","src":"13915:54:6","statements":[{"expression":{"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2268,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"13925:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2269,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"13948:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"13925:37:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":2271,"nodeType":"ExpressionStatement","src":"13925:37:6"}]},"functionSelector":"fbba623b","id":2273,"implemented":true,"kind":"function","modifiers":[],"name":"setDefaultAdapterParams","nameLocation":"13853:23:6","nodeType":"FunctionDefinition","parameters":{"id":2266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2265,"mutability":"mutable","name":"_adapterParams","nameLocation":"13890:14:6","nodeType":"VariableDeclaration","scope":2273,"src":"13877:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2264,"name":"bytes","nodeType":"ElementaryTypeName","src":"13877:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13876:29:6"},"returnParameters":{"id":2267,"nodeType":"ParameterList","parameters":[],"src":"13915:0:6"},"scope":2453,"src":"13844:125:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2325,"nodeType":"Block","src":"14227:425:6","statements":[{"assignments":[2284],"declarations":[{"constant":false,"id":2284,"mutability":"mutable","name":"msgs","nameLocation":"14261:4:6","nodeType":"VariableDeclaration","scope":2325,"src":"14237:28:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":2282,"nodeType":"UserDefinedTypeName","pathNode":{"id":2281,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"14237:13:6"},"referencedDeclaration":1231,"src":"14237:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":2283,"nodeType":"ArrayTypeName","src":"14237:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":2290,"initialValue":{"baseExpression":{"baseExpression":{"id":2285,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"14268:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2287,"indexExpression":{"id":2286,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"14282:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14268:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2289,"indexExpression":{"id":2288,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"14295:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14268:33:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14237:64:6"},{"body":{"id":2323,"nodeType":"Block","src":"14431:215:6","statements":[{"assignments":[2297],"declarations":[{"constant":false,"id":2297,"mutability":"mutable","name":"payload","nameLocation":"14466:7:6","nodeType":"VariableDeclaration","scope":2323,"src":"14445:28:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":2296,"nodeType":"UserDefinedTypeName","pathNode":{"id":2295,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"14445:13:6"},"referencedDeclaration":1231,"src":"14445:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":2304,"initialValue":{"baseExpression":{"id":2298,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14476:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2303,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2299,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14481:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14481:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14495:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14481:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14476:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14445:52:6"},{"expression":{"arguments":[{"id":2310,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"14560:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2311,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"14573:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":2312,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14580:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":1228,"src":"14580:13:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":2314,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14595:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":1230,"src":"14595:15:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":2306,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14530:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1226,"src":"14530:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2305,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"14511:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14511:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":2309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"14511:48:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":2316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14511:100:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2317,"nodeType":"ExpressionStatement","src":"14511:100:6"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2318,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14625:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"14625:8:6","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14625:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2322,"nodeType":"ExpressionStatement","src":"14625:10:6"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2291,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14414:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14414:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14428:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14414:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2324,"nodeType":"WhileStatement","src":"14407:239:6"}]},"id":2326,"implemented":true,"kind":"function","modifiers":[],"name":"_clearMsgQue","nameLocation":"14163:12:6","nodeType":"FunctionDefinition","parameters":{"id":2278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2275,"mutability":"mutable","name":"_srcChainId","nameLocation":"14183:11:6","nodeType":"VariableDeclaration","scope":2326,"src":"14176:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2274,"name":"uint16","nodeType":"ElementaryTypeName","src":"14176:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2277,"mutability":"mutable","name":"_path","nameLocation":"14211:5:6","nodeType":"VariableDeclaration","scope":2326,"src":"14196:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2276,"name":"bytes","nodeType":"ElementaryTypeName","src":"14196:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14175:42:6"},"returnParameters":{"id":2279,"nodeType":"ParameterList","parameters":[],"src":"14227:0:6"},"scope":2453,"src":"14154:498:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2355,"nodeType":"Block","src":"14764:190:6","statements":[{"condition":{"id":2337,"name":"_payInZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2328,"src":"14778:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2353,"nodeType":"Block","src":"14851:97:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2342,"name":"_relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2330,"src":"14874:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2343,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"14888:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14874:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14873:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2346,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"14902:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":1205,"src":"14902:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14873:55:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14872:57:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14932:5:6","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"14872:65:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2336,"id":2352,"nodeType":"Return","src":"14865:72:6"}]},"id":2354,"nodeType":"IfStatement","src":"14774:174:6","trueBody":{"id":2341,"nodeType":"Block","src":"14789:56:6","statements":[{"expression":{"expression":{"id":2338,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"14810:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"14810:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2336,"id":2340,"nodeType":"Return","src":"14803:31:6"}]}}]},"id":2356,"implemented":true,"kind":"function","modifiers":[],"name":"_getProtocolFees","nameLocation":"14667:16:6","nodeType":"FunctionDefinition","parameters":{"id":2333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2328,"mutability":"mutable","name":"_payInZro","nameLocation":"14689:9:6","nodeType":"VariableDeclaration","scope":2356,"src":"14684:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2327,"name":"bool","nodeType":"ElementaryTypeName","src":"14684:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2330,"mutability":"mutable","name":"_relayerFee","nameLocation":"14705:11:6","nodeType":"VariableDeclaration","scope":2356,"src":"14700:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2329,"name":"uint","nodeType":"ElementaryTypeName","src":"14700:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2332,"mutability":"mutable","name":"_oracleFee","nameLocation":"14723:10:6","nodeType":"VariableDeclaration","scope":2356,"src":"14718:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2331,"name":"uint","nodeType":"ElementaryTypeName","src":"14718:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14683:51:6"},"returnParameters":{"id":2336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2356,"src":"14758:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2334,"name":"uint","nodeType":"ElementaryTypeName","src":"14758:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14757:6:6"},"scope":2453,"src":"14658:296:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2451,"nodeType":"Block","src":"15198:1084:6","statements":[{"assignments":[2372,2374,2376,null],"declarations":[{"constant":false,"id":2372,"mutability":"mutable","name":"txType","nameLocation":"15216:6:6","nodeType":"VariableDeclaration","scope":2451,"src":"15209:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2371,"name":"uint16","nodeType":"ElementaryTypeName","src":"15209:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2374,"mutability":"mutable","name":"extraGas","nameLocation":"15229:8:6","nodeType":"VariableDeclaration","scope":2451,"src":"15224:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint","nodeType":"ElementaryTypeName","src":"15224:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2376,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"15244:12:6","nodeType":"VariableDeclaration","scope":2451,"src":"15239:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2375,"name":"uint","nodeType":"ElementaryTypeName","src":"15239:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":2381,"initialValue":{"arguments":[{"id":2379,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"15288:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2377,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"15262:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":2378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":375,"src":"15262:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15262:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"15208:95:6"},{"assignments":[2383],"declarations":[{"constant":false,"id":2383,"mutability":"mutable","name":"totalRemoteToken","nameLocation":"15318:16:6","nodeType":"VariableDeclaration","scope":2451,"src":"15313:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2382,"name":"uint","nodeType":"ElementaryTypeName","src":"15313:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2384,"nodeType":"VariableDeclarationStatement","src":"15313:21:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2385,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"15395:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":2386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15405:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15395:11:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2401,"nodeType":"IfStatement","src":"15391:187:6","trueBody":{"id":2400,"nodeType":"Block","src":"15408:170:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2389,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15430:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":1212,"src":"15430:32:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2391,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"15466:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15430:48:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f206c6172676520","id":2393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15480:40:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""},"value":"LayerZeroMock: dstNativeAmt too large "}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""}],"id":2388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15422:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15422:99:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2395,"nodeType":"ExpressionStatement","src":"15422:99:6"},{"expression":{"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2396,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15535:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2397,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"15555:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15535:32:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2399,"nodeType":"ExpressionStatement","src":"15535:32:6"}]}},{"assignments":[2403],"declarations":[{"constant":false,"id":2403,"mutability":"mutable","name":"remoteGasTotal","nameLocation":"15660:14:6","nodeType":"VariableDeclaration","scope":2451,"src":"15655:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2402,"name":"uint","nodeType":"ElementaryTypeName","src":"15655:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2412,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2404,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15677:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"15677:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2406,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15714:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":1214,"src":"15714:24:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2408,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"15741:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15714:35:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2410,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15713:37:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15677:73:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15655:95:6"},{"expression":{"id":2415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2413,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15760:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2414,"name":"remoteGasTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"15780:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15760:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2416,"nodeType":"ExpressionStatement","src":"15760:34:6"},{"assignments":[2418],"declarations":[{"constant":false,"id":2418,"mutability":"mutable","name":"basePrice","nameLocation":"15927:9:6","nodeType":"VariableDeclaration","scope":2451,"src":"15922:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2417,"name":"uint","nodeType":"ElementaryTypeName","src":"15922:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2428,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2419,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15940:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2420,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15959:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"15959:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"15940:49:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15939:51:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":2426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15993:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":2425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15997:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"15993:6:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"15939:60:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15922:77:6"},{"assignments":[2430],"declarations":[{"constant":false,"id":2430,"mutability":"mutable","name":"pricePerByte","nameLocation":"16096:12:6","nodeType":"VariableDeclaration","scope":2451,"src":"16091:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2429,"name":"uint","nodeType":"ElementaryTypeName","src":"16091:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2444,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2431,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16112:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"16112:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2433,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16148:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":1216,"src":"16148:27:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16112:63:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2436,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16178:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"16178:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"16112:96:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":2439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16111:98:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":2442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16212:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":2441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16216:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"16212:6:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"16111:107:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"16091:127:6"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2445,"name":"basePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"16236:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2446,"name":"_payloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2364,"src":"16248:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2447,"name":"pricePerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2430,"src":"16263:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16248:27:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:39:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2370,"id":2450,"nodeType":"Return","src":"16229:46:6"}]},"id":2452,"implemented":true,"kind":"function","modifiers":[],"name":"_getRelayerFee","nameLocation":"14969:14:6","nodeType":"FunctionDefinition","parameters":{"id":2367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"14993:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2357,"name":"uint16","nodeType":"ElementaryTypeName","src":"14993:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15027:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2359,"name":"uint16","nodeType":"ElementaryTypeName","src":"15027:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15068:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2361,"name":"address","nodeType":"ElementaryTypeName","src":"15068:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2364,"mutability":"mutable","name":"_payloadSize","nameLocation":"15113:12:6","nodeType":"VariableDeclaration","scope":2452,"src":"15108:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2363,"name":"uint","nodeType":"ElementaryTypeName","src":"15108:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2366,"mutability":"mutable","name":"_adapterParams","nameLocation":"15148:14:6","nodeType":"VariableDeclaration","scope":2452,"src":"15135:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2365,"name":"bytes","nodeType":"ElementaryTypeName","src":"15135:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14983:185:6"},"returnParameters":{"id":2370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15192:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2368,"name":"uint","nodeType":"ElementaryTypeName","src":"15192:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15191:6:6"},"scope":2453,"src":"14960:1322:6","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2454,"src":"817:15467:6","usedErrors":[]}],"src":"38:16247:6"},"id":6},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol","exportedSymbols":{"BytesLib":[2786]},"id":2787,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":2455,"literals":["solidity",">=","0.8",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"336:31:7"},{"abstract":false,"baseContracts":[],"canonicalName":"BytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2786,"linearizedBaseContracts":[2786],"name":"BytesLib","nameLocation":"378:8:7","nodeType":"ContractDefinition","nodes":[{"body":{"id":2470,"nodeType":"Block","src":"533:2695:7","statements":[{"assignments":[2465],"declarations":[{"constant":false,"id":2465,"mutability":"mutable","name":"tempBytes","nameLocation":"556:9:7","nodeType":"VariableDeclaration","scope":2470,"src":"543:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2464,"name":"bytes","nodeType":"ElementaryTypeName","src":"543:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2466,"nodeType":"VariableDeclarationStatement","src":"543:22:7"},{"AST":{"nodeType":"YulBlock","src":"585:2610:7","statements":[{"nodeType":"YulAssignment","src":"721:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"740:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"734:5:7"},"nodeType":"YulFunctionCall","src":"734:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"721:9:7"}]},{"nodeType":"YulVariableDeclaration","src":"869:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"889:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"883:5:7"},"nodeType":"YulFunctionCall","src":"883:16:7"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"873:6:7","type":""}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"919:9:7"},{"name":"length","nodeType":"YulIdentifier","src":"930:6:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"912:6:7"},"nodeType":"YulFunctionCall","src":"912:25:7"},"nodeType":"YulExpressionStatement","src":"912:25:7"},{"nodeType":"YulVariableDeclaration","src":"1135:30:7","value":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"1149:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"1160:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1145:3:7"},"nodeType":"YulFunctionCall","src":"1145:20:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"1139:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1282:26:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1297:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"1301:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1293:3:7"},"nodeType":"YulFunctionCall","src":"1293:15:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"1286:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"1673:154:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1799:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"1809:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1803:5:7"},"nodeType":"YulFunctionCall","src":"1803:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1792:6:7"},"nodeType":"YulFunctionCall","src":"1792:21:7"},"nodeType":"YulExpressionStatement","src":"1792:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1510:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"1514:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1507:2:7"},"nodeType":"YulFunctionCall","src":"1507:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1519:153:7","statements":[{"nodeType":"YulAssignment","src":"1603:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1613:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"1617:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1609:3:7"},"nodeType":"YulFunctionCall","src":"1609:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"1603:2:7"}]},{"nodeType":"YulAssignment","src":"1639:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"1649:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"1653:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1645:3:7"},"nodeType":"YulFunctionCall","src":"1645:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"1639:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"1326:180:7","statements":[{"nodeType":"YulVariableDeclaration","src":"1462:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"1476:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"1487:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1472:3:7"},"nodeType":"YulFunctionCall","src":"1472:20:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"1466:2:7","type":""}]}]},"src":"1322:505:7"},{"nodeType":"YulAssignment","src":"2016:27:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"2032:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2026:5:7"},"nodeType":"YulFunctionCall","src":"2026:17:7"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2016:6:7"}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"2063:9:7"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2078:6:7"},{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"2092:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2086:5:7"},"nodeType":"YulFunctionCall","src":"2086:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2074:3:7"},"nodeType":"YulFunctionCall","src":"2074:29:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2056:6:7"},"nodeType":"YulFunctionCall","src":"2056:48:7"},"nodeType":"YulExpressionStatement","src":"2056:48:7"},{"nodeType":"YulAssignment","src":"2234:9:7","value":{"name":"end","nodeType":"YulIdentifier","src":"2240:3:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"2234:2:7"}]},{"nodeType":"YulAssignment","src":"2362:22:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2373:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"2377:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2369:3:7"},"nodeType":"YulFunctionCall","src":"2369:15:7"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2362:3:7"}]},{"body":{"nodeType":"YulBlock","src":"2566:53:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2591:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"2601:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2595:5:7"},"nodeType":"YulFunctionCall","src":"2595:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2584:6:7"},"nodeType":"YulFunctionCall","src":"2584:21:7"},"nodeType":"YulExpressionStatement","src":"2584:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2469:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"2473:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2466:2:7"},"nodeType":"YulFunctionCall","src":"2466:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2478:87:7","statements":[{"nodeType":"YulAssignment","src":"2496:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2506:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"2510:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2502:3:7"},"nodeType":"YulFunctionCall","src":"2502:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"2496:2:7"}]},{"nodeType":"YulAssignment","src":"2532:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"2542:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"2546:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2538:3:7"},"nodeType":"YulFunctionCall","src":"2538:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"2532:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"2402:63:7","statements":[{"nodeType":"YulVariableDeclaration","src":"2420:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"2434:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"2446:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2430:3:7"},"nodeType":"YulFunctionCall","src":"2430:21:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"2424:2:7","type":""}]}]},"src":"2398:221:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3031:4:7","type":"","value":"0x40"},{"arguments":[{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"3062:3:7"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3078:6:7"},{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"3092:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3086:5:7"},"nodeType":"YulFunctionCall","src":"3086:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3074:3:7"},"nodeType":"YulFunctionCall","src":"3074:29:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3067:6:7"},"nodeType":"YulFunctionCall","src":"3067:37:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3058:3:7"},"nodeType":"YulFunctionCall","src":"3058:47:7"},{"kind":"number","nodeType":"YulLiteral","src":"3107:2:7","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3054:3:7"},"nodeType":"YulFunctionCall","src":"3054:56:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3128:2:7","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3124:3:7"},"nodeType":"YulFunctionCall","src":"3124:7:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3037:3:7"},"nodeType":"YulFunctionCall","src":"3037:147:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3024:6:7"},"nodeType":"YulFunctionCall","src":"3024:161:7"},"nodeType":"YulExpressionStatement","src":"3024:161:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2459,"isOffset":false,"isSlot":false,"src":"2032:10:7","valueSize":1},{"declaration":2459,"isOffset":false,"isSlot":false,"src":"2434:10:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"1476:9:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"3092:9:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"889:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"1149:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"2063:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"2092:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"721:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"919:9:7","valueSize":1}],"id":2467,"nodeType":"InlineAssembly","src":"576:2619:7"},{"expression":{"id":2468,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"3212:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2463,"id":2469,"nodeType":"Return","src":"3205:16:7"}]},"id":2471,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"402:6:7","nodeType":"FunctionDefinition","parameters":{"id":2460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2457,"mutability":"mutable","name":"_preBytes","nameLocation":"431:9:7","nodeType":"VariableDeclaration","scope":2471,"src":"418:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2456,"name":"bytes","nodeType":"ElementaryTypeName","src":"418:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2459,"mutability":"mutable","name":"_postBytes","nameLocation":"463:10:7","nodeType":"VariableDeclaration","scope":2471,"src":"450:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2458,"name":"bytes","nodeType":"ElementaryTypeName","src":"450:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"408:71:7"},"returnParameters":{"id":2463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2471,"src":"515:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2461,"name":"bytes","nodeType":"ElementaryTypeName","src":"515:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"514:14:7"},"scope":2786,"src":"393:2835:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2479,"nodeType":"Block","src":"3316:5543:7","statements":[{"AST":{"nodeType":"YulBlock","src":"3335:5518:7","statements":[{"nodeType":"YulVariableDeclaration","src":"3546:34:7","value":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"3565:14:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3559:5:7"},"nodeType":"YulFunctionCall","src":"3559:21:7"},"variables":[{"name":"fslot","nodeType":"YulTypedName","src":"3550:5:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4045:76:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"4068:5:7"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4083:5:7","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"4101:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"4108:1:7","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4097:3:7"},"nodeType":"YulFunctionCall","src":"4097:13:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4090:6:7"},"nodeType":"YulFunctionCall","src":"4090:21:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4079:3:7"},"nodeType":"YulFunctionCall","src":"4079:33:7"},{"kind":"number","nodeType":"YulLiteral","src":"4114:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4075:3:7"},"nodeType":"YulFunctionCall","src":"4075:41:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4064:3:7"},"nodeType":"YulFunctionCall","src":"4064:53:7"},{"kind":"number","nodeType":"YulLiteral","src":"4119:1:7","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4060:3:7"},"nodeType":"YulFunctionCall","src":"4060:61:7"},"variables":[{"name":"slength","nodeType":"YulTypedName","src":"4049:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4134:32:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"4155:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4149:5:7"},"nodeType":"YulFunctionCall","src":"4149:17:7"},"variables":[{"name":"mlength","nodeType":"YulTypedName","src":"4138:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4179:38:7","value":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"4200:7:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"4209:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4196:3:7"},"nodeType":"YulFunctionCall","src":"4196:21:7"},"variables":[{"name":"newlength","nodeType":"YulTypedName","src":"4183:9:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"4538:1193:7","statements":[{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"4803:14:7"},{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"5079:5:7"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"5221:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"5233:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5217:3:7"},"nodeType":"YulFunctionCall","src":"5217:21:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5211:5:7"},"nodeType":"YulFunctionCall","src":"5211:28:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5308:5:7","type":"","value":"0x100"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5319:2:7","type":"","value":"32"},{"name":"mlength","nodeType":"YulIdentifier","src":"5323:7:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5315:3:7"},"nodeType":"YulFunctionCall","src":"5315:16:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"5304:3:7"},"nodeType":"YulFunctionCall","src":"5304:28:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5144:3:7"},"nodeType":"YulFunctionCall","src":"5144:206:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5491:5:7","type":"","value":"0x100"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5502:2:7","type":"","value":"32"},{"name":"newlength","nodeType":"YulIdentifier","src":"5506:9:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5498:3:7"},"nodeType":"YulFunctionCall","src":"5498:18:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"5487:3:7"},"nodeType":"YulFunctionCall","src":"5487:30:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5123:3:7"},"nodeType":"YulFunctionCall","src":"5123:412:7"},{"arguments":[{"name":"mlength","nodeType":"YulIdentifier","src":"5652:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"5661:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5648:3:7"},"nodeType":"YulFunctionCall","src":"5648:15:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5102:3:7"},"nodeType":"YulFunctionCall","src":"5102:579:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4934:3:7"},"nodeType":"YulFunctionCall","src":"4934:765:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4779:6:7"},"nodeType":"YulFunctionCall","src":"4779:938:7"},"nodeType":"YulExpressionStatement","src":"4779:938:7"}]},"nodeType":"YulCase","src":"4531:1200:7","value":{"kind":"number","nodeType":"YulLiteral","src":"4536:1:7","type":"","value":"2"}},{"body":{"nodeType":"YulBlock","src":"5751:1827:7","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5948:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"5953:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5941:6:7"},"nodeType":"YulFunctionCall","src":"5941:27:7"},"nodeType":"YulExpressionStatement","src":"5941:27:7"},{"nodeType":"YulVariableDeclaration","src":"5985:53:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6009:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"6014:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"5999:9:7"},"nodeType":"YulFunctionCall","src":"5999:20:7"},{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"6025:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"6034:2:7","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6021:3:7"},"nodeType":"YulFunctionCall","src":"6021:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5995:3:7"},"nodeType":"YulFunctionCall","src":"5995:43:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"5989:2:7","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"6094:14:7"},{"arguments":[{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"6118:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"6129:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6114:3:7"},"nodeType":"YulFunctionCall","src":"6114:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"6133:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6110:3:7"},"nodeType":"YulFunctionCall","src":"6110:25:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6087:6:7"},"nodeType":"YulFunctionCall","src":"6087:49:7"},"nodeType":"YulExpressionStatement","src":"6087:49:7"},{"nodeType":"YulVariableDeclaration","src":"6692:30:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6710:2:7","type":"","value":"32"},{"name":"slength","nodeType":"YulIdentifier","src":"6714:7:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6706:3:7"},"nodeType":"YulFunctionCall","src":"6706:16:7"},"variables":[{"name":"submod","nodeType":"YulTypedName","src":"6696:6:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6739:33:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"6753:10:7"},{"name":"submod","nodeType":"YulIdentifier","src":"6765:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6749:3:7"},"nodeType":"YulFunctionCall","src":"6749:23:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"6743:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6789:35:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"6804:10:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"6816:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6800:3:7"},"nodeType":"YulFunctionCall","src":"6800:24:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"6793:3:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6841:38:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6861:5:7","type":"","value":"0x100"},{"name":"submod","nodeType":"YulIdentifier","src":"6868:6:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"6857:3:7"},"nodeType":"YulFunctionCall","src":"6857:18:7"},{"kind":"number","nodeType":"YulLiteral","src":"6877:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6853:3:7"},"nodeType":"YulFunctionCall","src":"6853:26:7"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"6845:4:7","type":""}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"6921:2:7"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"6983:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"7006:66:7","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6962:3:7"},"nodeType":"YulFunctionCall","src":"6962:128:7"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7118:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7112:5:7"},"nodeType":"YulFunctionCall","src":"7112:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7123:4:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7108:3:7"},"nodeType":"YulFunctionCall","src":"7108:20:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6941:3:7"},"nodeType":"YulFunctionCall","src":"6941:205:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6897:6:7"},"nodeType":"YulFunctionCall","src":"6897:267:7"},"nodeType":"YulExpressionStatement","src":"6897:267:7"},{"body":{"nodeType":"YulBlock","src":"7392:61:7","statements":[{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7421:2:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7431:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7425:5:7"},"nodeType":"YulFunctionCall","src":"7425:9:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7414:6:7"},"nodeType":"YulFunctionCall","src":"7414:21:7"},"nodeType":"YulExpressionStatement","src":"7414:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7286:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"7290:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7283:2:7"},"nodeType":"YulFunctionCall","src":"7283:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7295:96:7","statements":[{"nodeType":"YulAssignment","src":"7317:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7327:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7331:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7323:3:7"},"nodeType":"YulFunctionCall","src":"7323:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"7317:2:7"}]},{"nodeType":"YulAssignment","src":"7354:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7364:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7368:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7360:3:7"},"nodeType":"YulFunctionCall","src":"7360:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"7354:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"7186:96:7","statements":[{"nodeType":"YulAssignment","src":"7208:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7218:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7222:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:7"},"nodeType":"YulFunctionCall","src":"7214:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"7208:2:7"}]},{"nodeType":"YulAssignment","src":"7248:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7258:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7262:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7254:3:7"},"nodeType":"YulFunctionCall","src":"7254:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"7248:2:7"}]}]},"src":"7182:271:7"},{"nodeType":"YulAssignment","src":"7471:32:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7483:5:7","type":"","value":"0x100"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7494:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"7498:3:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7490:3:7"},"nodeType":"YulFunctionCall","src":"7490:12:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"7479:3:7"},"nodeType":"YulFunctionCall","src":"7479:24:7"},"variableNames":[{"name":"mask","nodeType":"YulIdentifier","src":"7471:4:7"}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7528:2:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7546:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7540:5:7"},"nodeType":"YulFunctionCall","src":"7540:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7551:4:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7536:3:7"},"nodeType":"YulFunctionCall","src":"7536:20:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7558:4:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7532:3:7"},"nodeType":"YulFunctionCall","src":"7532:31:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7521:6:7"},"nodeType":"YulFunctionCall","src":"7521:43:7"},"nodeType":"YulExpressionStatement","src":"7521:43:7"}]},"nodeType":"YulCase","src":"5744:1834:7","value":{"kind":"number","nodeType":"YulLiteral","src":"5749:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"7599:1244:7","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7692:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"7697:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7685:6:7"},"nodeType":"YulFunctionCall","src":"7685:27:7"},"nodeType":"YulExpressionStatement","src":"7685:27:7"},{"nodeType":"YulVariableDeclaration","src":"7801:53:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7825:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"7830:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"7815:9:7"},"nodeType":"YulFunctionCall","src":"7815:20:7"},{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"7841:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"7850:2:7","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7837:3:7"},"nodeType":"YulFunctionCall","src":"7837:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7811:3:7"},"nodeType":"YulFunctionCall","src":"7811:43:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"7805:2:7","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"7910:14:7"},{"arguments":[{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"7934:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"7945:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7930:3:7"},"nodeType":"YulFunctionCall","src":"7930:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"7949:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7926:3:7"},"nodeType":"YulFunctionCall","src":"7926:25:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7903:6:7"},"nodeType":"YulFunctionCall","src":"7903:49:7"},"nodeType":"YulExpressionStatement","src":"7903:49:7"},{"nodeType":"YulVariableDeclaration","src":"8071:34:7","value":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"8093:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"8102:2:7","type":"","value":"32"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"8089:3:7"},"nodeType":"YulFunctionCall","src":"8089:16:7"},"variables":[{"name":"slengthmod","nodeType":"YulTypedName","src":"8075:10:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8122:34:7","value":{"arguments":[{"name":"mlength","nodeType":"YulIdentifier","src":"8144:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"8153:2:7","type":"","value":"32"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"8140:3:7"},"nodeType":"YulFunctionCall","src":"8140:16:7"},"variables":[{"name":"mlengthmod","nodeType":"YulTypedName","src":"8126:10:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8173:33:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8191:2:7","type":"","value":"32"},{"name":"slengthmod","nodeType":"YulIdentifier","src":"8195:10:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8187:3:7"},"nodeType":"YulFunctionCall","src":"8187:19:7"},"variables":[{"name":"submod","nodeType":"YulTypedName","src":"8177:6:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8223:33:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"8237:10:7"},{"name":"submod","nodeType":"YulIdentifier","src":"8249:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8233:3:7"},"nodeType":"YulFunctionCall","src":"8233:23:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"8227:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8273:35:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"8288:10:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"8300:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8284:3:7"},"nodeType":"YulFunctionCall","src":"8284:24:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"8277:3:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8325:38:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8345:5:7","type":"","value":"0x100"},{"name":"submod","nodeType":"YulIdentifier","src":"8352:6:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"8341:3:7"},"nodeType":"YulFunctionCall","src":"8341:18:7"},{"kind":"number","nodeType":"YulLiteral","src":"8361:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8337:3:7"},"nodeType":"YulFunctionCall","src":"8337:26:7"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"8329:4:7","type":""}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8388:2:7"},{"arguments":[{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8402:2:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"8396:5:7"},"nodeType":"YulFunctionCall","src":"8396:9:7"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8417:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8411:5:7"},"nodeType":"YulFunctionCall","src":"8411:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8422:4:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8407:3:7"},"nodeType":"YulFunctionCall","src":"8407:20:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8392:3:7"},"nodeType":"YulFunctionCall","src":"8392:36:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8381:6:7"},"nodeType":"YulFunctionCall","src":"8381:48:7"},"nodeType":"YulExpressionStatement","src":"8381:48:7"},{"body":{"nodeType":"YulBlock","src":"8657:61:7","statements":[{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8686:2:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8696:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8690:5:7"},"nodeType":"YulFunctionCall","src":"8690:9:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8679:6:7"},"nodeType":"YulFunctionCall","src":"8679:21:7"},"nodeType":"YulExpressionStatement","src":"8679:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8551:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"8555:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8548:2:7"},"nodeType":"YulFunctionCall","src":"8548:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8560:96:7","statements":[{"nodeType":"YulAssignment","src":"8582:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8592:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8596:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8588:3:7"},"nodeType":"YulFunctionCall","src":"8588:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"8582:2:7"}]},{"nodeType":"YulAssignment","src":"8619:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8629:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8633:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8625:3:7"},"nodeType":"YulFunctionCall","src":"8625:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"8619:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"8451:96:7","statements":[{"nodeType":"YulAssignment","src":"8473:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8483:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8487:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8479:3:7"},"nodeType":"YulFunctionCall","src":"8479:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"8473:2:7"}]},{"nodeType":"YulAssignment","src":"8510:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8520:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8524:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8516:3:7"},"nodeType":"YulFunctionCall","src":"8516:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"8510:2:7"}]}]},"src":"8447:271:7"},{"nodeType":"YulAssignment","src":"8736:32:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8748:5:7","type":"","value":"0x100"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8759:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"8763:3:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8755:3:7"},"nodeType":"YulFunctionCall","src":"8755:12:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"8744:3:7"},"nodeType":"YulFunctionCall","src":"8744:24:7"},"variableNames":[{"name":"mask","nodeType":"YulIdentifier","src":"8736:4:7"}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8793:2:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8811:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8805:5:7"},"nodeType":"YulFunctionCall","src":"8805:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8816:4:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8801:3:7"},"nodeType":"YulFunctionCall","src":"8801:20:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8823:4:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8797:3:7"},"nodeType":"YulFunctionCall","src":"8797:31:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8786:6:7"},"nodeType":"YulFunctionCall","src":"8786:43:7"},"nodeType":"YulExpressionStatement","src":"8786:43:7"}]},"nodeType":"YulCase","src":"7591:1252:7","value":"default"}],"expression":{"arguments":[{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"4486:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"4495:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4483:2:7"},"nodeType":"YulFunctionCall","src":"4483:15:7"},{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"4503:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"4514:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4500:2:7"},"nodeType":"YulFunctionCall","src":"4500:17:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4479:3:7"},"nodeType":"YulFunctionCall","src":"4479:39:7"},"nodeType":"YulSwitch","src":"4472:4371:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2475,"isOffset":false,"isSlot":false,"src":"4155:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"5221:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"6753:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"6804:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"8237:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"8288:10:7","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"3565:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"4803:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"5953:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"6094:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"7697:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"7910:14:7","suffix":"slot","valueSize":1}],"id":2478,"nodeType":"InlineAssembly","src":"3326:5527:7"}]},"id":2480,"implemented":true,"kind":"function","modifiers":[],"name":"concatStorage","nameLocation":"3243:13:7","nodeType":"FunctionDefinition","parameters":{"id":2476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2473,"mutability":"mutable","name":"_preBytes","nameLocation":"3271:9:7","nodeType":"VariableDeclaration","scope":2480,"src":"3257:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2472,"name":"bytes","nodeType":"ElementaryTypeName","src":"3257:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2475,"mutability":"mutable","name":"_postBytes","nameLocation":"3295:10:7","nodeType":"VariableDeclaration","scope":2480,"src":"3282:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2474,"name":"bytes","nodeType":"ElementaryTypeName","src":"3282:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3256:50:7"},"returnParameters":{"id":2477,"nodeType":"ParameterList","parameters":[],"src":"3316:0:7"},"scope":2786,"src":"3234:5625:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2516,"nodeType":"Block","src":"9017:2560:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2492,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9035:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":2493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9045:2:7","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"9035:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2495,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9051:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9035:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":2497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9060:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":2491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9027:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9027:50:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2499,"nodeType":"ExpressionStatement","src":"9027:50:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2501,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"9095:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9095:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2503,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2484,"src":"9112:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2504,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9121:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9112:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9095:33:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f75744f66426f756e6473","id":2507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9130:19:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""},"value":"slice_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""}],"id":2500,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9087:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9087:63:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2509,"nodeType":"ExpressionStatement","src":"9087:63:7"},{"assignments":[2511],"declarations":[{"constant":false,"id":2511,"mutability":"mutable","name":"tempBytes","nameLocation":"9174:9:7","nodeType":"VariableDeclaration","scope":2516,"src":"9161:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2510,"name":"bytes","nodeType":"ElementaryTypeName","src":"9161:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2512,"nodeType":"VariableDeclarationStatement","src":"9161:22:7"},{"AST":{"nodeType":"YulBlock","src":"9203:2341:7","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"9259:1888:7","statements":[{"nodeType":"YulAssignment","src":"9407:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9426:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9420:5:7"},"nodeType":"YulFunctionCall","src":"9420:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"9407:9:7"}]},{"nodeType":"YulVariableDeclaration","src":"10023:33:7","value":{"arguments":[{"name":"_length","nodeType":"YulIdentifier","src":"10044:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"10053:2:7","type":"","value":"31"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10040:3:7"},"nodeType":"YulFunctionCall","src":"10040:16:7"},"variables":[{"name":"lengthmod","nodeType":"YulTypedName","src":"10027:9:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10361:70:7","value":{"arguments":[{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"10379:9:7"},{"name":"lengthmod","nodeType":"YulIdentifier","src":"10390:9:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10375:3:7"},"nodeType":"YulFunctionCall","src":"10375:25:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10406:4:7","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nodeType":"YulIdentifier","src":"10419:9:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10412:6:7"},"nodeType":"YulFunctionCall","src":"10412:17:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10402:3:7"},"nodeType":"YulFunctionCall","src":"10402:28:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10371:3:7"},"nodeType":"YulFunctionCall","src":"10371:60:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"10365:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10448:27:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10463:2:7"},{"name":"_length","nodeType":"YulIdentifier","src":"10467:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10459:3:7"},"nodeType":"YulFunctionCall","src":"10459:16:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"10452:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"10849:61:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10878:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"10888:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10882:5:7"},"nodeType":"YulFunctionCall","src":"10882:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10871:6:7"},"nodeType":"YulFunctionCall","src":"10871:21:7"},"nodeType":"YulExpressionStatement","src":"10871:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10740:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"10744:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10737:2:7"},"nodeType":"YulFunctionCall","src":"10737:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10749:99:7","statements":[{"nodeType":"YulAssignment","src":"10771:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10781:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"10785:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10777:3:7"},"nodeType":"YulFunctionCall","src":"10777:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"10771:2:7"}]},{"nodeType":"YulAssignment","src":"10811:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"10821:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"10825:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10817:3:7"},"nodeType":"YulFunctionCall","src":"10817:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"10811:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"10497:239:7","statements":[{"nodeType":"YulVariableDeclaration","src":"10638:80:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"10660:6:7"},{"name":"lengthmod","nodeType":"YulIdentifier","src":"10668:9:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10656:3:7"},"nodeType":"YulFunctionCall","src":"10656:22:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10684:4:7","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nodeType":"YulIdentifier","src":"10697:9:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10690:6:7"},"nodeType":"YulFunctionCall","src":"10690:17:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10680:3:7"},"nodeType":"YulFunctionCall","src":"10680:28:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10652:3:7"},"nodeType":"YulFunctionCall","src":"10652:57:7"},{"name":"_start","nodeType":"YulIdentifier","src":"10711:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10648:3:7"},"nodeType":"YulFunctionCall","src":"10648:70:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"10642:2:7","type":""}]}]},"src":"10493:417:7"},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"10935:9:7"},{"name":"_length","nodeType":"YulIdentifier","src":"10946:7:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10928:6:7"},"nodeType":"YulFunctionCall","src":"10928:26:7"},"nodeType":"YulExpressionStatement","src":"10928:26:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11101:4:7","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"11115:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"11119:2:7","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11111:3:7"},"nodeType":"YulFunctionCall","src":"11111:11:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11128:2:7","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11124:3:7"},"nodeType":"YulFunctionCall","src":"11124:7:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11107:3:7"},"nodeType":"YulFunctionCall","src":"11107:25:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11094:6:7"},"nodeType":"YulFunctionCall","src":"11094:39:7"},"nodeType":"YulExpressionStatement","src":"11094:39:7"}]},"nodeType":"YulCase","src":"9252:1895:7","value":{"kind":"number","nodeType":"YulLiteral","src":"9257:1:7","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"11251:283:7","statements":[{"nodeType":"YulAssignment","src":"11269:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11288:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11282:5:7"},"nodeType":"YulFunctionCall","src":"11282:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11269:9:7"}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11455:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"11466:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11448:6:7"},"nodeType":"YulFunctionCall","src":"11448:20:7"},"nodeType":"YulExpressionStatement","src":"11448:20:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11493:4:7","type":"","value":"0x40"},{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11503:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"11514:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11499:3:7"},"nodeType":"YulFunctionCall","src":"11499:20:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11486:6:7"},"nodeType":"YulFunctionCall","src":"11486:34:7"},"nodeType":"YulExpressionStatement","src":"11486:34:7"}]},"nodeType":"YulCase","src":"11243:291:7","value":"default"}],"expression":{"arguments":[{"name":"_length","nodeType":"YulIdentifier","src":"9231:7:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9224:6:7"},"nodeType":"YulFunctionCall","src":"9224:15:7"},"nodeType":"YulSwitch","src":"9217:2317:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2482,"isOffset":false,"isSlot":false,"src":"10660:6:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10044:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10467:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10946:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"9231:7:7","valueSize":1},{"declaration":2484,"isOffset":false,"isSlot":false,"src":"10711:6:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"10379:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"10935:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11269:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11455:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11503:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"9407:9:7","valueSize":1}],"id":2513,"nodeType":"InlineAssembly","src":"9194:2350:7"},{"expression":{"id":2514,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"11561:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2490,"id":2515,"nodeType":"Return","src":"11554:16:7"}]},"id":2517,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"8874:5:7","nodeType":"FunctionDefinition","parameters":{"id":2487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2482,"mutability":"mutable","name":"_bytes","nameLocation":"8902:6:7","nodeType":"VariableDeclaration","scope":2517,"src":"8889:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2481,"name":"bytes","nodeType":"ElementaryTypeName","src":"8889:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2484,"mutability":"mutable","name":"_start","nameLocation":"8926:6:7","nodeType":"VariableDeclaration","scope":2517,"src":"8918:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2483,"name":"uint256","nodeType":"ElementaryTypeName","src":"8918:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2486,"mutability":"mutable","name":"_length","nameLocation":"8950:7:7","nodeType":"VariableDeclaration","scope":2517,"src":"8942:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2485,"name":"uint256","nodeType":"ElementaryTypeName","src":"8942:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8879:84:7"},"returnParameters":{"id":2490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2517,"src":"8999:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2488,"name":"bytes","nodeType":"ElementaryTypeName","src":"8999:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8998:14:7"},"scope":2786,"src":"8865:2712:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2542,"nodeType":"Block","src":"11671:266:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2527,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"11689:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11689:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2529,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2521,"src":"11706:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":2530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11715:2:7","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"11706:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11689:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","id":2533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11719:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""},"value":"toAddress_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""}],"id":2526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11681:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11681:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2535,"nodeType":"ExpressionStatement","src":"11681:62:7"},{"assignments":[2537],"declarations":[{"constant":false,"id":2537,"mutability":"mutable","name":"tempAddress","nameLocation":"11761:11:7","nodeType":"VariableDeclaration","scope":2542,"src":"11753:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2536,"name":"address","nodeType":"ElementaryTypeName","src":"11753:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2538,"nodeType":"VariableDeclarationStatement","src":"11753:19:7"},{"AST":{"nodeType":"YulBlock","src":"11792:110:7","statements":[{"nodeType":"YulAssignment","src":"11806:86:7","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"11839:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"11847:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11835:3:7"},"nodeType":"YulFunctionCall","src":"11835:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"11854:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11831:3:7"},"nodeType":"YulFunctionCall","src":"11831:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11825:5:7"},"nodeType":"YulFunctionCall","src":"11825:37:7"},{"kind":"number","nodeType":"YulLiteral","src":"11864:27:7","type":"","value":"0x1000000000000000000000000"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11821:3:7"},"nodeType":"YulFunctionCall","src":"11821:71:7"},"variableNames":[{"name":"tempAddress","nodeType":"YulIdentifier","src":"11806:11:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2519,"isOffset":false,"isSlot":false,"src":"11839:6:7","valueSize":1},{"declaration":2521,"isOffset":false,"isSlot":false,"src":"11854:6:7","valueSize":1},{"declaration":2537,"isOffset":false,"isSlot":false,"src":"11806:11:7","valueSize":1}],"id":2539,"nodeType":"InlineAssembly","src":"11783:119:7"},{"expression":{"id":2540,"name":"tempAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2537,"src":"11919:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2525,"id":2541,"nodeType":"Return","src":"11912:18:7"}]},"id":2543,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"11592:9:7","nodeType":"FunctionDefinition","parameters":{"id":2522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2519,"mutability":"mutable","name":"_bytes","nameLocation":"11615:6:7","nodeType":"VariableDeclaration","scope":2543,"src":"11602:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2518,"name":"bytes","nodeType":"ElementaryTypeName","src":"11602:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2521,"mutability":"mutable","name":"_start","nameLocation":"11631:6:7","nodeType":"VariableDeclaration","scope":2543,"src":"11623:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2520,"name":"uint256","nodeType":"ElementaryTypeName","src":"11623:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11601:37:7"},"returnParameters":{"id":2525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2543,"src":"11662:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2523,"name":"address","nodeType":"ElementaryTypeName","src":"11662:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11661:9:7"},"scope":2786,"src":"11583:354:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2568,"nodeType":"Block","src":"12027:218:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2553,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"12045:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12045:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2555,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2547,"src":"12062:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12071:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12062:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12045:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","id":2559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12075:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""},"value":"toUint8_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""}],"id":2552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12037:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12037:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2561,"nodeType":"ExpressionStatement","src":"12037:60:7"},{"assignments":[2563],"declarations":[{"constant":false,"id":2563,"mutability":"mutable","name":"tempUint","nameLocation":"12113:8:7","nodeType":"VariableDeclaration","scope":2568,"src":"12107:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2562,"name":"uint8","nodeType":"ElementaryTypeName","src":"12107:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2564,"nodeType":"VariableDeclarationStatement","src":"12107:14:7"},{"AST":{"nodeType":"YulBlock","src":"12141:72:7","statements":[{"nodeType":"YulAssignment","src":"12155:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12181:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12189:3:7","type":"","value":"0x1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12177:3:7"},"nodeType":"YulFunctionCall","src":"12177:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12195:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12173:3:7"},"nodeType":"YulFunctionCall","src":"12173:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12167:5:7"},"nodeType":"YulFunctionCall","src":"12167:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12155:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2545,"isOffset":false,"isSlot":false,"src":"12181:6:7","valueSize":1},{"declaration":2547,"isOffset":false,"isSlot":false,"src":"12195:6:7","valueSize":1},{"declaration":2563,"isOffset":false,"isSlot":false,"src":"12155:8:7","valueSize":1}],"id":2565,"nodeType":"InlineAssembly","src":"12132:81:7"},{"expression":{"id":2566,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2563,"src":"12230:8:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":2551,"id":2567,"nodeType":"Return","src":"12223:15:7"}]},"id":2569,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"11952:7:7","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2545,"mutability":"mutable","name":"_bytes","nameLocation":"11973:6:7","nodeType":"VariableDeclaration","scope":2569,"src":"11960:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2544,"name":"bytes","nodeType":"ElementaryTypeName","src":"11960:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"_start","nameLocation":"11989:6:7","nodeType":"VariableDeclaration","scope":2569,"src":"11981:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2546,"name":"uint256","nodeType":"ElementaryTypeName","src":"11981:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11959:37:7"},"returnParameters":{"id":2551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2569,"src":"12020:5:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2549,"name":"uint8","nodeType":"ElementaryTypeName","src":"12020:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12019:7:7"},"scope":2786,"src":"11943:302:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2594,"nodeType":"Block","src":"12337:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2579,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2571,"src":"12355:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12355:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2581,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"12372:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12381:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12372:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12355:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7431365f6f75744f66426f756e6473","id":2585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12384:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""},"value":"toUint16_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""}],"id":2578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12347:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12347:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2587,"nodeType":"ExpressionStatement","src":"12347:60:7"},{"assignments":[2589],"declarations":[{"constant":false,"id":2589,"mutability":"mutable","name":"tempUint","nameLocation":"12424:8:7","nodeType":"VariableDeclaration","scope":2594,"src":"12417:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2588,"name":"uint16","nodeType":"ElementaryTypeName","src":"12417:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":2590,"nodeType":"VariableDeclarationStatement","src":"12417:15:7"},{"AST":{"nodeType":"YulBlock","src":"12452:72:7","statements":[{"nodeType":"YulAssignment","src":"12466:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12492:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12500:3:7","type":"","value":"0x2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12488:3:7"},"nodeType":"YulFunctionCall","src":"12488:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12506:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12484:3:7"},"nodeType":"YulFunctionCall","src":"12484:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12478:5:7"},"nodeType":"YulFunctionCall","src":"12478:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12466:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2571,"isOffset":false,"isSlot":false,"src":"12492:6:7","valueSize":1},{"declaration":2573,"isOffset":false,"isSlot":false,"src":"12506:6:7","valueSize":1},{"declaration":2589,"isOffset":false,"isSlot":false,"src":"12466:8:7","valueSize":1}],"id":2591,"nodeType":"InlineAssembly","src":"12443:81:7"},{"expression":{"id":2592,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2589,"src":"12541:8:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":2577,"id":2593,"nodeType":"Return","src":"12534:15:7"}]},"id":2595,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"12260:8:7","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2571,"mutability":"mutable","name":"_bytes","nameLocation":"12282:6:7","nodeType":"VariableDeclaration","scope":2595,"src":"12269:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2570,"name":"bytes","nodeType":"ElementaryTypeName","src":"12269:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2573,"mutability":"mutable","name":"_start","nameLocation":"12298:6:7","nodeType":"VariableDeclaration","scope":2595,"src":"12290:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2572,"name":"uint256","nodeType":"ElementaryTypeName","src":"12290:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12268:37:7"},"returnParameters":{"id":2577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2595,"src":"12329:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2575,"name":"uint16","nodeType":"ElementaryTypeName","src":"12329:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"12328:8:7"},"scope":2786,"src":"12251:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2620,"nodeType":"Block","src":"12648:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2605,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2597,"src":"12666:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12666:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2607,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2599,"src":"12683:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":2608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12692:1:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12683:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12666:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7433325f6f75744f66426f756e6473","id":2611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12695:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""},"value":"toUint32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""}],"id":2604,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12658:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12658:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2613,"nodeType":"ExpressionStatement","src":"12658:60:7"},{"assignments":[2615],"declarations":[{"constant":false,"id":2615,"mutability":"mutable","name":"tempUint","nameLocation":"12735:8:7","nodeType":"VariableDeclaration","scope":2620,"src":"12728:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2614,"name":"uint32","nodeType":"ElementaryTypeName","src":"12728:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":2616,"nodeType":"VariableDeclarationStatement","src":"12728:15:7"},{"AST":{"nodeType":"YulBlock","src":"12763:72:7","statements":[{"nodeType":"YulAssignment","src":"12777:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12803:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12811:3:7","type":"","value":"0x4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12799:3:7"},"nodeType":"YulFunctionCall","src":"12799:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12817:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12795:3:7"},"nodeType":"YulFunctionCall","src":"12795:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12789:5:7"},"nodeType":"YulFunctionCall","src":"12789:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12777:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2597,"isOffset":false,"isSlot":false,"src":"12803:6:7","valueSize":1},{"declaration":2599,"isOffset":false,"isSlot":false,"src":"12817:6:7","valueSize":1},{"declaration":2615,"isOffset":false,"isSlot":false,"src":"12777:8:7","valueSize":1}],"id":2617,"nodeType":"InlineAssembly","src":"12754:81:7"},{"expression":{"id":2618,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2615,"src":"12852:8:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":2603,"id":2619,"nodeType":"Return","src":"12845:15:7"}]},"id":2621,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"12571:8:7","nodeType":"FunctionDefinition","parameters":{"id":2600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2597,"mutability":"mutable","name":"_bytes","nameLocation":"12593:6:7","nodeType":"VariableDeclaration","scope":2621,"src":"12580:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2596,"name":"bytes","nodeType":"ElementaryTypeName","src":"12580:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2599,"mutability":"mutable","name":"_start","nameLocation":"12609:6:7","nodeType":"VariableDeclaration","scope":2621,"src":"12601:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2598,"name":"uint256","nodeType":"ElementaryTypeName","src":"12601:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12579:37:7"},"returnParameters":{"id":2603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2621,"src":"12640:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2601,"name":"uint32","nodeType":"ElementaryTypeName","src":"12640:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"12639:8:7"},"scope":2786,"src":"12562:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2646,"nodeType":"Block","src":"12959:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2631,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2623,"src":"12977:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12977:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2633,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"12994:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":2634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13003:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12994:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12977:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","id":2637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13006:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""},"value":"toUint64_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""}],"id":2630,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12969:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12969:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2639,"nodeType":"ExpressionStatement","src":"12969:60:7"},{"assignments":[2641],"declarations":[{"constant":false,"id":2641,"mutability":"mutable","name":"tempUint","nameLocation":"13046:8:7","nodeType":"VariableDeclaration","scope":2646,"src":"13039:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2640,"name":"uint64","nodeType":"ElementaryTypeName","src":"13039:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":2642,"nodeType":"VariableDeclarationStatement","src":"13039:15:7"},{"AST":{"nodeType":"YulBlock","src":"13074:72:7","statements":[{"nodeType":"YulAssignment","src":"13088:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13114:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13122:3:7","type":"","value":"0x8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13110:3:7"},"nodeType":"YulFunctionCall","src":"13110:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13128:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13106:3:7"},"nodeType":"YulFunctionCall","src":"13106:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13100:5:7"},"nodeType":"YulFunctionCall","src":"13100:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13088:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2623,"isOffset":false,"isSlot":false,"src":"13114:6:7","valueSize":1},{"declaration":2625,"isOffset":false,"isSlot":false,"src":"13128:6:7","valueSize":1},{"declaration":2641,"isOffset":false,"isSlot":false,"src":"13088:8:7","valueSize":1}],"id":2643,"nodeType":"InlineAssembly","src":"13065:81:7"},{"expression":{"id":2644,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2641,"src":"13163:8:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":2629,"id":2645,"nodeType":"Return","src":"13156:15:7"}]},"id":2647,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"12882:8:7","nodeType":"FunctionDefinition","parameters":{"id":2626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2623,"mutability":"mutable","name":"_bytes","nameLocation":"12904:6:7","nodeType":"VariableDeclaration","scope":2647,"src":"12891:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2622,"name":"bytes","nodeType":"ElementaryTypeName","src":"12891:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2625,"mutability":"mutable","name":"_start","nameLocation":"12920:6:7","nodeType":"VariableDeclaration","scope":2647,"src":"12912:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2624,"name":"uint256","nodeType":"ElementaryTypeName","src":"12912:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12890:37:7"},"returnParameters":{"id":2629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2647,"src":"12951:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2627,"name":"uint64","nodeType":"ElementaryTypeName","src":"12951:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"12950:8:7"},"scope":2786,"src":"12873:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2672,"nodeType":"Block","src":"13270:220:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2657,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2649,"src":"13288:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13288:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2659,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2651,"src":"13305:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3132","id":2660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13314:2:7","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13305:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13288:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7439365f6f75744f66426f756e6473","id":2663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13318:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""},"value":"toUint96_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""}],"id":2656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13280:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13280:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2665,"nodeType":"ExpressionStatement","src":"13280:61:7"},{"assignments":[2667],"declarations":[{"constant":false,"id":2667,"mutability":"mutable","name":"tempUint","nameLocation":"13358:8:7","nodeType":"VariableDeclaration","scope":2672,"src":"13351:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2666,"name":"uint96","nodeType":"ElementaryTypeName","src":"13351:6:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":2668,"nodeType":"VariableDeclarationStatement","src":"13351:15:7"},{"AST":{"nodeType":"YulBlock","src":"13386:72:7","statements":[{"nodeType":"YulAssignment","src":"13400:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13426:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13434:3:7","type":"","value":"0xc"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13422:3:7"},"nodeType":"YulFunctionCall","src":"13422:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13440:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13418:3:7"},"nodeType":"YulFunctionCall","src":"13418:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13412:5:7"},"nodeType":"YulFunctionCall","src":"13412:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13400:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2649,"isOffset":false,"isSlot":false,"src":"13426:6:7","valueSize":1},{"declaration":2651,"isOffset":false,"isSlot":false,"src":"13440:6:7","valueSize":1},{"declaration":2667,"isOffset":false,"isSlot":false,"src":"13400:8:7","valueSize":1}],"id":2669,"nodeType":"InlineAssembly","src":"13377:81:7"},{"expression":{"id":2670,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2667,"src":"13475:8:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":2655,"id":2671,"nodeType":"Return","src":"13468:15:7"}]},"id":2673,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"13193:8:7","nodeType":"FunctionDefinition","parameters":{"id":2652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2649,"mutability":"mutable","name":"_bytes","nameLocation":"13215:6:7","nodeType":"VariableDeclaration","scope":2673,"src":"13202:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2648,"name":"bytes","nodeType":"ElementaryTypeName","src":"13202:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2651,"mutability":"mutable","name":"_start","nameLocation":"13231:6:7","nodeType":"VariableDeclaration","scope":2673,"src":"13223:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2650,"name":"uint256","nodeType":"ElementaryTypeName","src":"13223:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13201:37:7"},"returnParameters":{"id":2655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2673,"src":"13262:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2653,"name":"uint96","nodeType":"ElementaryTypeName","src":"13262:6:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"13261:8:7"},"scope":2786,"src":"13184:306:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2698,"nodeType":"Block","src":"13584:223:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2683,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2675,"src":"13602:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13602:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2685,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2677,"src":"13619:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":2686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13628:2:7","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13619:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13602:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743132385f6f75744f66426f756e6473","id":2689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13632:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""},"value":"toUint128_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""}],"id":2682,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13594:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13594:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2691,"nodeType":"ExpressionStatement","src":"13594:62:7"},{"assignments":[2693],"declarations":[{"constant":false,"id":2693,"mutability":"mutable","name":"tempUint","nameLocation":"13674:8:7","nodeType":"VariableDeclaration","scope":2698,"src":"13666:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2692,"name":"uint128","nodeType":"ElementaryTypeName","src":"13666:7:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":2694,"nodeType":"VariableDeclarationStatement","src":"13666:16:7"},{"AST":{"nodeType":"YulBlock","src":"13702:73:7","statements":[{"nodeType":"YulAssignment","src":"13716:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13742:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13750:4:7","type":"","value":"0x10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13738:3:7"},"nodeType":"YulFunctionCall","src":"13738:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13757:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13734:3:7"},"nodeType":"YulFunctionCall","src":"13734:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13728:5:7"},"nodeType":"YulFunctionCall","src":"13728:37:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13716:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2675,"isOffset":false,"isSlot":false,"src":"13742:6:7","valueSize":1},{"declaration":2677,"isOffset":false,"isSlot":false,"src":"13757:6:7","valueSize":1},{"declaration":2693,"isOffset":false,"isSlot":false,"src":"13716:8:7","valueSize":1}],"id":2695,"nodeType":"InlineAssembly","src":"13693:82:7"},{"expression":{"id":2696,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2693,"src":"13792:8:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":2681,"id":2697,"nodeType":"Return","src":"13785:15:7"}]},"id":2699,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"13505:9:7","nodeType":"FunctionDefinition","parameters":{"id":2678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2675,"mutability":"mutable","name":"_bytes","nameLocation":"13528:6:7","nodeType":"VariableDeclaration","scope":2699,"src":"13515:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2674,"name":"bytes","nodeType":"ElementaryTypeName","src":"13515:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2677,"mutability":"mutable","name":"_start","nameLocation":"13544:6:7","nodeType":"VariableDeclaration","scope":2699,"src":"13536:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2676,"name":"uint256","nodeType":"ElementaryTypeName","src":"13536:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13514:37:7"},"returnParameters":{"id":2681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2699,"src":"13575:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2679,"name":"uint128","nodeType":"ElementaryTypeName","src":"13575:7:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13574:9:7"},"scope":2786,"src":"13496:311:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2724,"nodeType":"Block","src":"13901:223:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2709,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"13919:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13919:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2711,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"13936:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":2712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13945:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"13936:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13919:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743235365f6f75744f66426f756e6473","id":2715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13949:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""},"value":"toUint256_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""}],"id":2708,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13911:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13911:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2717,"nodeType":"ExpressionStatement","src":"13911:62:7"},{"assignments":[2719],"declarations":[{"constant":false,"id":2719,"mutability":"mutable","name":"tempUint","nameLocation":"13991:8:7","nodeType":"VariableDeclaration","scope":2724,"src":"13983:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2718,"name":"uint256","nodeType":"ElementaryTypeName","src":"13983:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2720,"nodeType":"VariableDeclarationStatement","src":"13983:16:7"},{"AST":{"nodeType":"YulBlock","src":"14019:73:7","statements":[{"nodeType":"YulAssignment","src":"14033:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"14059:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"14067:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14055:3:7"},"nodeType":"YulFunctionCall","src":"14055:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"14074:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14051:3:7"},"nodeType":"YulFunctionCall","src":"14051:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14045:5:7"},"nodeType":"YulFunctionCall","src":"14045:37:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"14033:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2701,"isOffset":false,"isSlot":false,"src":"14059:6:7","valueSize":1},{"declaration":2703,"isOffset":false,"isSlot":false,"src":"14074:6:7","valueSize":1},{"declaration":2719,"isOffset":false,"isSlot":false,"src":"14033:8:7","valueSize":1}],"id":2721,"nodeType":"InlineAssembly","src":"14010:82:7"},{"expression":{"id":2722,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"14109:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2707,"id":2723,"nodeType":"Return","src":"14102:15:7"}]},"id":2725,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"13822:9:7","nodeType":"FunctionDefinition","parameters":{"id":2704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2701,"mutability":"mutable","name":"_bytes","nameLocation":"13845:6:7","nodeType":"VariableDeclaration","scope":2725,"src":"13832:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2700,"name":"bytes","nodeType":"ElementaryTypeName","src":"13832:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2703,"mutability":"mutable","name":"_start","nameLocation":"13861:6:7","nodeType":"VariableDeclaration","scope":2725,"src":"13853:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2702,"name":"uint256","nodeType":"ElementaryTypeName","src":"13853:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13831:37:7"},"returnParameters":{"id":2707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2725,"src":"13892:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2705,"name":"uint256","nodeType":"ElementaryTypeName","src":"13892:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13891:9:7"},"scope":2786,"src":"13813:311:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2750,"nodeType":"Block","src":"14218:232:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2735,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2727,"src":"14236:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14236:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2737,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2729,"src":"14253:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":2738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14253:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14236:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","id":2741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14266:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""},"value":"toBytes32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""}],"id":2734,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14228:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14228:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2743,"nodeType":"ExpressionStatement","src":"14228:62:7"},{"assignments":[2745],"declarations":[{"constant":false,"id":2745,"mutability":"mutable","name":"tempBytes32","nameLocation":"14308:11:7","nodeType":"VariableDeclaration","scope":2750,"src":"14300:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14300:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2746,"nodeType":"VariableDeclarationStatement","src":"14300:19:7"},{"AST":{"nodeType":"YulBlock","src":"14339:76:7","statements":[{"nodeType":"YulAssignment","src":"14353:52:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"14382:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"14390:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14378:3:7"},"nodeType":"YulFunctionCall","src":"14378:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"14397:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14374:3:7"},"nodeType":"YulFunctionCall","src":"14374:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14368:5:7"},"nodeType":"YulFunctionCall","src":"14368:37:7"},"variableNames":[{"name":"tempBytes32","nodeType":"YulIdentifier","src":"14353:11:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2727,"isOffset":false,"isSlot":false,"src":"14382:6:7","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"14397:6:7","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"14353:11:7","valueSize":1}],"id":2747,"nodeType":"InlineAssembly","src":"14330:85:7"},{"expression":{"id":2748,"name":"tempBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"14432:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2733,"id":2749,"nodeType":"Return","src":"14425:18:7"}]},"id":2751,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"14139:9:7","nodeType":"FunctionDefinition","parameters":{"id":2730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"mutability":"mutable","name":"_bytes","nameLocation":"14162:6:7","nodeType":"VariableDeclaration","scope":2751,"src":"14149:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2726,"name":"bytes","nodeType":"ElementaryTypeName","src":"14149:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2729,"mutability":"mutable","name":"_start","nameLocation":"14178:6:7","nodeType":"VariableDeclaration","scope":2751,"src":"14170:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"14170:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14148:37:7"},"returnParameters":{"id":2733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2751,"src":"14209:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14209:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14208:9:7"},"scope":2786,"src":"14130:320:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2767,"nodeType":"Block","src":"14549:1291:7","statements":[{"assignments":[2761],"declarations":[{"constant":false,"id":2761,"mutability":"mutable","name":"success","nameLocation":"14564:7:7","nodeType":"VariableDeclaration","scope":2767,"src":"14559:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2760,"name":"bool","nodeType":"ElementaryTypeName","src":"14559:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2763,"initialValue":{"hexValue":"74727565","id":2762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14574:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"14559:19:7"},{"AST":{"nodeType":"YulBlock","src":"14598:1211:7","statements":[{"nodeType":"YulVariableDeclaration","src":"14612:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"14632:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14626:5:7"},"nodeType":"YulFunctionCall","src":"14626:16:7"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14616:6:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"14771:937:7","statements":[{"nodeType":"YulVariableDeclaration","src":"14984:11:7","value":{"kind":"number","nodeType":"YulLiteral","src":"14994:1:7","type":"","value":"1"},"variables":[{"name":"cb","nodeType":"YulTypedName","src":"14988:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15013:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"15027:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"15038:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15023:3:7"},"nodeType":"YulFunctionCall","src":"15023:20:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"15017:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15060:26:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15075:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"15079:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15071:3:7"},"nodeType":"YulFunctionCall","src":"15071:15:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"15064:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"15418:276:7","statements":[{"body":{"nodeType":"YulBlock","src":"15550:126:7","statements":[{"nodeType":"YulAssignment","src":"15610:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15621:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"15610:7:7"}]},{"nodeType":"YulAssignment","src":"15647:7:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15653:1:7","type":"","value":"0"},"variableNames":[{"name":"cb","nodeType":"YulIdentifier","src":"15647:2:7"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15533:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15527:5:7"},"nodeType":"YulFunctionCall","src":"15527:9:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"15544:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15538:5:7"},"nodeType":"YulFunctionCall","src":"15538:9:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15524:2:7"},"nodeType":"YulFunctionCall","src":"15524:24:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15517:6:7"},"nodeType":"YulFunctionCall","src":"15517:32:7"},"nodeType":"YulIf","src":"15514:162:7"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15300:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"15304:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15297:2:7"},"nodeType":"YulFunctionCall","src":"15297:11:7"},{"name":"cb","nodeType":"YulIdentifier","src":"15310:2:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15293:3:7"},"nodeType":"YulFunctionCall","src":"15293:20:7"},{"kind":"number","nodeType":"YulLiteral","src":"15315:1:7","type":"","value":"2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15290:2:7"},"nodeType":"YulFunctionCall","src":"15290:27:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15318:99:7","statements":[{"nodeType":"YulAssignment","src":"15340:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15350:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"15354:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15346:3:7"},"nodeType":"YulFunctionCall","src":"15346:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"15340:2:7"}]},{"nodeType":"YulAssignment","src":"15380:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"15390:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"15394:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15386:3:7"},"nodeType":"YulFunctionCall","src":"15386:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"15380:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"15108:181:7","statements":[{"nodeType":"YulVariableDeclaration","src":"15130:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"15144:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"15156:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15140:3:7"},"nodeType":"YulFunctionCall","src":"15140:21:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"15134:2:7","type":""}]}]},"src":"15104:590:7"}]},"nodeType":"YulCase","src":"14764:944:7","value":{"kind":"number","nodeType":"YulLiteral","src":"14769:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"15729:70:7","statements":[{"nodeType":"YulAssignment","src":"15773:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15784:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"15773:7:7"}]}]},"nodeType":"YulCase","src":"15721:78:7","value":"default"}],"expression":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14725:6:7"},{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"14739:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14733:5:7"},"nodeType":"YulFunctionCall","src":"14733:17:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14722:2:7"},"nodeType":"YulFunctionCall","src":"14722:29:7"},"nodeType":"YulSwitch","src":"14715:1084:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2755,"isOffset":false,"isSlot":false,"src":"14739:10:7","valueSize":1},{"declaration":2755,"isOffset":false,"isSlot":false,"src":"15144:10:7","valueSize":1},{"declaration":2753,"isOffset":false,"isSlot":false,"src":"14632:9:7","valueSize":1},{"declaration":2753,"isOffset":false,"isSlot":false,"src":"15027:9:7","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"15610:7:7","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"15773:7:7","valueSize":1}],"id":2764,"nodeType":"InlineAssembly","src":"14589:1220:7"},{"expression":{"id":2765,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2761,"src":"15826:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2759,"id":2766,"nodeType":"Return","src":"15819:14:7"}]},"id":2768,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"14465:5:7","nodeType":"FunctionDefinition","parameters":{"id":2756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2753,"mutability":"mutable","name":"_preBytes","nameLocation":"14484:9:7","nodeType":"VariableDeclaration","scope":2768,"src":"14471:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2752,"name":"bytes","nodeType":"ElementaryTypeName","src":"14471:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2755,"mutability":"mutable","name":"_postBytes","nameLocation":"14508:10:7","nodeType":"VariableDeclaration","scope":2768,"src":"14495:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2754,"name":"bytes","nodeType":"ElementaryTypeName","src":"14495:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14470:49:7"},"returnParameters":{"id":2759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2768,"src":"14543:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2757,"name":"bool","nodeType":"ElementaryTypeName","src":"14543:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14542:6:7"},"scope":2786,"src":"14456:1384:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2784,"nodeType":"Block","src":"15985:2491:7","statements":[{"assignments":[2778],"declarations":[{"constant":false,"id":2778,"mutability":"mutable","name":"success","nameLocation":"16000:7:7","nodeType":"VariableDeclaration","scope":2784,"src":"15995:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2777,"name":"bool","nodeType":"ElementaryTypeName","src":"15995:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2780,"initialValue":{"hexValue":"74727565","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16010:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"15995:19:7"},{"AST":{"nodeType":"YulBlock","src":"16034:2411:7","statements":[{"nodeType":"YulVariableDeclaration","src":"16089:34:7","value":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"16108:14:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"16102:5:7"},"nodeType":"YulFunctionCall","src":"16102:21:7"},"variables":[{"name":"fslot","nodeType":"YulTypedName","src":"16093:5:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16210:76:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16233:5:7"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16248:5:7","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16266:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"16273:1:7","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16262:3:7"},"nodeType":"YulFunctionCall","src":"16262:13:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16255:6:7"},"nodeType":"YulFunctionCall","src":"16255:21:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"16244:3:7"},"nodeType":"YulFunctionCall","src":"16244:33:7"},{"kind":"number","nodeType":"YulLiteral","src":"16279:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16240:3:7"},"nodeType":"YulFunctionCall","src":"16240:41:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16229:3:7"},"nodeType":"YulFunctionCall","src":"16229:53:7"},{"kind":"number","nodeType":"YulLiteral","src":"16284:1:7","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"16225:3:7"},"nodeType":"YulFunctionCall","src":"16225:61:7"},"variables":[{"name":"slength","nodeType":"YulTypedName","src":"16214:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16299:32:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"16320:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16314:5:7"},"nodeType":"YulFunctionCall","src":"16314:17:7"},"variables":[{"name":"mlength","nodeType":"YulTypedName","src":"16303:7:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"16451:1893:7","statements":[{"body":{"nodeType":"YulBlock","src":"16750:1580:7","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"16822:332:7","statements":[{"nodeType":"YulAssignment","src":"16911:38:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16928:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"16935:5:7","type":"","value":"0x100"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"16924:3:7"},"nodeType":"YulFunctionCall","src":"16924:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"16943:5:7","type":"","value":"0x100"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"16920:3:7"},"nodeType":"YulFunctionCall","src":"16920:29:7"},"variableNames":[{"name":"fslot","nodeType":"YulIdentifier","src":"16911:5:7"}]},{"body":{"nodeType":"YulBlock","src":"17026:106:7","statements":[{"nodeType":"YulAssignment","src":"17094:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"17105:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"17094:7:7"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16988:5:7"},{"arguments":[{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"17005:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"17017:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17001:3:7"},"nodeType":"YulFunctionCall","src":"17001:21:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16995:5:7"},"nodeType":"YulFunctionCall","src":"16995:28:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16985:2:7"},"nodeType":"YulFunctionCall","src":"16985:39:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16978:6:7"},"nodeType":"YulFunctionCall","src":"16978:47:7"},"nodeType":"YulIf","src":"16975:157:7"}]},"nodeType":"YulCase","src":"16815:339:7","value":{"kind":"number","nodeType":"YulLiteral","src":"16820:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"17183:1129:7","statements":[{"nodeType":"YulVariableDeclaration","src":"17436:11:7","value":{"kind":"number","nodeType":"YulLiteral","src":"17446:1:7","type":"","value":"1"},"variables":[{"name":"cb","nodeType":"YulTypedName","src":"17440:2:7","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17556:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"17561:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17549:6:7"},"nodeType":"YulFunctionCall","src":"17549:27:7"},"nodeType":"YulExpressionStatement","src":"17549:27:7"},{"nodeType":"YulVariableDeclaration","src":"17601:30:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17621:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"17626:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"17611:9:7"},"nodeType":"YulFunctionCall","src":"17611:20:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"17605:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17657:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"17671:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"17683:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17667:3:7"},"nodeType":"YulFunctionCall","src":"17667:21:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"17661:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17713:27:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"17728:2:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"17732:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17724:3:7"},"nodeType":"YulFunctionCall","src":"17724:16:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"17717:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"18040:250:7","statements":[{"body":{"nodeType":"YulBlock","src":"18106:158:7","statements":[{"nodeType":"YulAssignment","src":"18182:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18193:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"18182:7:7"}]},{"nodeType":"YulAssignment","src":"18227:7:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18233:1:7","type":"","value":"0"},"variableNames":[{"name":"cb","nodeType":"YulIdentifier","src":"18227:2:7"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"18089:2:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"18083:5:7"},"nodeType":"YulFunctionCall","src":"18083:9:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"18100:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18094:5:7"},"nodeType":"YulFunctionCall","src":"18094:9:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18080:2:7"},"nodeType":"YulFunctionCall","src":"18080:24:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18073:6:7"},"nodeType":"YulFunctionCall","src":"18073:32:7"},"nodeType":"YulIf","src":"18070:194:7"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"17901:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"17905:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17898:2:7"},"nodeType":"YulFunctionCall","src":"17898:11:7"},{"name":"cb","nodeType":"YulIdentifier","src":"17911:2:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17894:3:7"},"nodeType":"YulFunctionCall","src":"17894:20:7"},{"kind":"number","nodeType":"YulLiteral","src":"17916:1:7","type":"","value":"2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"17891:2:7"},"nodeType":"YulFunctionCall","src":"17891:27:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"17919:120:7","statements":[{"nodeType":"YulAssignment","src":"17949:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"17959:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"17963:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17955:3:7"},"nodeType":"YulFunctionCall","src":"17955:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"17949:2:7"}]},{"nodeType":"YulAssignment","src":"17994:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"18004:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"18008:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18000:3:7"},"nodeType":"YulFunctionCall","src":"18000:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"17994:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"17888:2:7","statements":[]},"src":"17884:406:7"}]},"nodeType":"YulCase","src":"17175:1137:7","value":"default"}],"expression":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16782:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"16791:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16779:2:7"},"nodeType":"YulFunctionCall","src":"16779:15:7"},"nodeType":"YulSwitch","src":"16772:1540:7"}]},"condition":{"arguments":[{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16740:7:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16733:6:7"},"nodeType":"YulFunctionCall","src":"16733:15:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16726:6:7"},"nodeType":"YulFunctionCall","src":"16726:23:7"},"nodeType":"YulIf","src":"16723:1607:7"}]},"nodeType":"YulCase","src":"16444:1900:7","value":{"kind":"number","nodeType":"YulLiteral","src":"16449:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"18365:70:7","statements":[{"nodeType":"YulAssignment","src":"18409:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18420:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"18409:7:7"}]}]},"nodeType":"YulCase","src":"18357:78:7","value":"default"}],"expression":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16414:7:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"16423:7:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16411:2:7"},"nodeType":"YulFunctionCall","src":"16411:20:7"},"nodeType":"YulSwitch","src":"16404:2031:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2772,"isOffset":false,"isSlot":false,"src":"16320:10:7","valueSize":1},{"declaration":2772,"isOffset":false,"isSlot":false,"src":"17005:10:7","valueSize":1},{"declaration":2772,"isOffset":false,"isSlot":false,"src":"17671:10:7","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":true,"src":"16108:14:7","suffix":"slot","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":true,"src":"17561:14:7","suffix":"slot","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"17094:7:7","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"18182:7:7","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"18409:7:7","valueSize":1}],"id":2781,"nodeType":"InlineAssembly","src":"16025:2420:7"},{"expression":{"id":2782,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2778,"src":"18462:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2776,"id":2783,"nodeType":"Return","src":"18455:14:7"}]},"id":2785,"implemented":true,"kind":"function","modifiers":[],"name":"equalStorage","nameLocation":"15855:12:7","nodeType":"FunctionDefinition","parameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2770,"mutability":"mutable","name":"_preBytes","nameLocation":"15891:9:7","nodeType":"VariableDeclaration","scope":2785,"src":"15877:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2769,"name":"bytes","nodeType":"ElementaryTypeName","src":"15877:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2772,"mutability":"mutable","name":"_postBytes","nameLocation":"15923:10:7","nodeType":"VariableDeclaration","scope":2785,"src":"15910:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2771,"name":"bytes","nodeType":"ElementaryTypeName","src":"15910:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15867:72:7"},"returnParameters":{"id":2776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2785,"src":"15975:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2774,"name":"bool","nodeType":"ElementaryTypeName","src":"15975:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15974:6:7"},"scope":2786,"src":"15846:2630:7","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2787,"src":"370:18108:7","usedErrors":[]}],"src":"336:18143:7"},"id":7},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol","exportedSymbols":{"ExcessivelySafeCall":[2883]},"id":2884,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2788,"literals":["solidity",">=","0.7",".6"],"nodeType":"PragmaDirective","src":"46:24:8"},{"abstract":false,"baseContracts":[],"canonicalName":"ExcessivelySafeCall","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2883,"linearizedBaseContracts":[2883],"name":"ExcessivelySafeCall","nameLocation":"80:19:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2791,"mutability":"constant","name":"LOW_28_MASK","nameLocation":"123:11:8","nodeType":"VariableDeclaration","scope":2883,"src":"106:101:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2789,"name":"uint256","nodeType":"ElementaryTypeName","src":"106:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830303030303030306666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":2790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"141:66:8","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1","typeString":"int_const 2695...(60 digits omitted)...9215"},"value":"0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"body":{"id":2825,"nodeType":"Block","src":"1295:1063:8","statements":[{"assignments":[2808],"declarations":[{"constant":false,"id":2808,"mutability":"mutable","name":"_toCopy","nameLocation":"1349:7:8","nodeType":"VariableDeclaration","scope":2825,"src":"1341:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2809,"nodeType":"VariableDeclarationStatement","src":"1341:15:8"},{"assignments":[2811],"declarations":[{"constant":false,"id":2811,"mutability":"mutable","name":"_success","nameLocation":"1371:8:8","nodeType":"VariableDeclaration","scope":2825,"src":"1366:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2810,"name":"bool","nodeType":"ElementaryTypeName","src":"1366:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2812,"nodeType":"VariableDeclarationStatement","src":"1366:13:8"},{"assignments":[2814],"declarations":[{"constant":false,"id":2814,"mutability":"mutable","name":"_returnData","nameLocation":"1402:11:8","nodeType":"VariableDeclaration","scope":2825,"src":"1389:24:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2813,"name":"bytes","nodeType":"ElementaryTypeName","src":"1389:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2819,"initialValue":{"arguments":[{"id":2817,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"1426:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":2816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1416:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2815,"name":"bytes","nodeType":"ElementaryTypeName","src":"1420:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1416:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1389:46:8"},{"AST":{"nodeType":"YulBlock","src":"1664:648:8","statements":[{"nodeType":"YulAssignment","src":"1678:251:8","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"1708:4:8"},{"name":"_target","nodeType":"YulIdentifier","src":"1733:7:8"},{"kind":"number","nodeType":"YulLiteral","src":"1767:1:8","type":"","value":"0"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1801:9:8"},{"kind":"number","nodeType":"YulLiteral","src":"1812:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1797:3:8"},"nodeType":"YulFunctionCall","src":"1797:20:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1846:9:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1840:5:8"},"nodeType":"YulFunctionCall","src":"1840:16:8"},{"kind":"number","nodeType":"YulLiteral","src":"1879:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1904:1:8","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1690:4:8"},"nodeType":"YulFunctionCall","src":"1690:239:8"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"1678:8:8"}]},{"nodeType":"YulAssignment","src":"1981:27:8","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1992:14:8"},"nodeType":"YulFunctionCall","src":"1992:16:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"1981:7:8"}]},{"body":{"nodeType":"YulBlock","src":"2046:51:8","statements":[{"nodeType":"YulAssignment","src":"2064:19:8","value":{"name":"_maxCopy","nodeType":"YulIdentifier","src":"2075:8:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"2064:7:8"}]}]},"condition":{"arguments":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"2027:7:8"},{"name":"_maxCopy","nodeType":"YulIdentifier","src":"2036:8:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2024:2:8"},"nodeType":"YulFunctionCall","src":"2024:21:8"},"nodeType":"YulIf","src":"2021:76:8"},{"expression":{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"2165:11:8"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"2178:7:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2158:6:8"},"nodeType":"YulFunctionCall","src":"2158:28:8"},"nodeType":"YulExpressionStatement","src":"2158:28:8"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"2271:11:8"},{"kind":"number","nodeType":"YulLiteral","src":"2284:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2267:3:8"},"nodeType":"YulFunctionCall","src":"2267:22:8"},{"kind":"number","nodeType":"YulLiteral","src":"2291:1:8","type":"","value":"0"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"2294:7:8"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2252:14:8"},"nodeType":"YulFunctionCall","src":"2252:50:8"},"nodeType":"YulExpressionStatement","src":"2252:50:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2800,"isOffset":false,"isSlot":false,"src":"1801:9:8","valueSize":1},{"declaration":2800,"isOffset":false,"isSlot":false,"src":"1846:9:8","valueSize":1},{"declaration":2796,"isOffset":false,"isSlot":false,"src":"1708:4:8","valueSize":1},{"declaration":2798,"isOffset":false,"isSlot":false,"src":"2036:8:8","valueSize":1},{"declaration":2798,"isOffset":false,"isSlot":false,"src":"2075:8:8","valueSize":1},{"declaration":2814,"isOffset":false,"isSlot":false,"src":"2165:11:8","valueSize":1},{"declaration":2814,"isOffset":false,"isSlot":false,"src":"2271:11:8","valueSize":1},{"declaration":2811,"isOffset":false,"isSlot":false,"src":"1678:8:8","valueSize":1},{"declaration":2794,"isOffset":false,"isSlot":false,"src":"1733:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"1981:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2027:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2064:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2178:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2294:7:8","valueSize":1}],"id":2820,"nodeType":"InlineAssembly","src":"1655:657:8"},{"expression":{"components":[{"id":2821,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"2329:8:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2822,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"2339:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2823,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2328:23:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":2806,"id":2824,"nodeType":"Return","src":"2321:30:8"}]},"documentation":{"id":2792,"nodeType":"StructuredDocumentation","src":"214:899:8","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":2826,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeCall","nameLocation":"1127:19:8","nodeType":"FunctionDefinition","parameters":{"id":2801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2794,"mutability":"mutable","name":"_target","nameLocation":"1164:7:8","nodeType":"VariableDeclaration","scope":2826,"src":"1156:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2793,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2796,"mutability":"mutable","name":"_gas","nameLocation":"1189:4:8","nodeType":"VariableDeclaration","scope":2826,"src":"1181:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2795,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2798,"mutability":"mutable","name":"_maxCopy","nameLocation":"1210:8:8","nodeType":"VariableDeclaration","scope":2826,"src":"1203:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2797,"name":"uint16","nodeType":"ElementaryTypeName","src":"1203:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2800,"mutability":"mutable","name":"_calldata","nameLocation":"1241:9:8","nodeType":"VariableDeclaration","scope":2826,"src":"1228:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2799,"name":"bytes","nodeType":"ElementaryTypeName","src":"1228:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1146:110:8"},"returnParameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2826,"src":"1275:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2802,"name":"bool","nodeType":"ElementaryTypeName","src":"1275:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2826,"src":"1281:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2804,"name":"bytes","nodeType":"ElementaryTypeName","src":"1281:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1274:20:8"},"scope":2883,"src":"1118:1240:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2860,"nodeType":"Block","src":"3456:1039:8","statements":[{"assignments":[2843],"declarations":[{"constant":false,"id":2843,"mutability":"mutable","name":"_toCopy","nameLocation":"3510:7:8","nodeType":"VariableDeclaration","scope":2860,"src":"3502:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2842,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2844,"nodeType":"VariableDeclarationStatement","src":"3502:15:8"},{"assignments":[2846],"declarations":[{"constant":false,"id":2846,"mutability":"mutable","name":"_success","nameLocation":"3532:8:8","nodeType":"VariableDeclaration","scope":2860,"src":"3527:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2845,"name":"bool","nodeType":"ElementaryTypeName","src":"3527:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2847,"nodeType":"VariableDeclarationStatement","src":"3527:13:8"},{"assignments":[2849],"declarations":[{"constant":false,"id":2849,"mutability":"mutable","name":"_returnData","nameLocation":"3563:11:8","nodeType":"VariableDeclaration","scope":2860,"src":"3550:24:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2848,"name":"bytes","nodeType":"ElementaryTypeName","src":"3550:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2854,"initialValue":{"arguments":[{"id":2852,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"3587:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":2851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3577:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2850,"name":"bytes","nodeType":"ElementaryTypeName","src":"3581:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3577:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3550:46:8"},{"AST":{"nodeType":"YulBlock","src":"3825:624:8","statements":[{"nodeType":"YulAssignment","src":"3839:227:8","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"3875:4:8"},{"name":"_target","nodeType":"YulIdentifier","src":"3900:7:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"3938:9:8"},{"kind":"number","nodeType":"YulLiteral","src":"3949:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3934:3:8"},"nodeType":"YulFunctionCall","src":"3934:20:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"3983:9:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3977:5:8"},"nodeType":"YulFunctionCall","src":"3977:16:8"},{"kind":"number","nodeType":"YulLiteral","src":"4016:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4041:1:8","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"3851:10:8"},"nodeType":"YulFunctionCall","src":"3851:215:8"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"3839:8:8"}]},{"nodeType":"YulAssignment","src":"4118:27:8","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4129:14:8"},"nodeType":"YulFunctionCall","src":"4129:16:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4118:7:8"}]},{"body":{"nodeType":"YulBlock","src":"4183:51:8","statements":[{"nodeType":"YulAssignment","src":"4201:19:8","value":{"name":"_maxCopy","nodeType":"YulIdentifier","src":"4212:8:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4201:7:8"}]}]},"condition":{"arguments":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4164:7:8"},{"name":"_maxCopy","nodeType":"YulIdentifier","src":"4173:8:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4161:2:8"},"nodeType":"YulFunctionCall","src":"4161:21:8"},"nodeType":"YulIf","src":"4158:76:8"},{"expression":{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"4302:11:8"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"4315:7:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4295:6:8"},"nodeType":"YulFunctionCall","src":"4295:28:8"},"nodeType":"YulExpressionStatement","src":"4295:28:8"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"4408:11:8"},{"kind":"number","nodeType":"YulLiteral","src":"4421:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4404:3:8"},"nodeType":"YulFunctionCall","src":"4404:22:8"},{"kind":"number","nodeType":"YulLiteral","src":"4428:1:8","type":"","value":"0"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"4431:7:8"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"4389:14:8"},"nodeType":"YulFunctionCall","src":"4389:50:8"},"nodeType":"YulExpressionStatement","src":"4389:50:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2835,"isOffset":false,"isSlot":false,"src":"3938:9:8","valueSize":1},{"declaration":2835,"isOffset":false,"isSlot":false,"src":"3983:9:8","valueSize":1},{"declaration":2831,"isOffset":false,"isSlot":false,"src":"3875:4:8","valueSize":1},{"declaration":2833,"isOffset":false,"isSlot":false,"src":"4173:8:8","valueSize":1},{"declaration":2833,"isOffset":false,"isSlot":false,"src":"4212:8:8","valueSize":1},{"declaration":2849,"isOffset":false,"isSlot":false,"src":"4302:11:8","valueSize":1},{"declaration":2849,"isOffset":false,"isSlot":false,"src":"4408:11:8","valueSize":1},{"declaration":2846,"isOffset":false,"isSlot":false,"src":"3839:8:8","valueSize":1},{"declaration":2829,"isOffset":false,"isSlot":false,"src":"3900:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4118:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4164:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4201:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4315:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4431:7:8","valueSize":1}],"id":2855,"nodeType":"InlineAssembly","src":"3816:633:8"},{"expression":{"components":[{"id":2856,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"4466:8:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2857,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2849,"src":"4476:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2858,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4465:23:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":2841,"id":2859,"nodeType":"Return","src":"4458:30:8"}]},"documentation":{"id":2827,"nodeType":"StructuredDocumentation","src":"2364:899:8","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":2861,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeStaticCall","nameLocation":"3277:25:8","nodeType":"FunctionDefinition","parameters":{"id":2836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2829,"mutability":"mutable","name":"_target","nameLocation":"3320:7:8","nodeType":"VariableDeclaration","scope":2861,"src":"3312:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2828,"name":"address","nodeType":"ElementaryTypeName","src":"3312:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2831,"mutability":"mutable","name":"_gas","nameLocation":"3345:4:8","nodeType":"VariableDeclaration","scope":2861,"src":"3337:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2830,"name":"uint256","nodeType":"ElementaryTypeName","src":"3337:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2833,"mutability":"mutable","name":"_maxCopy","nameLocation":"3366:8:8","nodeType":"VariableDeclaration","scope":2861,"src":"3359:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2832,"name":"uint16","nodeType":"ElementaryTypeName","src":"3359:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2835,"mutability":"mutable","name":"_calldata","nameLocation":"3397:9:8","nodeType":"VariableDeclaration","scope":2861,"src":"3384:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2834,"name":"bytes","nodeType":"ElementaryTypeName","src":"3384:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3302:110:8"},"returnParameters":{"id":2841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2861,"src":"3436:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2837,"name":"bool","nodeType":"ElementaryTypeName","src":"3436:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2861,"src":"3442:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2839,"name":"bytes","nodeType":"ElementaryTypeName","src":"3442:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3435:20:8"},"scope":2883,"src":"3268:1227:8","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2881,"nodeType":"Block","src":"5036:367:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2870,"name":"_buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2866,"src":"5054:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5054:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":2872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5069:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"5054:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2869,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5046:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5046:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2875,"nodeType":"ExpressionStatement","src":"5046:25:8"},{"assignments":[2877],"declarations":[{"constant":false,"id":2877,"mutability":"mutable","name":"_mask","nameLocation":"5089:5:8","nodeType":"VariableDeclaration","scope":2881,"src":"5081:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2876,"name":"uint256","nodeType":"ElementaryTypeName","src":"5081:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2879,"initialValue":{"id":2878,"name":"LOW_28_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2791,"src":"5097:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5081:27:8"},{"AST":{"nodeType":"YulBlock","src":"5127:270:8","statements":[{"nodeType":"YulVariableDeclaration","src":"5175:35:8","value":{"arguments":[{"arguments":[{"name":"_buf","nodeType":"YulIdentifier","src":"5198:4:8"},{"kind":"number","nodeType":"YulLiteral","src":"5204:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5194:3:8"},"nodeType":"YulFunctionCall","src":"5194:15:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5188:5:8"},"nodeType":"YulFunctionCall","src":"5188:22:8"},"variables":[{"name":"_word","nodeType":"YulTypedName","src":"5179:5:8","type":""}]},{"nodeType":"YulAssignment","src":"5273:26:8","value":{"arguments":[{"name":"_word","nodeType":"YulIdentifier","src":"5286:5:8"},{"name":"_mask","nodeType":"YulIdentifier","src":"5293:5:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5282:3:8"},"nodeType":"YulFunctionCall","src":"5282:17:8"},"variableNames":[{"name":"_word","nodeType":"YulIdentifier","src":"5273:5:8"}]},{"nodeType":"YulAssignment","src":"5312:32:8","value":{"arguments":[{"name":"_newSelector","nodeType":"YulIdentifier","src":"5324:12:8"},{"name":"_word","nodeType":"YulIdentifier","src":"5338:5:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5321:2:8"},"nodeType":"YulFunctionCall","src":"5321:23:8"},"variableNames":[{"name":"_word","nodeType":"YulIdentifier","src":"5312:5:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"_buf","nodeType":"YulIdentifier","src":"5368:4:8"},{"kind":"number","nodeType":"YulLiteral","src":"5374:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5364:3:8"},"nodeType":"YulFunctionCall","src":"5364:15:8"},{"name":"_word","nodeType":"YulIdentifier","src":"5381:5:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5357:6:8"},"nodeType":"YulFunctionCall","src":"5357:30:8"},"nodeType":"YulExpressionStatement","src":"5357:30:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2866,"isOffset":false,"isSlot":false,"src":"5198:4:8","valueSize":1},{"declaration":2866,"isOffset":false,"isSlot":false,"src":"5368:4:8","valueSize":1},{"declaration":2877,"isOffset":false,"isSlot":false,"src":"5293:5:8","valueSize":1},{"declaration":2864,"isOffset":false,"isSlot":false,"src":"5324:12:8","valueSize":1}],"id":2880,"nodeType":"InlineAssembly","src":"5118:279:8"}]},"documentation":{"id":2862,"nodeType":"StructuredDocumentation","src":"4501:442:8","text":" @notice Swaps function selectors in encoded contract calls\n @dev Allows reuse of encoded calldata for functions with identical\n argument types but different names. It simply swaps out the first 4 bytes\n for the new selector. This function modifies memory in place, and should\n only be used with caution.\n @param _newSelector The new 4-byte selector\n @param _buf The encoded contract args"},"id":2882,"implemented":true,"kind":"function","modifiers":[],"name":"swapSelector","nameLocation":"4957:12:8","nodeType":"FunctionDefinition","parameters":{"id":2867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2864,"mutability":"mutable","name":"_newSelector","nameLocation":"4977:12:8","nodeType":"VariableDeclaration","scope":2882,"src":"4970:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2863,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4970:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":2866,"mutability":"mutable","name":"_buf","nameLocation":"5004:4:8","nodeType":"VariableDeclaration","scope":2882,"src":"4991:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2865,"name":"bytes","nodeType":"ElementaryTypeName","src":"4991:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4969:40:8"},"returnParameters":{"id":2868,"nodeType":"ParameterList","parameters":[],"src":"5036:0:8"},"scope":2883,"src":"4948:455:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2884,"src":"72:5333:8","usedErrors":[]}],"src":"46:5360:8"},"id":8},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[3708],"Ownable":[2996]},"id":2997,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2885,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:9"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":2886,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2997,"sourceUnit":3709,"src":"127:30:9","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2888,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":3708,"src":"683:7:9"},"id":2889,"nodeType":"InheritanceSpecifier","src":"683:7:9"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2887,"nodeType":"StructuredDocumentation","src":"159:494:9","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":2996,"linearizedBaseContracts":[2996,3708],"name":"Ownable","nameLocation":"672:7:9","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":2891,"mutability":"mutable","name":"_owner","nameLocation":"713:6:9","nodeType":"VariableDeclaration","scope":2996,"src":"697:22:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2890,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"id":2897,"name":"OwnershipTransferred","nameLocation":"732:20:9","nodeType":"EventDefinition","parameters":{"id":2896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2893,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:9","nodeType":"VariableDeclaration","scope":2897,"src":"753:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2892,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2895,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:9","nodeType":"VariableDeclaration","scope":2897,"src":"784:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2894,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:9"},"src":"726:84:9"},{"body":{"id":2906,"nodeType":"Block","src":"926:49:9","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2902,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"955:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2901,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"936:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2905,"nodeType":"ExpressionStatement","src":"936:32:9"}]},"documentation":{"id":2898,"nodeType":"StructuredDocumentation","src":"816:91:9","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":2907,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2899,"nodeType":"ParameterList","parameters":[],"src":"923:2:9"},"returnParameters":{"id":2900,"nodeType":"ParameterList","parameters":[],"src":"926:0:9"},"scope":2996,"src":"912:63:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2914,"nodeType":"Block","src":"1084:41:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2910,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2938,"src":"1094:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":2911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2912,"nodeType":"ExpressionStatement","src":"1094:13:9"},{"id":2913,"nodeType":"PlaceholderStatement","src":"1117:1:9"}]},"documentation":{"id":2908,"nodeType":"StructuredDocumentation","src":"981:77:9","text":" @dev Throws if called by any account other than the owner."},"id":2915,"name":"onlyOwner","nameLocation":"1072:9:9","nodeType":"ModifierDefinition","parameters":{"id":2909,"nodeType":"ParameterList","parameters":[],"src":"1081:2:9"},"src":"1063:62:9","virtual":false,"visibility":"internal"},{"body":{"id":2923,"nodeType":"Block","src":"1256:30:9","statements":[{"expression":{"id":2921,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"1273:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2920,"id":2922,"nodeType":"Return","src":"1266:13:9"}]},"documentation":{"id":2916,"nodeType":"StructuredDocumentation","src":"1131:65:9","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":2924,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:9","nodeType":"FunctionDefinition","parameters":{"id":2917,"nodeType":"ParameterList","parameters":[],"src":"1215:2:9"},"returnParameters":{"id":2920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2924,"src":"1247:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2918,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:9"},"scope":2996,"src":"1201:85:9","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2937,"nodeType":"Block","src":"1404:85:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2929,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"1422:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2931,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1433:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":2934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":2928,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2936,"nodeType":"ExpressionStatement","src":"1414:68:9"}]},"documentation":{"id":2925,"nodeType":"StructuredDocumentation","src":"1292:62:9","text":" @dev Throws if the sender is not the owner."},"id":2938,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:9","nodeType":"FunctionDefinition","parameters":{"id":2926,"nodeType":"ParameterList","parameters":[],"src":"1379:2:9"},"returnParameters":{"id":2927,"nodeType":"ParameterList","parameters":[],"src":"1404:0:9"},"scope":2996,"src":"1359:130:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2951,"nodeType":"Block","src":"1885:47:9","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":2947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2945,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:9","typeDescriptions":{}}},"id":2948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2944,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"1895:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2950,"nodeType":"ExpressionStatement","src":"1895:30:9"}]},"documentation":{"id":2939,"nodeType":"StructuredDocumentation","src":"1495:331:9","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":2952,"implemented":true,"kind":"function","modifiers":[{"id":2942,"kind":"modifierInvocation","modifierName":{"id":2941,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"1875:9:9"},"nodeType":"ModifierInvocation","src":"1875:9:9"}],"name":"renounceOwnership","nameLocation":"1840:17:9","nodeType":"FunctionDefinition","parameters":{"id":2940,"nodeType":"ParameterList","parameters":[],"src":"1857:2:9"},"returnParameters":{"id":2943,"nodeType":"ParameterList","parameters":[],"src":"1885:0:9"},"scope":2996,"src":"1831:101:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2974,"nodeType":"Block","src":"2151:128:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2961,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2169:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2962,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:9","typeDescriptions":{}}},"id":2965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":2967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":2960,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2969,"nodeType":"ExpressionStatement","src":"2161:73:9"},{"expression":{"arguments":[{"id":2971,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2263:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2970,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"2244:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2973,"nodeType":"ExpressionStatement","src":"2244:28:9"}]},"documentation":{"id":2953,"nodeType":"StructuredDocumentation","src":"1938:138:9","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":2975,"implemented":true,"kind":"function","modifiers":[{"id":2958,"kind":"modifierInvocation","modifierName":{"id":2957,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"2141:9:9"},"nodeType":"ModifierInvocation","src":"2141:9:9"}],"name":"transferOwnership","nameLocation":"2090:17:9","nodeType":"FunctionDefinition","parameters":{"id":2956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2955,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:9","nodeType":"VariableDeclaration","scope":2975,"src":"2108:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2954,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:9"},"returnParameters":{"id":2959,"nodeType":"ParameterList","parameters":[],"src":"2151:0:9"},"scope":2996,"src":"2081:198:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2994,"nodeType":"Block","src":"2496:124:9","statements":[{"assignments":[2982],"declarations":[{"constant":false,"id":2982,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:9","nodeType":"VariableDeclaration","scope":2994,"src":"2506:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2981,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2984,"initialValue":{"id":2983,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"2525:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:9"},{"expression":{"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2985,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"2541:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2986,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"2550:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2988,"nodeType":"ExpressionStatement","src":"2541:17:9"},{"eventCall":{"arguments":[{"id":2990,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2982,"src":"2594:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2991,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"2604:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2989,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2897,"src":"2573:20:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2993,"nodeType":"EmitStatement","src":"2568:45:9"}]},"documentation":{"id":2976,"nodeType":"StructuredDocumentation","src":"2285:143:9","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":2995,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:9","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2978,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:9","nodeType":"VariableDeclaration","scope":2995,"src":"2461:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2977,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:9"},"returnParameters":{"id":2980,"nodeType":"ParameterList","parameters":[],"src":"2496:0:9"},"scope":2996,"src":"2433:187:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2997,"src":"654:1968:9","usedErrors":[]}],"src":"102:2521:9"},"id":9},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"IERC20":[3661],"IERC20Metadata":[3686]},"id":3584,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2998,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:10"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":2999,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3662,"src":"130:22:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":3000,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3687,"src":"153:41:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":3001,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3709,"src":"195:33:10","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3003,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":3708,"src":"1419:7:10"},"id":3004,"nodeType":"InheritanceSpecifier","src":"1419:7:10"},{"baseName":{"id":3005,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":3661,"src":"1428:6:10"},"id":3006,"nodeType":"InheritanceSpecifier","src":"1428:6:10"},{"baseName":{"id":3007,"name":"IERC20Metadata","nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"1436:14:10"},"id":3008,"nodeType":"InheritanceSpecifier","src":"1436:14:10"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":3002,"nodeType":"StructuredDocumentation","src":"230:1170:10","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":3583,"linearizedBaseContracts":[3583,3686,3661,3708],"name":"ERC20","nameLocation":"1410:5:10","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3012,"mutability":"mutable","name":"_balances","nameLocation":"1493:9:10","nodeType":"VariableDeclaration","scope":3583,"src":"1457:45:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3011,"keyType":{"id":3009,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1457:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3010,"name":"uint256","nodeType":"ElementaryTypeName","src":"1476:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":3018,"mutability":"mutable","name":"_allowances","nameLocation":"1565:11:10","nodeType":"VariableDeclaration","scope":3583,"src":"1509:67:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":3017,"keyType":{"id":3013,"name":"address","nodeType":"ElementaryTypeName","src":"1517:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1509:47:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":3016,"keyType":{"id":3014,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1528:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":3020,"mutability":"mutable","name":"_totalSupply","nameLocation":"1599:12:10","nodeType":"VariableDeclaration","scope":3583,"src":"1583:28:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1583:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3022,"mutability":"mutable","name":"_name","nameLocation":"1633:5:10","nodeType":"VariableDeclaration","scope":3583,"src":"1618:20:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3021,"name":"string","nodeType":"ElementaryTypeName","src":"1618:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":3024,"mutability":"mutable","name":"_symbol","nameLocation":"1659:7:10","nodeType":"VariableDeclaration","scope":3583,"src":"1644:22:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3023,"name":"string","nodeType":"ElementaryTypeName","src":"1644:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":3040,"nodeType":"Block","src":"2032:57:10","statements":[{"expression":{"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3032,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"2042:5:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3033,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3027,"src":"2050:5:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2042:13:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3035,"nodeType":"ExpressionStatement","src":"2042:13:10"},{"expression":{"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3036,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3024,"src":"2065:7:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3037,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2075:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2065:17:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3039,"nodeType":"ExpressionStatement","src":"2065:17:10"}]},"documentation":{"id":3025,"nodeType":"StructuredDocumentation","src":"1673:298:10","text":" @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."},"id":3041,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3027,"mutability":"mutable","name":"name_","nameLocation":"2002:5:10","nodeType":"VariableDeclaration","scope":3041,"src":"1988:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3026,"name":"string","nodeType":"ElementaryTypeName","src":"1988:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3029,"mutability":"mutable","name":"symbol_","nameLocation":"2023:7:10","nodeType":"VariableDeclaration","scope":3041,"src":"2009:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3028,"name":"string","nodeType":"ElementaryTypeName","src":"2009:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1987:44:10"},"returnParameters":{"id":3031,"nodeType":"ParameterList","parameters":[],"src":"2032:0:10"},"scope":3583,"src":"1976:113:10","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3673],"body":{"id":3050,"nodeType":"Block","src":"2223:29:10","statements":[{"expression":{"id":3048,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"2240:5:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":3047,"id":3049,"nodeType":"Return","src":"2233:12:10"}]},"documentation":{"id":3042,"nodeType":"StructuredDocumentation","src":"2095:54:10","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":3051,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2163:4:10","nodeType":"FunctionDefinition","overrides":{"id":3044,"nodeType":"OverrideSpecifier","overrides":[],"src":"2190:8:10"},"parameters":{"id":3043,"nodeType":"ParameterList","parameters":[],"src":"2167:2:10"},"returnParameters":{"id":3047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3051,"src":"2208:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3045,"name":"string","nodeType":"ElementaryTypeName","src":"2208:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2207:15:10"},"scope":3583,"src":"2154:98:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3679],"body":{"id":3060,"nodeType":"Block","src":"2436:31:10","statements":[{"expression":{"id":3058,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3024,"src":"2453:7:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":3057,"id":3059,"nodeType":"Return","src":"2446:14:10"}]},"documentation":{"id":3052,"nodeType":"StructuredDocumentation","src":"2258:102:10","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":3061,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2374:6:10","nodeType":"FunctionDefinition","overrides":{"id":3054,"nodeType":"OverrideSpecifier","overrides":[],"src":"2403:8:10"},"parameters":{"id":3053,"nodeType":"ParameterList","parameters":[],"src":"2380:2:10"},"returnParameters":{"id":3057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3061,"src":"2421:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3055,"name":"string","nodeType":"ElementaryTypeName","src":"2421:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2420:15:10"},"scope":3583,"src":"2365:102:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3685],"body":{"id":3070,"nodeType":"Block","src":"3156:26:10","statements":[{"expression":{"hexValue":"3138","id":3068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3173:2:10","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":3067,"id":3069,"nodeType":"Return","src":"3166:9:10"}]},"documentation":{"id":3062,"nodeType":"StructuredDocumentation","src":"2473:613:10","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":3071,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3100:8:10","nodeType":"FunctionDefinition","overrides":{"id":3064,"nodeType":"OverrideSpecifier","overrides":[],"src":"3131:8:10"},"parameters":{"id":3063,"nodeType":"ParameterList","parameters":[],"src":"3108:2:10"},"returnParameters":{"id":3067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3071,"src":"3149:5:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3065,"name":"uint8","nodeType":"ElementaryTypeName","src":"3149:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3148:7:10"},"scope":3583,"src":"3091:91:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3610],"body":{"id":3080,"nodeType":"Block","src":"3312:36:10","statements":[{"expression":{"id":3078,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"3329:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3077,"id":3079,"nodeType":"Return","src":"3322:19:10"}]},"documentation":{"id":3072,"nodeType":"StructuredDocumentation","src":"3188:49:10","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":3081,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3251:11:10","nodeType":"FunctionDefinition","overrides":{"id":3074,"nodeType":"OverrideSpecifier","overrides":[],"src":"3285:8:10"},"parameters":{"id":3073,"nodeType":"ParameterList","parameters":[],"src":"3262:2:10"},"returnParameters":{"id":3077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3081,"src":"3303:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3303:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3302:9:10"},"scope":3583,"src":"3242:106:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3618],"body":{"id":3094,"nodeType":"Block","src":"3489:42:10","statements":[{"expression":{"baseExpression":{"id":3090,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"3506:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3092,"indexExpression":{"id":3091,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3084,"src":"3516:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3506:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3089,"id":3093,"nodeType":"Return","src":"3499:25:10"}]},"documentation":{"id":3082,"nodeType":"StructuredDocumentation","src":"3354:47:10","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":3095,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3415:9:10","nodeType":"FunctionDefinition","overrides":{"id":3086,"nodeType":"OverrideSpecifier","overrides":[],"src":"3462:8:10"},"parameters":{"id":3085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3084,"mutability":"mutable","name":"account","nameLocation":"3433:7:10","nodeType":"VariableDeclaration","scope":3095,"src":"3425:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3083,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3424:17:10"},"returnParameters":{"id":3089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3095,"src":"3480:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3087,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3479:9:10"},"scope":3583,"src":"3406:125:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3628],"body":{"id":3119,"nodeType":"Block","src":"3812:104:10","statements":[{"assignments":[3107],"declarations":[{"constant":false,"id":3107,"mutability":"mutable","name":"owner","nameLocation":"3830:5:10","nodeType":"VariableDeclaration","scope":3119,"src":"3822:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3106,"name":"address","nodeType":"ElementaryTypeName","src":"3822:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3110,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3108,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"3838:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3838:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3822:28:10"},{"expression":{"arguments":[{"id":3112,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"3870:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3113,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"3877:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3114,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3100,"src":"3881:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3111,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"3860:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3116,"nodeType":"ExpressionStatement","src":"3860:28:10"},{"expression":{"hexValue":"74727565","id":3117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3905:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3105,"id":3118,"nodeType":"Return","src":"3898:11:10"}]},"documentation":{"id":3096,"nodeType":"StructuredDocumentation","src":"3537:185:10","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":3120,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3736:8:10","nodeType":"FunctionDefinition","overrides":{"id":3102,"nodeType":"OverrideSpecifier","overrides":[],"src":"3788:8:10"},"parameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3098,"mutability":"mutable","name":"to","nameLocation":"3753:2:10","nodeType":"VariableDeclaration","scope":3120,"src":"3745:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3097,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3100,"mutability":"mutable","name":"amount","nameLocation":"3765:6:10","nodeType":"VariableDeclaration","scope":3120,"src":"3757:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3099,"name":"uint256","nodeType":"ElementaryTypeName","src":"3757:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3744:28:10"},"returnParameters":{"id":3105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3120,"src":"3806:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3103,"name":"bool","nodeType":"ElementaryTypeName","src":"3806:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3805:6:10"},"scope":3583,"src":"3727:189:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3638],"body":{"id":3137,"nodeType":"Block","src":"4072:51:10","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":3131,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"4089:11:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3133,"indexExpression":{"id":3132,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3123,"src":"4101:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:18:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3135,"indexExpression":{"id":3134,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3125,"src":"4108:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3130,"id":3136,"nodeType":"Return","src":"4082:34:10"}]},"documentation":{"id":3121,"nodeType":"StructuredDocumentation","src":"3922:47:10","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":3138,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3983:9:10","nodeType":"FunctionDefinition","overrides":{"id":3127,"nodeType":"OverrideSpecifier","overrides":[],"src":"4045:8:10"},"parameters":{"id":3126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3123,"mutability":"mutable","name":"owner","nameLocation":"4001:5:10","nodeType":"VariableDeclaration","scope":3138,"src":"3993:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3122,"name":"address","nodeType":"ElementaryTypeName","src":"3993:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3125,"mutability":"mutable","name":"spender","nameLocation":"4016:7:10","nodeType":"VariableDeclaration","scope":3138,"src":"4008:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3124,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3992:32:10"},"returnParameters":{"id":3130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3138,"src":"4063:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3128,"name":"uint256","nodeType":"ElementaryTypeName","src":"4063:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4062:9:10"},"scope":3583,"src":"3974:149:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3648],"body":{"id":3162,"nodeType":"Block","src":"4520:108:10","statements":[{"assignments":[3150],"declarations":[{"constant":false,"id":3150,"mutability":"mutable","name":"owner","nameLocation":"4538:5:10","nodeType":"VariableDeclaration","scope":3162,"src":"4530:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3149,"name":"address","nodeType":"ElementaryTypeName","src":"4530:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3153,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3151,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"4546:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4546:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4530:28:10"},{"expression":{"arguments":[{"id":3155,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"4577:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3156,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3141,"src":"4584:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3157,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"4593:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3154,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"4568:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4568:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3159,"nodeType":"ExpressionStatement","src":"4568:32:10"},{"expression":{"hexValue":"74727565","id":3160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4617:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3148,"id":3161,"nodeType":"Return","src":"4610:11:10"}]},"documentation":{"id":3139,"nodeType":"StructuredDocumentation","src":"4129:297:10","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":3163,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4440:7:10","nodeType":"FunctionDefinition","overrides":{"id":3145,"nodeType":"OverrideSpecifier","overrides":[],"src":"4496:8:10"},"parameters":{"id":3144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3141,"mutability":"mutable","name":"spender","nameLocation":"4456:7:10","nodeType":"VariableDeclaration","scope":3163,"src":"4448:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3140,"name":"address","nodeType":"ElementaryTypeName","src":"4448:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3143,"mutability":"mutable","name":"amount","nameLocation":"4473:6:10","nodeType":"VariableDeclaration","scope":3163,"src":"4465:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3142,"name":"uint256","nodeType":"ElementaryTypeName","src":"4465:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4447:33:10"},"returnParameters":{"id":3148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3163,"src":"4514:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3146,"name":"bool","nodeType":"ElementaryTypeName","src":"4514:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4513:6:10"},"scope":3583,"src":"4431:197:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3660],"body":{"id":3195,"nodeType":"Block","src":"5323:153:10","statements":[{"assignments":[3177],"declarations":[{"constant":false,"id":3177,"mutability":"mutable","name":"spender","nameLocation":"5341:7:10","nodeType":"VariableDeclaration","scope":3195,"src":"5333:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3176,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3180,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3178,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"5351:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5351:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5333:30:10"},{"expression":{"arguments":[{"id":3182,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"5389:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3183,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"5395:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3184,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"5404:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3181,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"5373:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5373:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3186,"nodeType":"ExpressionStatement","src":"5373:38:10"},{"expression":{"arguments":[{"id":3188,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"5431:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3189,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3168,"src":"5437:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3190,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"5441:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3187,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"5421:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5421:27:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3192,"nodeType":"ExpressionStatement","src":"5421:27:10"},{"expression":{"hexValue":"74727565","id":3193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5465:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3175,"id":3194,"nodeType":"Return","src":"5458:11:10"}]},"documentation":{"id":3164,"nodeType":"StructuredDocumentation","src":"4634:551:10","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":3196,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5199:12:10","nodeType":"FunctionDefinition","overrides":{"id":3172,"nodeType":"OverrideSpecifier","overrides":[],"src":"5299:8:10"},"parameters":{"id":3171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3166,"mutability":"mutable","name":"from","nameLocation":"5229:4:10","nodeType":"VariableDeclaration","scope":3196,"src":"5221:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3165,"name":"address","nodeType":"ElementaryTypeName","src":"5221:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3168,"mutability":"mutable","name":"to","nameLocation":"5251:2:10","nodeType":"VariableDeclaration","scope":3196,"src":"5243:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3167,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3170,"mutability":"mutable","name":"amount","nameLocation":"5271:6:10","nodeType":"VariableDeclaration","scope":3196,"src":"5263:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3169,"name":"uint256","nodeType":"ElementaryTypeName","src":"5263:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5211:72:10"},"returnParameters":{"id":3175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3196,"src":"5317:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3173,"name":"bool","nodeType":"ElementaryTypeName","src":"5317:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5316:6:10"},"scope":3583,"src":"5190:286:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3224,"nodeType":"Block","src":"5965:140:10","statements":[{"assignments":[3207],"declarations":[{"constant":false,"id":3207,"mutability":"mutable","name":"owner","nameLocation":"5983:5:10","nodeType":"VariableDeclaration","scope":3224,"src":"5975:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3206,"name":"address","nodeType":"ElementaryTypeName","src":"5975:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3210,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3208,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"5991:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5991:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5975:28:10"},{"expression":{"arguments":[{"id":3212,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"6022:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3213,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"6029:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3215,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"6048:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3216,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"6055:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3214,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"6038:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6038:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3218,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3201,"src":"6066:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6038:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3211,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"6013:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6013:64:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3221,"nodeType":"ExpressionStatement","src":"6013:64:10"},{"expression":{"hexValue":"74727565","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6094:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3205,"id":3223,"nodeType":"Return","src":"6087:11:10"}]},"documentation":{"id":3197,"nodeType":"StructuredDocumentation","src":"5482:384:10","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":3225,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5880:17:10","nodeType":"FunctionDefinition","parameters":{"id":3202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3199,"mutability":"mutable","name":"spender","nameLocation":"5906:7:10","nodeType":"VariableDeclaration","scope":3225,"src":"5898:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3198,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3201,"mutability":"mutable","name":"addedValue","nameLocation":"5923:10:10","nodeType":"VariableDeclaration","scope":3225,"src":"5915:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3200,"name":"uint256","nodeType":"ElementaryTypeName","src":"5915:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5897:37:10"},"returnParameters":{"id":3205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3225,"src":"5959:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3203,"name":"bool","nodeType":"ElementaryTypeName","src":"5959:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5958:6:10"},"scope":3583,"src":"5871:234:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3265,"nodeType":"Block","src":"6691:328:10","statements":[{"assignments":[3236],"declarations":[{"constant":false,"id":3236,"mutability":"mutable","name":"owner","nameLocation":"6709:5:10","nodeType":"VariableDeclaration","scope":3265,"src":"6701:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3235,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3239,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3237,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"6717:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6717:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6701:28:10"},{"assignments":[3241],"declarations":[{"constant":false,"id":3241,"mutability":"mutable","name":"currentAllowance","nameLocation":"6747:16:10","nodeType":"VariableDeclaration","scope":3265,"src":"6739:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3240,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3246,"initialValue":{"arguments":[{"id":3243,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3236,"src":"6776:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3244,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3228,"src":"6783:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3242,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"6766:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6766:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6739:52:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3248,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"6809:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3249,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3230,"src":"6829:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6809:35:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":3251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6846:39:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":3247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6801:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6801:85:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3253,"nodeType":"ExpressionStatement","src":"6801:85:10"},{"id":3262,"nodeType":"UncheckedBlock","src":"6896:95:10","statements":[{"expression":{"arguments":[{"id":3255,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3236,"src":"6929:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3256,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3228,"src":"6936:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3257,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"6945:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3258,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3230,"src":"6964:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6945:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3254,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"6920:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6920:60:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3261,"nodeType":"ExpressionStatement","src":"6920:60:10"}]},{"expression":{"hexValue":"74727565","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7008:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3234,"id":3264,"nodeType":"Return","src":"7001:11:10"}]},"documentation":{"id":3226,"nodeType":"StructuredDocumentation","src":"6111:476:10","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":3266,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6601:17:10","nodeType":"FunctionDefinition","parameters":{"id":3231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3228,"mutability":"mutable","name":"spender","nameLocation":"6627:7:10","nodeType":"VariableDeclaration","scope":3266,"src":"6619:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3227,"name":"address","nodeType":"ElementaryTypeName","src":"6619:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3230,"mutability":"mutable","name":"subtractedValue","nameLocation":"6644:15:10","nodeType":"VariableDeclaration","scope":3266,"src":"6636:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3229,"name":"uint256","nodeType":"ElementaryTypeName","src":"6636:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6618:42:10"},"returnParameters":{"id":3234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3266,"src":"6685:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3232,"name":"bool","nodeType":"ElementaryTypeName","src":"6685:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6684:6:10"},"scope":3583,"src":"6592:427:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3342,"nodeType":"Block","src":"7581:710:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3277,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7599:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7607:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3278,"name":"address","nodeType":"ElementaryTypeName","src":"7607:7:10","typeDescriptions":{}}},"id":3281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7607:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7599:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":3283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7619:39:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":3276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7591:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7591:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3285,"nodeType":"ExpressionStatement","src":"7591:68:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3287,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"7677:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7691:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7683:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3288,"name":"address","nodeType":"ElementaryTypeName","src":"7683:7:10","typeDescriptions":{}}},"id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7683:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7677:16:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7695:37:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":3286,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7669:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7669:64:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3295,"nodeType":"ExpressionStatement","src":"7669:64:10"},{"expression":{"arguments":[{"id":3297,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7765:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3298,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"7771:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3299,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7775:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3296,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"7744:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7744:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3301,"nodeType":"ExpressionStatement","src":"7744:38:10"},{"assignments":[3303],"declarations":[{"constant":false,"id":3303,"mutability":"mutable","name":"fromBalance","nameLocation":"7801:11:10","nodeType":"VariableDeclaration","scope":3342,"src":"7793:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3302,"name":"uint256","nodeType":"ElementaryTypeName","src":"7793:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3307,"initialValue":{"baseExpression":{"id":3304,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"7815:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3306,"indexExpression":{"id":3305,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7825:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7815:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7793:37:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3309,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"7848:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3310,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7863:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7848:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":3312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7871:40:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":3308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7840:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7840:72:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3314,"nodeType":"ExpressionStatement","src":"7840:72:10"},{"id":3329,"nodeType":"UncheckedBlock","src":"7922:273:10","statements":[{"expression":{"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3315,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"7946:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3317,"indexExpression":{"id":3316,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7956:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7946:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3318,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"7964:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3319,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7978:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7964:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7946:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3322,"nodeType":"ExpressionStatement","src":"7946:38:10"},{"expression":{"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3323,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"8161:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3325,"indexExpression":{"id":3324,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8171:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8161:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3326,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8178:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8161:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3328,"nodeType":"ExpressionStatement","src":"8161:23:10"}]},{"eventCall":{"arguments":[{"id":3331,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"8219:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3332,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8225:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3333,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8229:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3330,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"8210:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8210:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3335,"nodeType":"EmitStatement","src":"8205:31:10"},{"expression":{"arguments":[{"id":3337,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"8267:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3338,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8273:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3339,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8277:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3336,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"8247:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8247:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3341,"nodeType":"ExpressionStatement","src":"8247:37:10"}]},"documentation":{"id":3267,"nodeType":"StructuredDocumentation","src":"7025:443:10","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":3343,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7482:9:10","nodeType":"FunctionDefinition","parameters":{"id":3274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3269,"mutability":"mutable","name":"from","nameLocation":"7509:4:10","nodeType":"VariableDeclaration","scope":3343,"src":"7501:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3268,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3271,"mutability":"mutable","name":"to","nameLocation":"7531:2:10","nodeType":"VariableDeclaration","scope":3343,"src":"7523:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3270,"name":"address","nodeType":"ElementaryTypeName","src":"7523:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3273,"mutability":"mutable","name":"amount","nameLocation":"7551:6:10","nodeType":"VariableDeclaration","scope":3343,"src":"7543:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3272,"name":"uint256","nodeType":"ElementaryTypeName","src":"7543:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7491:72:10"},"returnParameters":{"id":3275,"nodeType":"ParameterList","parameters":[],"src":"7581:0:10"},"scope":3583,"src":"7473:818:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3399,"nodeType":"Block","src":"8632:470:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3352,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8650:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8669:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8661:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3353,"name":"address","nodeType":"ElementaryTypeName","src":"8661:7:10","typeDescriptions":{}}},"id":3356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8661:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8650:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":3358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8673:33:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":3351,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8642:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8642:65:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3360,"nodeType":"ExpressionStatement","src":"8642:65:10"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8747:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8739:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3362,"name":"address","nodeType":"ElementaryTypeName","src":"8739:7:10","typeDescriptions":{}}},"id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8739:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3366,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8751:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3367,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8760:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3361,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"8718:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8718:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3369,"nodeType":"ExpressionStatement","src":"8718:49:10"},{"expression":{"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3370,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"8778:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3371,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8794:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8778:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3373,"nodeType":"ExpressionStatement","src":"8778:22:10"},{"id":3380,"nodeType":"UncheckedBlock","src":"8810:175:10","statements":[{"expression":{"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3374,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"8946:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3376,"indexExpression":{"id":3375,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8956:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8946:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3377,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8968:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8946:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3379,"nodeType":"ExpressionStatement","src":"8946:28:10"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9016:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9008:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3382,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:10","typeDescriptions":{}}},"id":3385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9008:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3386,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"9020:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3387,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"9029:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3381,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"8999:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8999:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3389,"nodeType":"EmitStatement","src":"8994:42:10"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9075:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9067:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3391,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:10","typeDescriptions":{}}},"id":3394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9067:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3395,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"9079:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"9088:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3390,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"9047:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9047:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3398,"nodeType":"ExpressionStatement","src":"9047:48:10"}]},"documentation":{"id":3344,"nodeType":"StructuredDocumentation","src":"8297:265:10","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":3400,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8576:5:10","nodeType":"FunctionDefinition","parameters":{"id":3349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3346,"mutability":"mutable","name":"account","nameLocation":"8590:7:10","nodeType":"VariableDeclaration","scope":3400,"src":"8582:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3345,"name":"address","nodeType":"ElementaryTypeName","src":"8582:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3348,"mutability":"mutable","name":"amount","nameLocation":"8607:6:10","nodeType":"VariableDeclaration","scope":3400,"src":"8599:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3347,"name":"uint256","nodeType":"ElementaryTypeName","src":"8599:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8581:33:10"},"returnParameters":{"id":3350,"nodeType":"ParameterList","parameters":[],"src":"8632:0:10"},"scope":3583,"src":"8567:535:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3471,"nodeType":"Block","src":"9487:594:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3409,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9505:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9524:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3410,"name":"address","nodeType":"ElementaryTypeName","src":"9516:7:10","typeDescriptions":{}}},"id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9516:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9505:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":3415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9528:35:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":3408,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9497:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9497:67:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3417,"nodeType":"ExpressionStatement","src":"9497:67:10"},{"expression":{"arguments":[{"id":3419,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9596:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9613:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9605:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3420,"name":"address","nodeType":"ElementaryTypeName","src":"9605:7:10","typeDescriptions":{}}},"id":3423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9605:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3424,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9617:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3418,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"9575:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9575:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3426,"nodeType":"ExpressionStatement","src":"9575:49:10"},{"assignments":[3428],"declarations":[{"constant":false,"id":3428,"mutability":"mutable","name":"accountBalance","nameLocation":"9643:14:10","nodeType":"VariableDeclaration","scope":3471,"src":"9635:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3427,"name":"uint256","nodeType":"ElementaryTypeName","src":"9635:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3432,"initialValue":{"baseExpression":{"id":3429,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"9660:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3431,"indexExpression":{"id":3430,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9670:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9660:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9635:43:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3434,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"9696:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3435,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9714:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9696:24:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":3437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9722:36:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":3433,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9688:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9688:71:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3439,"nodeType":"ExpressionStatement","src":"9688:71:10"},{"id":3452,"nodeType":"UncheckedBlock","src":"9769:194:10","statements":[{"expression":{"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3440,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"9793:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3442,"indexExpression":{"id":3441,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9803:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9793:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3443,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"9814:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3444,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9831:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9814:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9793:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3447,"nodeType":"ExpressionStatement","src":"9793:44:10"},{"expression":{"id":3450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3448,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"9930:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":3449,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9946:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9930:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3451,"nodeType":"ExpressionStatement","src":"9930:22:10"}]},{"eventCall":{"arguments":[{"id":3454,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9987:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10004:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9996:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3455,"name":"address","nodeType":"ElementaryTypeName","src":"9996:7:10","typeDescriptions":{}}},"id":3458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9996:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3459,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"10008:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3453,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"9978:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9978:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3461,"nodeType":"EmitStatement","src":"9973:42:10"},{"expression":{"arguments":[{"id":3463,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"10046:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10063:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10055:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3464,"name":"address","nodeType":"ElementaryTypeName","src":"10055:7:10","typeDescriptions":{}}},"id":3467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10055:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3468,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"10067:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3462,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"10026:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10026:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3470,"nodeType":"ExpressionStatement","src":"10026:48:10"}]},"documentation":{"id":3401,"nodeType":"StructuredDocumentation","src":"9108:309:10","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":3472,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9431:5:10","nodeType":"FunctionDefinition","parameters":{"id":3406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3403,"mutability":"mutable","name":"account","nameLocation":"9445:7:10","nodeType":"VariableDeclaration","scope":3472,"src":"9437:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3402,"name":"address","nodeType":"ElementaryTypeName","src":"9437:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3405,"mutability":"mutable","name":"amount","nameLocation":"9462:6:10","nodeType":"VariableDeclaration","scope":3472,"src":"9454:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3404,"name":"uint256","nodeType":"ElementaryTypeName","src":"9454:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9436:33:10"},"returnParameters":{"id":3407,"nodeType":"ParameterList","parameters":[],"src":"9487:0:10"},"scope":3583,"src":"9422:659:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3516,"nodeType":"Block","src":"10617:257:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3483,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10635:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10652:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10644:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3484,"name":"address","nodeType":"ElementaryTypeName","src":"10644:7:10","typeDescriptions":{}}},"id":3487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10644:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10635:19:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":3489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10656:38:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":3482,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10627:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10627:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3491,"nodeType":"ExpressionStatement","src":"10627:68:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3493,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10713:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10732:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10724:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3494,"name":"address","nodeType":"ElementaryTypeName","src":"10724:7:10","typeDescriptions":{}}},"id":3497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10724:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10713:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10736:36:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":3492,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10705:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10705:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3501,"nodeType":"ExpressionStatement","src":"10705:68:10"},{"expression":{"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":3502,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"10784:11:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3505,"indexExpression":{"id":3503,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10796:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10784:18:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3506,"indexExpression":{"id":3504,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10803:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10784:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3507,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"10814:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10784:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3509,"nodeType":"ExpressionStatement","src":"10784:36:10"},{"eventCall":{"arguments":[{"id":3511,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10844:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3512,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10851:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3513,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"10860:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3510,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"10835:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10835:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3515,"nodeType":"EmitStatement","src":"10830:37:10"}]},"documentation":{"id":3473,"nodeType":"StructuredDocumentation","src":"10087:412:10","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":3517,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10513:8:10","nodeType":"FunctionDefinition","parameters":{"id":3480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3475,"mutability":"mutable","name":"owner","nameLocation":"10539:5:10","nodeType":"VariableDeclaration","scope":3517,"src":"10531:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3474,"name":"address","nodeType":"ElementaryTypeName","src":"10531:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3477,"mutability":"mutable","name":"spender","nameLocation":"10562:7:10","nodeType":"VariableDeclaration","scope":3517,"src":"10554:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3476,"name":"address","nodeType":"ElementaryTypeName","src":"10554:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3479,"mutability":"mutable","name":"amount","nameLocation":"10587:6:10","nodeType":"VariableDeclaration","scope":3517,"src":"10579:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3478,"name":"uint256","nodeType":"ElementaryTypeName","src":"10579:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10521:78:10"},"returnParameters":{"id":3481,"nodeType":"ParameterList","parameters":[],"src":"10617:0:10"},"scope":3583,"src":"10504:370:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3559,"nodeType":"Block","src":"11275:321:10","statements":[{"assignments":[3528],"declarations":[{"constant":false,"id":3528,"mutability":"mutable","name":"currentAllowance","nameLocation":"11293:16:10","nodeType":"VariableDeclaration","scope":3559,"src":"11285:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3527,"name":"uint256","nodeType":"ElementaryTypeName","src":"11285:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3533,"initialValue":{"arguments":[{"id":3530,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3520,"src":"11322:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3531,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"11329:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3529,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"11312:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11312:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11285:52:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3534,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11351:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":3537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11376:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3536,"name":"uint256","nodeType":"ElementaryTypeName","src":"11376:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":3535,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11371:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11371:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":3539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"11371:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11351:37:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3558,"nodeType":"IfStatement","src":"11347:243:10","trueBody":{"id":3557,"nodeType":"Block","src":"11390:200:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3542,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11412:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3543,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"11432:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11412:26:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":3545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11440:31:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":3541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11404:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11404:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3547,"nodeType":"ExpressionStatement","src":"11404:68:10"},{"id":3556,"nodeType":"UncheckedBlock","src":"11486:94:10","statements":[{"expression":{"arguments":[{"id":3549,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3520,"src":"11523:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3550,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"11530:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3551,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11539:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3552,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"11558:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11539:25:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3548,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"11514:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11514:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3555,"nodeType":"ExpressionStatement","src":"11514:51:10"}]}]}}]},"documentation":{"id":3518,"nodeType":"StructuredDocumentation","src":"10880:270:10","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":3560,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11164:15:10","nodeType":"FunctionDefinition","parameters":{"id":3525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3520,"mutability":"mutable","name":"owner","nameLocation":"11197:5:10","nodeType":"VariableDeclaration","scope":3560,"src":"11189:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3519,"name":"address","nodeType":"ElementaryTypeName","src":"11189:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3522,"mutability":"mutable","name":"spender","nameLocation":"11220:7:10","nodeType":"VariableDeclaration","scope":3560,"src":"11212:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3521,"name":"address","nodeType":"ElementaryTypeName","src":"11212:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3524,"mutability":"mutable","name":"amount","nameLocation":"11245:6:10","nodeType":"VariableDeclaration","scope":3560,"src":"11237:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3523,"name":"uint256","nodeType":"ElementaryTypeName","src":"11237:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11179:78:10"},"returnParameters":{"id":3526,"nodeType":"ParameterList","parameters":[],"src":"11275:0:10"},"scope":3583,"src":"11155:441:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3570,"nodeType":"Block","src":"12299:2:10","statements":[]},"documentation":{"id":3561,"nodeType":"StructuredDocumentation","src":"11602:573:10","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":3571,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12189:20:10","nodeType":"FunctionDefinition","parameters":{"id":3568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3563,"mutability":"mutable","name":"from","nameLocation":"12227:4:10","nodeType":"VariableDeclaration","scope":3571,"src":"12219:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3562,"name":"address","nodeType":"ElementaryTypeName","src":"12219:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3565,"mutability":"mutable","name":"to","nameLocation":"12249:2:10","nodeType":"VariableDeclaration","scope":3571,"src":"12241:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3564,"name":"address","nodeType":"ElementaryTypeName","src":"12241:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3567,"mutability":"mutable","name":"amount","nameLocation":"12269:6:10","nodeType":"VariableDeclaration","scope":3571,"src":"12261:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3566,"name":"uint256","nodeType":"ElementaryTypeName","src":"12261:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:72:10"},"returnParameters":{"id":3569,"nodeType":"ParameterList","parameters":[],"src":"12299:0:10"},"scope":3583,"src":"12180:121:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3581,"nodeType":"Block","src":"13007:2:10","statements":[]},"documentation":{"id":3572,"nodeType":"StructuredDocumentation","src":"12307:577:10","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":3582,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12898:19:10","nodeType":"FunctionDefinition","parameters":{"id":3579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3574,"mutability":"mutable","name":"from","nameLocation":"12935:4:10","nodeType":"VariableDeclaration","scope":3582,"src":"12927:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3573,"name":"address","nodeType":"ElementaryTypeName","src":"12927:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3576,"mutability":"mutable","name":"to","nameLocation":"12957:2:10","nodeType":"VariableDeclaration","scope":3582,"src":"12949:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3575,"name":"address","nodeType":"ElementaryTypeName","src":"12949:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3578,"mutability":"mutable","name":"amount","nameLocation":"12977:6:10","nodeType":"VariableDeclaration","scope":3582,"src":"12969:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"12969:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12917:72:10"},"returnParameters":{"id":3580,"nodeType":"ParameterList","parameters":[],"src":"13007:0:10"},"scope":3583,"src":"12889:120:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3584,"src":"1401:11610:10","usedErrors":[]}],"src":"105:12907:10"},"id":10},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[3661]},"id":3662,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3585,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":3586,"nodeType":"StructuredDocumentation","src":"131:70:11","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":3661,"linearizedBaseContracts":[3661],"name":"IERC20","nameLocation":"212:6:11","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":3587,"nodeType":"StructuredDocumentation","src":"225:158:11","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"id":3595,"name":"Transfer","nameLocation":"394:8:11","nodeType":"EventDefinition","parameters":{"id":3594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3589,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:11","nodeType":"VariableDeclaration","scope":3595,"src":"403:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3588,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3591,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:11","nodeType":"VariableDeclaration","scope":3595,"src":"425:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3590,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3593,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:11","nodeType":"VariableDeclaration","scope":3595,"src":"445:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3592,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:11"},"src":"388:72:11"},{"anonymous":false,"documentation":{"id":3596,"nodeType":"StructuredDocumentation","src":"466:148:11","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"id":3604,"name":"Approval","nameLocation":"625:8:11","nodeType":"EventDefinition","parameters":{"id":3603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3598,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:11","nodeType":"VariableDeclaration","scope":3604,"src":"634:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3597,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3600,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:11","nodeType":"VariableDeclaration","scope":3604,"src":"657:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3599,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3602,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:11","nodeType":"VariableDeclaration","scope":3604,"src":"682:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3601,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:11"},"src":"619:78:11"},{"documentation":{"id":3605,"nodeType":"StructuredDocumentation","src":"703:66:11","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":3610,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:11","nodeType":"FunctionDefinition","parameters":{"id":3606,"nodeType":"ParameterList","parameters":[],"src":"794:2:11"},"returnParameters":{"id":3609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3610,"src":"820:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3607,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:11"},"scope":3661,"src":"774:55:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3611,"nodeType":"StructuredDocumentation","src":"835:72:11","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":3618,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:11","nodeType":"FunctionDefinition","parameters":{"id":3614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3613,"mutability":"mutable","name":"account","nameLocation":"939:7:11","nodeType":"VariableDeclaration","scope":3618,"src":"931:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3612,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:11"},"returnParameters":{"id":3617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3618,"src":"971:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3615,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:11"},"scope":3661,"src":"912:68:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3619,"nodeType":"StructuredDocumentation","src":"986:202:11","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":3628,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:11","nodeType":"FunctionDefinition","parameters":{"id":3624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3621,"mutability":"mutable","name":"to","nameLocation":"1219:2:11","nodeType":"VariableDeclaration","scope":3628,"src":"1211:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3620,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3623,"mutability":"mutable","name":"amount","nameLocation":"1231:6:11","nodeType":"VariableDeclaration","scope":3628,"src":"1223:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:11"},"returnParameters":{"id":3627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3628,"src":"1257:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3625,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:11"},"scope":3661,"src":"1193:70:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3629,"nodeType":"StructuredDocumentation","src":"1269:264:11","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":3638,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:11","nodeType":"FunctionDefinition","parameters":{"id":3634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3631,"mutability":"mutable","name":"owner","nameLocation":"1565:5:11","nodeType":"VariableDeclaration","scope":3638,"src":"1557:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3630,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3633,"mutability":"mutable","name":"spender","nameLocation":"1580:7:11","nodeType":"VariableDeclaration","scope":3638,"src":"1572:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3632,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:11"},"returnParameters":{"id":3637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3638,"src":"1612:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:11"},"scope":3661,"src":"1538:83:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3639,"nodeType":"StructuredDocumentation","src":"1627:642:11","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":3648,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:11","nodeType":"FunctionDefinition","parameters":{"id":3644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3641,"mutability":"mutable","name":"spender","nameLocation":"2299:7:11","nodeType":"VariableDeclaration","scope":3648,"src":"2291:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3640,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3643,"mutability":"mutable","name":"amount","nameLocation":"2316:6:11","nodeType":"VariableDeclaration","scope":3648,"src":"2308:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3642,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:11"},"returnParameters":{"id":3647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3648,"src":"2342:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3645,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:11"},"scope":3661,"src":"2274:74:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3649,"nodeType":"StructuredDocumentation","src":"2354:287:11","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":3660,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:11","nodeType":"FunctionDefinition","parameters":{"id":3656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3651,"mutability":"mutable","name":"from","nameLocation":"2685:4:11","nodeType":"VariableDeclaration","scope":3660,"src":"2677:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3650,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3653,"mutability":"mutable","name":"to","nameLocation":"2707:2:11","nodeType":"VariableDeclaration","scope":3660,"src":"2699:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3652,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3655,"mutability":"mutable","name":"amount","nameLocation":"2727:6:11","nodeType":"VariableDeclaration","scope":3660,"src":"2719:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3654,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:11"},"returnParameters":{"id":3659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3660,"src":"2758:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3657,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:11"},"scope":3661,"src":"2646:118:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3662,"src":"202:2564:11","usedErrors":[]}],"src":"106:2661:11"},"id":11},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[3661],"IERC20Metadata":[3686]},"id":3687,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3663,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:12"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":3664,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3687,"sourceUnit":3662,"src":"135:23:12","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3666,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":3661,"src":"305:6:12"},"id":3667,"nodeType":"InheritanceSpecifier","src":"305:6:12"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":3665,"nodeType":"StructuredDocumentation","src":"160:116:12","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":3686,"linearizedBaseContracts":[3686,3661],"name":"IERC20Metadata","nameLocation":"287:14:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3668,"nodeType":"StructuredDocumentation","src":"318:54:12","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":3673,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:12","nodeType":"FunctionDefinition","parameters":{"id":3669,"nodeType":"ParameterList","parameters":[],"src":"390:2:12"},"returnParameters":{"id":3672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3673,"src":"416:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3670,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:12"},"scope":3686,"src":"377:54:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3674,"nodeType":"StructuredDocumentation","src":"437:56:12","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":3679,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:12","nodeType":"FunctionDefinition","parameters":{"id":3675,"nodeType":"ParameterList","parameters":[],"src":"513:2:12"},"returnParameters":{"id":3678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3679,"src":"539:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3676,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:12"},"scope":3686,"src":"498:56:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3680,"nodeType":"StructuredDocumentation","src":"560:65:12","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":3685,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:12","nodeType":"FunctionDefinition","parameters":{"id":3681,"nodeType":"ParameterList","parameters":[],"src":"647:2:12"},"returnParameters":{"id":3684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3685,"src":"673:5:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3682,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:12"},"scope":3686,"src":"630:50:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3687,"src":"277:405:12","usedErrors":[]}],"src":"110:573:12"},"id":12},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[3708]},"id":3709,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3688,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:13"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":3689,"nodeType":"StructuredDocumentation","src":"111:496:13","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":3708,"linearizedBaseContracts":[3708],"name":"Context","nameLocation":"626:7:13","nodeType":"ContractDefinition","nodes":[{"body":{"id":3697,"nodeType":"Block","src":"702:34:13","statements":[{"expression":{"expression":{"id":3694,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3693,"id":3696,"nodeType":"Return","src":"712:17:13"}]},"id":3698,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:13","nodeType":"FunctionDefinition","parameters":{"id":3690,"nodeType":"ParameterList","parameters":[],"src":"659:2:13"},"returnParameters":{"id":3693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3698,"src":"693:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3691,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:13"},"scope":3708,"src":"640:96:13","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3706,"nodeType":"Block","src":"809:32:13","statements":[{"expression":{"expression":{"id":3703,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:13","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":3702,"id":3705,"nodeType":"Return","src":"819:15:13"}]},"id":3707,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:13","nodeType":"FunctionDefinition","parameters":{"id":3699,"nodeType":"ParameterList","parameters":[],"src":"759:2:13"},"returnParameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3707,"src":"793:14:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3700,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:13"},"scope":3708,"src":"742:99:13","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":3709,"src":"608:235:13","usedErrors":[]}],"src":"86:758:13"},"id":13},"contracts/OmniVotingEscrow.sol":{"ast":{"absolutePath":"contracts/OmniVotingEscrow.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540],"LzApp":[917],"NonblockingLzApp":[1136],"OmniVotingEscrow":[4094],"Ownable":[2996]},"id":4095,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":3710,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:14"},{"id":3711,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:14"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./interfaces/IVotingEscrow.sol","id":3712,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4519,"src":"83:40:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","file":"./interfaces/IOmniVotingEscrow.sol","id":3713,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4466,"src":"124:44:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","file":"./interfaces/IVotingEscrowRemapper.sol","id":3714,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4541,"src":"169:48:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","id":3715,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":1137,"src":"218:79:14","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3716,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"328:16:14"},"id":3717,"nodeType":"InheritanceSpecifier","src":"328:16:14"},{"baseName":{"id":3718,"name":"IOmniVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4465,"src":"346:17:14"},"id":3719,"nodeType":"InheritanceSpecifier","src":"346:17:14"}],"canonicalName":"OmniVotingEscrow","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4094,"linearizedBaseContracts":[4094,4465,1136,917,189,158,2996,3708],"name":"OmniVotingEscrow","nameLocation":"308:16:14","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"4f2bfe5b","id":3722,"mutability":"immutable","name":"votingEscrow","nameLocation":"401:12:14","nodeType":"VariableDeclaration","scope":4094,"src":"370:43:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":3721,"nodeType":"UserDefinedTypeName","pathNode":{"id":3720,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"370:13:14"},"referencedDeclaration":4518,"src":"370:13:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"public"},{"constant":false,"functionSelector":"363bf0de","id":3725,"mutability":"immutable","name":"votingEscrowRemapper","nameLocation":"458:20:14","nodeType":"VariableDeclaration","scope":4094,"src":"419:59:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"},"typeName":{"id":3724,"nodeType":"UserDefinedTypeName","pathNode":{"id":3723,"name":"IVotingEscrowRemapper","nodeType":"IdentifierPath","referencedDeclaration":4540,"src":"419:21:14"},"referencedDeclaration":4540,"src":"419:21:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"visibility":"public"},{"constant":false,"id":3728,"mutability":"mutable","name":"PT_USER","nameLocation":"530:7:14","nodeType":"VariableDeclaration","scope":4094,"src":"523:18:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3726,"name":"uint16","nodeType":"ElementaryTypeName","src":"523:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":3727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"540:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":false,"id":3731,"mutability":"mutable","name":"PT_TS","nameLocation":"594:5:14","nodeType":"VariableDeclaration","scope":4094,"src":"587:16:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3729,"name":"uint16","nodeType":"ElementaryTypeName","src":"587:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":3730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"602:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"anonymous":false,"id":3745,"name":"UserBalToChain","nameLocation":"639:14:14","nodeType":"EventDefinition","parameters":{"id":3744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3733,"indexed":false,"mutability":"mutable","name":"dstChainId","nameLocation":"661:10:14","nodeType":"VariableDeclaration","scope":3745,"src":"654:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3732,"name":"uint16","nodeType":"ElementaryTypeName","src":"654:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3735,"indexed":false,"mutability":"mutable","name":"localUser","nameLocation":"681:9:14","nodeType":"VariableDeclaration","scope":3745,"src":"673:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3734,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3737,"indexed":false,"mutability":"mutable","name":"remoteUser","nameLocation":"700:10:14","nodeType":"VariableDeclaration","scope":3745,"src":"692:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3736,"name":"address","nodeType":"ElementaryTypeName","src":"692:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3740,"indexed":false,"mutability":"mutable","name":"userPoint","nameLocation":"732:9:14","nodeType":"VariableDeclaration","scope":3745,"src":"712:29:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3739,"nodeType":"UserDefinedTypeName","pathNode":{"id":3738,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"712:19:14"},"referencedDeclaration":4477,"src":"712:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":3743,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"763:16:14","nodeType":"VariableDeclaration","scope":3745,"src":"743:36:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3742,"nodeType":"UserDefinedTypeName","pathNode":{"id":3741,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"743:19:14"},"referencedDeclaration":4477,"src":"743:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"653:127:14"},"src":"633:148:14"},{"anonymous":false,"id":3752,"name":"TotalSupplyToChain","nameLocation":"792:18:14","nodeType":"EventDefinition","parameters":{"id":3751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3747,"indexed":false,"mutability":"mutable","name":"dstChainId","nameLocation":"818:10:14","nodeType":"VariableDeclaration","scope":3752,"src":"811:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3746,"name":"uint16","nodeType":"ElementaryTypeName","src":"811:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3750,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"850:16:14","nodeType":"VariableDeclaration","scope":3752,"src":"830:36:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3749,"nodeType":"UserDefinedTypeName","pathNode":{"id":3748,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"830:19:14"},"referencedDeclaration":4477,"src":"830:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"810:57:14"},"src":"786:82:14"},{"body":{"id":3784,"nodeType":"Block","src":"968:248:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3763,"name":"_votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"986:21:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":3766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1019:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1011:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3764,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:14","typeDescriptions":{}}},"id":3767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1011:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"986:37:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f7420626520307830","id":3769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1025:42:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6","typeString":"literal_string \"OmniVotingEscrow: remapper cannot be 0x0\""},"value":"OmniVotingEscrow: remapper cannot be 0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6","typeString":"literal_string \"OmniVotingEscrow: remapper cannot be 0x0\""}],"id":3762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"978:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"978:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3771,"nodeType":"ExpressionStatement","src":"978:90:14"},{"expression":{"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3772,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"1079:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3774,"name":"_votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"1124:21:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3773,"name":"IVotingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"1102:21:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrowRemapper_$4540_$","typeString":"type(contract IVotingEscrowRemapper)"}},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1102:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"src":"1079:67:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3777,"nodeType":"ExpressionStatement","src":"1079:67:14"},{"expression":{"id":3782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3778,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"1156:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3779,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"1171:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getVotingEscrow","nodeType":"MemberAccess","referencedDeclaration":4529,"src":"1171:36:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IVotingEscrow_$4518_$","typeString":"function () view external returns (contract IVotingEscrow)"}},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1171:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"src":"1156:53:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3783,"nodeType":"ExpressionStatement","src":"1156:53:14"}]},"id":3785,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3759,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"955:11:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3760,"kind":"baseConstructorSpecifier","modifierName":{"id":3758,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"938:16:14"},"nodeType":"ModifierInvocation","src":"938:29:14"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3754,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"894:11:14","nodeType":"VariableDeclaration","scope":3785,"src":"886:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3753,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3756,"mutability":"mutable","name":"_votingEscrowRemapper","nameLocation":"915:21:14","nodeType":"VariableDeclaration","scope":3785,"src":"907:29:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3755,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"885:52:14"},"returnParameters":{"id":3761,"nodeType":"ParameterList","parameters":[],"src":"968:0:14"},"scope":4094,"src":"874:342:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1067],"body":{"id":3801,"nodeType":"Block","src":"1417:66:14","statements":[{"expression":{"arguments":[{"hexValue":"4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665206c7a4d736773","id":3798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1434:41:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2","typeString":"literal_string \"OmniVotingEscrow: cannot receive lzMsgs\""},"value":"OmniVotingEscrow: cannot receive lzMsgs"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2","typeString":"literal_string \"OmniVotingEscrow: cannot receive lzMsgs\""}],"id":3797,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1427:6:14","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1427:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3800,"nodeType":"ExpressionStatement","src":"1427:49:14"}]},"id":3802,"implemented":true,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1231:21:14","nodeType":"FunctionDefinition","overrides":{"id":3795,"nodeType":"OverrideSpecifier","overrides":[],"src":"1408:8:14"},"parameters":{"id":3794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1262:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3786,"name":"uint16","nodeType":"ElementaryTypeName","src":"1262:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1294:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3788,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1332:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3790,"name":"uint64","nodeType":"ElementaryTypeName","src":"1332:6:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1359:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3792,"name":"bytes","nodeType":"ElementaryTypeName","src":"1359:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1252:138:14"},"returnParameters":{"id":3796,"nodeType":"ParameterList","parameters":[],"src":"1417:0:14"},"scope":4094,"src":"1222:261:14","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[4427],"body":{"id":3853,"nodeType":"Block","src":"1637:248:14","statements":[{"assignments":[3816],"declarations":[{"constant":false,"id":3816,"mutability":"mutable","name":"lzPayload","nameLocation":"1660:9:14","nodeType":"VariableDeclaration","scope":3853,"src":"1647:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3815,"name":"bytes","nodeType":"ElementaryTypeName","src":"1647:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3840,"initialValue":{"arguments":[{"id":3819,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"1683:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"hexValue":"307830","id":3822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1700:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1692:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3820,"name":"address","nodeType":"ElementaryTypeName","src":"1692:7:14","typeDescriptions":{}}},"id":3823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1692:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":3824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1706:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":3827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1729:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1732:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1738:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3825,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"1709:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"1709:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1709:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"arguments":[{"hexValue":"30","id":3834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1762:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1765:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1768:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1771:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3832,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"1742:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"1742:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1742:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3817,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1672:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1672:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1672:102:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1647:127:14"},{"expression":{"arguments":[{"id":3843,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"1815:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3846,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1836:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}],"id":3845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1828:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3844,"name":"address","nodeType":"ElementaryTypeName","src":"1828:7:14","typeDescriptions":{}}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1828:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3848,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3816,"src":"1843:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3849,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"1854:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3850,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3808,"src":"1863:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3841,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"1791:10:14","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":69,"src":"1791:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":3851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1791:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3814,"id":3852,"nodeType":"Return","src":"1784:94:14"}]},"functionSelector":"65d092d0","id":3854,"implemented":true,"kind":"function","modifiers":[],"name":"estimateSendUserBalance","nameLocation":"1498:23:14","nodeType":"FunctionDefinition","parameters":{"id":3809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3804,"mutability":"mutable","name":"_dstChainId","nameLocation":"1529:11:14","nodeType":"VariableDeclaration","scope":3854,"src":"1522:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3803,"name":"uint16","nodeType":"ElementaryTypeName","src":"1522:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3806,"mutability":"mutable","name":"_useZro","nameLocation":"1547:7:14","nodeType":"VariableDeclaration","scope":3854,"src":"1542:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3805,"name":"bool","nodeType":"ElementaryTypeName","src":"1542:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3808,"mutability":"mutable","name":"_adapterParams","nameLocation":"1571:14:14","nodeType":"VariableDeclaration","scope":3854,"src":"1556:29:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3807,"name":"bytes","nodeType":"ElementaryTypeName","src":"1556:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1521:65:14"},"returnParameters":{"id":3814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3811,"mutability":"mutable","name":"nativeFee","nameLocation":"1613:9:14","nodeType":"VariableDeclaration","scope":3854,"src":"1608:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3810,"name":"uint","nodeType":"ElementaryTypeName","src":"1608:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3813,"mutability":"mutable","name":"zroFee","nameLocation":"1629:6:14","nodeType":"VariableDeclaration","scope":3854,"src":"1624:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3812,"name":"uint","nodeType":"ElementaryTypeName","src":"1624:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1607:29:14"},"scope":4094,"src":"1489:396:14","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4440],"body":{"id":3893,"nodeType":"Block","src":"2039:196:14","statements":[{"assignments":[3868],"declarations":[{"constant":false,"id":3868,"mutability":"mutable","name":"lzPayload","nameLocation":"2062:9:14","nodeType":"VariableDeclaration","scope":3893,"src":"2049:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3867,"name":"bytes","nodeType":"ElementaryTypeName","src":"2049:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3880,"initialValue":{"arguments":[{"id":3871,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3731,"src":"2085:5:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"hexValue":"30","id":3874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2112:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2115:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2118:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2121:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3872,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2092:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2092:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2092:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2074:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2074:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2074:50:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2049:75:14"},{"expression":{"arguments":[{"id":3883,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"2165:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3886,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2186:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}],"id":3885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2178:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3884,"name":"address","nodeType":"ElementaryTypeName","src":"2178:7:14","typeDescriptions":{}}},"id":3887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2178:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3888,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"2193:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3889,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"2204:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3890,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"2213:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3881,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"2141:10:14","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":69,"src":"2141:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":3891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2141:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3866,"id":3892,"nodeType":"Return","src":"2134:94:14"}]},"functionSelector":"16334c8f","id":3894,"implemented":true,"kind":"function","modifiers":[],"name":"estimateSendTotalSupply","nameLocation":"1900:23:14","nodeType":"FunctionDefinition","parameters":{"id":3861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"_dstChainId","nameLocation":"1931:11:14","nodeType":"VariableDeclaration","scope":3894,"src":"1924:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3855,"name":"uint16","nodeType":"ElementaryTypeName","src":"1924:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3858,"mutability":"mutable","name":"_useZro","nameLocation":"1949:7:14","nodeType":"VariableDeclaration","scope":3894,"src":"1944:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3857,"name":"bool","nodeType":"ElementaryTypeName","src":"1944:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3860,"mutability":"mutable","name":"_adapterParams","nameLocation":"1973:14:14","nodeType":"VariableDeclaration","scope":3894,"src":"1958:29:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3859,"name":"bytes","nodeType":"ElementaryTypeName","src":"1958:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1923:65:14"},"returnParameters":{"id":3866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3863,"mutability":"mutable","name":"nativeFee","nameLocation":"2015:9:14","nodeType":"VariableDeclaration","scope":3894,"src":"2010:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3862,"name":"uint","nodeType":"ElementaryTypeName","src":"2010:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3865,"mutability":"mutable","name":"zroFee","nameLocation":"2031:6:14","nodeType":"VariableDeclaration","scope":3894,"src":"2026:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3864,"name":"uint","nodeType":"ElementaryTypeName","src":"2026:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2009:29:14"},"scope":4094,"src":"1891:344:14","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4453],"body":{"id":3997,"nodeType":"Block","src":"2410:917:14","statements":[{"assignments":[3908],"declarations":[{"constant":false,"id":3908,"mutability":"mutable","name":"userEpoch","nameLocation":"2425:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"2420:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3907,"name":"uint","nodeType":"ElementaryTypeName","src":"2420:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3913,"initialValue":{"arguments":[{"id":3911,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2467:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3909,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2437:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"user_point_epoch","nodeType":"MemberAccess","referencedDeclaration":4489,"src":"2437:29:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) external returns (uint256)"}},"id":3912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2437:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2420:58:14"},{"assignments":[3918],"declarations":[{"constant":false,"id":3918,"mutability":"mutable","name":"uPoint","nameLocation":"2515:6:14","nodeType":"VariableDeclaration","scope":3997,"src":"2488:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3917,"nodeType":"UserDefinedTypeName","pathNode":{"id":3916,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2488:19:14"},"referencedDeclaration":4477,"src":"2488:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":3924,"initialValue":{"arguments":[{"id":3921,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2556:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3922,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"2568:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3919,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2524:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"user_point_history","nodeType":"MemberAccess","referencedDeclaration":4499,"src":"2524:31:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (address,uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":3923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2524:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"2488:90:14"},{"assignments":[3926],"declarations":[{"constant":false,"id":3926,"mutability":"mutable","name":"lockedEnd","nameLocation":"2594:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"2589:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3925,"name":"uint","nodeType":"ElementaryTypeName","src":"2589:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3931,"initialValue":{"arguments":[{"id":3929,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2631:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3927,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2606:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locked__end","nodeType":"MemberAccess","referencedDeclaration":4517,"src":"2606:24:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2606:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2589:53:14"},{"assignments":[3933],"declarations":[{"constant":false,"id":3933,"mutability":"mutable","name":"totalSupplyEpoch","nameLocation":"2719:16:14","nodeType":"VariableDeclaration","scope":3997,"src":"2714:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3932,"name":"uint","nodeType":"ElementaryTypeName","src":"2714:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3937,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3934,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2738:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"2738:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":3936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2738:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2714:44:14"},{"assignments":[3942],"declarations":[{"constant":false,"id":3942,"mutability":"mutable","name":"tsPoint","nameLocation":"2795:7:14","nodeType":"VariableDeclaration","scope":3997,"src":"2768:34:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3941,"nodeType":"UserDefinedTypeName","pathNode":{"id":3940,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2768:19:14"},"referencedDeclaration":4477,"src":"2768:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":3947,"initialValue":{"arguments":[{"id":3945,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"2832:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3943,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2805:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"2805:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2805:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"2768:81:14"},{"assignments":[3949],"declarations":[{"constant":false,"id":3949,"mutability":"mutable","name":"remappedAddress","nameLocation":"2868:15:14","nodeType":"VariableDeclaration","scope":3997,"src":"2860:23:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3948,"name":"address","nodeType":"ElementaryTypeName","src":"2860:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3955,"initialValue":{"arguments":[{"id":3952,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2921:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3953,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"2933:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":3950,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"2886:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRemoteUser","nodeType":"MemberAccess","referencedDeclaration":4539,"src":"2886:34:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint16_$returns$_t_address_$","typeString":"function (address,uint16) view external returns (address)"}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2886:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2860:85:14"},{"assignments":[3957],"declarations":[{"constant":false,"id":3957,"mutability":"mutable","name":"remoteUser","nameLocation":"2963:10:14","nodeType":"VariableDeclaration","scope":3997,"src":"2955:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3956,"name":"address","nodeType":"ElementaryTypeName","src":"2955:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3967,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3958,"name":"remappedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"2976:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2995:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3959,"name":"address","nodeType":"ElementaryTypeName","src":"2995:7:14","typeDescriptions":{}}},"id":3962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2995:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2976:31:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3965,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"3028:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2976:62:14","trueExpression":{"id":3964,"name":"remappedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"3010:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2955:83:14"},{"assignments":[3969],"declarations":[{"constant":false,"id":3969,"mutability":"mutable","name":"lzPayload","nameLocation":"3062:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"3049:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3968,"name":"bytes","nodeType":"ElementaryTypeName","src":"3049:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3978,"initialValue":{"arguments":[{"id":3972,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"3085:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3973,"name":"remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3957,"src":"3094:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3974,"name":"lockedEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"3106:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3975,"name":"uPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3117:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":3976,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"3125:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3074:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3074:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3074:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3049:84:14"},{"expression":{"arguments":[{"id":3980,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"3151:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3981,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3969,"src":"3164:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3982,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3900,"src":"3175:14:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":3983,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"3191:18:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3984,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3211:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":3985,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3227:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3227:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3979,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"3143:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,address payable,address,bytes memory,uint256)"}},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3143:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3988,"nodeType":"ExpressionStatement","src":"3143:94:14"},{"eventCall":{"arguments":[{"id":3990,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"3267:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3991,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"3280:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3992,"name":"remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3957,"src":"3292:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3993,"name":"uPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3304:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":3994,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"3312:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":3989,"name":"UserBalToChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3745,"src":"3252:14:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_address_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,address,address,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3252:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3996,"nodeType":"EmitStatement","src":"3247:73:14"}]},"functionSelector":"4a759489","id":3998,"implemented":true,"kind":"function","modifiers":[],"name":"sendUserBalance","nameLocation":"2250:15:14","nodeType":"FunctionDefinition","parameters":{"id":3905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3896,"mutability":"mutable","name":"_localUser","nameLocation":"2274:10:14","nodeType":"VariableDeclaration","scope":3998,"src":"2266:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3895,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3898,"mutability":"mutable","name":"_dstChainId","nameLocation":"2293:11:14","nodeType":"VariableDeclaration","scope":3998,"src":"2286:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3897,"name":"uint16","nodeType":"ElementaryTypeName","src":"2286:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3900,"mutability":"mutable","name":"_refundAddress","nameLocation":"2322:14:14","nodeType":"VariableDeclaration","scope":3998,"src":"2306:30:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3899,"name":"address","nodeType":"ElementaryTypeName","src":"2306:15:14","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":3902,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"2346:18:14","nodeType":"VariableDeclaration","scope":3998,"src":"2338:26:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3901,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3904,"mutability":"mutable","name":"_adapterParams","nameLocation":"2379:14:14","nodeType":"VariableDeclaration","scope":3998,"src":"2366:27:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3903,"name":"bytes","nodeType":"ElementaryTypeName","src":"2366:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2265:129:14"},"returnParameters":{"id":3906,"nodeType":"ParameterList","parameters":[],"src":"2410:0:14"},"scope":4094,"src":"2241:1086:14","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[4464],"body":{"id":4072,"nodeType":"Block","src":"3482:845:14","statements":[{"assignments":[4010],"declarations":[{"constant":false,"id":4010,"mutability":"mutable","name":"totalSupplyEpoch","nameLocation":"3497:16:14","nodeType":"VariableDeclaration","scope":4072,"src":"3492:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4009,"name":"uint","nodeType":"ElementaryTypeName","src":"3492:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4011,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3516:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"3516:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3516:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3492:44:14"},{"assignments":[4019],"declarations":[{"constant":false,"id":4019,"mutability":"mutable","name":"tsPoint","nameLocation":"3573:7:14","nodeType":"VariableDeclaration","scope":4072,"src":"3546:34:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4018,"nodeType":"UserDefinedTypeName","pathNode":{"id":4017,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3546:19:14"},"referencedDeclaration":4477,"src":"3546:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4024,"initialValue":{"arguments":[{"id":4022,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"3610:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4020,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3583:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"3583:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":4023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3583:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"3546:81:14"},{"condition":{"arguments":[{"expression":{"id":4026,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"3882:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":4474,"src":"3882:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4025,"name":"_hasLastCheckpointExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4093,"src":"3856:25:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3856:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4048,"nodeType":"IfStatement","src":"3852:248:14","trueBody":{"id":4047,"nodeType":"Block","src":"3895:205:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4029,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3909:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"checkpoint","nodeType":"MemberAccess","referencedDeclaration":4510,"src":"3909:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3909:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4033,"nodeType":"ExpressionStatement","src":"3909:25:14"},{"expression":{"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4034,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"3982:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4035,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"4001:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"4001:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4001:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3982:39:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4039,"nodeType":"ExpressionStatement","src":"3982:39:14"},{"expression":{"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4040,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4035:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4043,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"4072:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4041,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"4045:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"4045:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4045:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"4035:54:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4046,"nodeType":"ExpressionStatement","src":"4035:54:14"}]}},{"assignments":[4050],"declarations":[{"constant":false,"id":4050,"mutability":"mutable","name":"lzPayload","nameLocation":"4123:9:14","nodeType":"VariableDeclaration","scope":4072,"src":"4110:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4049,"name":"bytes","nodeType":"ElementaryTypeName","src":"4110:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4056,"initialValue":{"arguments":[{"id":4053,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3731,"src":"4146:5:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4054,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4153:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":4051,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4135:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4135:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4135:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4110:51:14"},{"expression":{"arguments":[{"id":4058,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"4179:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4059,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4050,"src":"4192:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4060,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"4203:14:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":4061,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4004,"src":"4219:18:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4062,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"4239:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4063,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4255:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"4255:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4057,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"4171:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,address payable,address,bytes memory,uint256)"}},"id":4065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4171:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4066,"nodeType":"ExpressionStatement","src":"4171:94:14"},{"eventCall":{"arguments":[{"id":4068,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"4299:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4069,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4312:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4067,"name":"TotalSupplyToChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3752,"src":"4280:18:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,struct IVotingEscrow.Point memory)"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4280:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4071,"nodeType":"EmitStatement","src":"4275:45:14"}]},"functionSelector":"416b154a","id":4073,"implemented":true,"kind":"function","modifiers":[],"name":"sendTotalSupply","nameLocation":"3342:15:14","nodeType":"FunctionDefinition","parameters":{"id":4007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4000,"mutability":"mutable","name":"_dstChainId","nameLocation":"3365:11:14","nodeType":"VariableDeclaration","scope":4073,"src":"3358:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3999,"name":"uint16","nodeType":"ElementaryTypeName","src":"3358:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4002,"mutability":"mutable","name":"_refundAddress","nameLocation":"3394:14:14","nodeType":"VariableDeclaration","scope":4073,"src":"3378:30:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4001,"name":"address","nodeType":"ElementaryTypeName","src":"3378:15:14","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4004,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"3418:18:14","nodeType":"VariableDeclaration","scope":4073,"src":"3410:26:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4003,"name":"address","nodeType":"ElementaryTypeName","src":"3410:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4006,"mutability":"mutable","name":"_adapterParams","nameLocation":"3451:14:14","nodeType":"VariableDeclaration","scope":4073,"src":"3438:27:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4005,"name":"bytes","nodeType":"ElementaryTypeName","src":"3438:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3357:109:14"},"returnParameters":{"id":4008,"nodeType":"ParameterList","parameters":[],"src":"3482:0:14"},"scope":4094,"src":"3333:994:14","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":4092,"nodeType":"Block","src":"4427:213:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4080,"name":"lastCheckpointTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"4561:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31","id":4081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4587:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4561:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4560:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":4084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4598:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4560:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4608:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4560:55:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4088,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4618:5:14","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4618:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4560:73:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4079,"id":4091,"nodeType":"Return","src":"4553:80:14"}]},"id":4093,"implemented":true,"kind":"function","modifiers":[],"name":"_hasLastCheckpointExpired","nameLocation":"4342:25:14","nodeType":"FunctionDefinition","parameters":{"id":4076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4075,"mutability":"mutable","name":"lastCheckpointTimestamp","nameLocation":"4373:23:14","nodeType":"VariableDeclaration","scope":4093,"src":"4368:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4074,"name":"uint","nodeType":"ElementaryTypeName","src":"4368:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4367:30:14"},"returnParameters":{"id":4079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4093,"src":"4421:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4077,"name":"bool","nodeType":"ElementaryTypeName","src":"4421:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4420:6:14"},"scope":4094,"src":"4333:307:14","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4095,"src":"299:4343:14","usedErrors":[]}],"src":"38:4605:14"},"id":14},"contracts/OmniVotingEscrowChild.sol":{"ast":{"absolutePath":"contracts/OmniVotingEscrowChild.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"IL2LayerZeroDelegation":[4411],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"IVotingEscrow":[4518],"LzApp":[917],"NonblockingLzApp":[1136],"OmniVotingEscrowChild":[4399],"Ownable":[2996]},"id":4400,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4096,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:15"},{"id":4097,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:15"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./interfaces/IVotingEscrow.sol","id":4098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":4519,"src":"83:40:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","file":"./interfaces/IL2LayerZeroDelegation.sol","id":4099,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":4412,"src":"124:49:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","id":4100,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":1137,"src":"174:79:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4101,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"289:16:15"},"id":4102,"nodeType":"InheritanceSpecifier","src":"289:16:15"}],"canonicalName":"OmniVotingEscrowChild","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4399,"linearizedBaseContracts":[4399,1136,917,189,158,2996,3708],"name":"OmniVotingEscrowChild","nameLocation":"264:21:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"adc63589","id":4106,"mutability":"mutable","name":"locked__end","nameLocation":"344:11:15","nodeType":"VariableDeclaration","scope":4399,"src":"312:43:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4105,"keyType":{"id":4103,"name":"address","nodeType":"ElementaryTypeName","src":"320:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"312:24:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":4104,"name":"uint","nodeType":"ElementaryTypeName","src":"331:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"f50ddbc7","id":4111,"mutability":"mutable","name":"userPoints","nameLocation":"433:10:15","nodeType":"VariableDeclaration","scope":4399,"src":"386:57:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point)"},"typeName":{"id":4110,"keyType":{"id":4107,"name":"address","nodeType":"ElementaryTypeName","src":"394:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"386:39:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point)"},"valueType":{"id":4109,"nodeType":"UserDefinedTypeName","pathNode":{"id":4108,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"405:19:15"},"referencedDeclaration":4477,"src":"405:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}}},"visibility":"public"},{"constant":false,"functionSelector":"f4182acb","id":4114,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"492:16:15","nodeType":"VariableDeclaration","scope":4399,"src":"465:43:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4113,"nodeType":"UserDefinedTypeName","pathNode":{"id":4112,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"465:19:15"},"referencedDeclaration":4477,"src":"465:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"public"},{"constant":false,"id":4117,"mutability":"mutable","name":"PT_USER","nameLocation":"578:7:15","nodeType":"VariableDeclaration","scope":4399,"src":"571:18:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4115,"name":"uint16","nodeType":"ElementaryTypeName","src":"571:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":4116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":false,"id":4120,"mutability":"mutable","name":"PT_TS","nameLocation":"642:5:15","nodeType":"VariableDeclaration","scope":4399,"src":"635:16:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4118,"name":"uint16","nodeType":"ElementaryTypeName","src":"635:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":4119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"650:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"functionSelector":"74d2495f","id":4123,"mutability":"immutable","name":"delegationHook","nameLocation":"721:14:15","nodeType":"VariableDeclaration","scope":4399,"src":"681:54:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"},"typeName":{"id":4122,"nodeType":"UserDefinedTypeName","pathNode":{"id":4121,"name":"IL2LayerZeroDelegation","nodeType":"IdentifierPath","referencedDeclaration":4411,"src":"681:22:15"},"referencedDeclaration":4411,"src":"681:22:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"visibility":"public"},{"anonymous":false,"id":4135,"name":"UserBalFromChain","nameLocation":"748:16:15","nodeType":"EventDefinition","parameters":{"id":4134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4125,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"772:10:15","nodeType":"VariableDeclaration","scope":4135,"src":"765:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4124,"name":"uint16","nodeType":"ElementaryTypeName","src":"765:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4127,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"792:4:15","nodeType":"VariableDeclaration","scope":4135,"src":"784:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4126,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4130,"indexed":false,"mutability":"mutable","name":"userPoint","nameLocation":"818:9:15","nodeType":"VariableDeclaration","scope":4135,"src":"798:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4129,"nodeType":"UserDefinedTypeName","pathNode":{"id":4128,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"798:19:15"},"referencedDeclaration":4477,"src":"798:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":4133,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"849:16:15","nodeType":"VariableDeclaration","scope":4135,"src":"829:36:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4132,"nodeType":"UserDefinedTypeName","pathNode":{"id":4131,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"829:19:15"},"referencedDeclaration":4477,"src":"829:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"764:102:15"},"src":"742:125:15"},{"anonymous":false,"id":4142,"name":"TotalSupplyFromChain","nameLocation":"878:20:15","nodeType":"EventDefinition","parameters":{"id":4141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4137,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"906:10:15","nodeType":"VariableDeclaration","scope":4142,"src":"899:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4136,"name":"uint16","nodeType":"ElementaryTypeName","src":"899:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4140,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"938:16:15","nodeType":"VariableDeclaration","scope":4142,"src":"918:36:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4139,"nodeType":"UserDefinedTypeName","pathNode":{"id":4138,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"918:19:15"},"referencedDeclaration":4477,"src":"918:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"898:57:15"},"src":"872:84:15"},{"body":{"id":4168,"nodeType":"Block","src":"1050:179:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4153,"name":"_delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"1068:15:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":4156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:3:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1087:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4154,"name":"address","nodeType":"ElementaryTypeName","src":"1087:7:15","typeDescriptions":{}}},"id":4157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1087:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1068:31:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f6e20686f6f6b2063616e6e6f7420626520307830","id":4159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1101:54:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612","typeString":"literal_string \"OmniVotingEscrowChild: delegation hook cannot be 0x0\""},"value":"OmniVotingEscrowChild: delegation hook cannot be 0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612","typeString":"literal_string \"OmniVotingEscrowChild: delegation hook cannot be 0x0\""}],"id":4152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1060:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4161,"nodeType":"ExpressionStatement","src":"1060:96:15"},{"expression":{"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4162,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"1166:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4164,"name":"_delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"1206:15:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4163,"name":"IL2LayerZeroDelegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4411,"src":"1183:22:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IL2LayerZeroDelegation_$4411_$","typeString":"type(contract IL2LayerZeroDelegation)"}},"id":4165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"src":"1166:56:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4167,"nodeType":"ExpressionStatement","src":"1166:56:15"}]},"id":4169,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4149,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"1037:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4150,"kind":"baseConstructorSpecifier","modifierName":{"id":4148,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"1020:16:15"},"nodeType":"ModifierInvocation","src":"1020:29:15"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4144,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"982:11:15","nodeType":"VariableDeclaration","scope":4169,"src":"974:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4143,"name":"address","nodeType":"ElementaryTypeName","src":"974:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4146,"mutability":"mutable","name":"_delegationHook","nameLocation":"1003:15:15","nodeType":"VariableDeclaration","scope":4169,"src":"995:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4145,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"973:46:15"},"returnParameters":{"id":4151,"nodeType":"ParameterList","parameters":[],"src":"1050:0:15"},"scope":4399,"src":"962:267:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1067],"body":{"id":4210,"nodeType":"Block","src":"1422:422:15","statements":[{"assignments":[4182],"declarations":[{"constant":false,"id":4182,"mutability":"mutable","name":"packetType","nameLocation":"1439:10:15","nodeType":"VariableDeclaration","scope":4210,"src":"1432:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4181,"name":"uint16","nodeType":"ElementaryTypeName","src":"1432:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":4183,"nodeType":"VariableDeclarationStatement","src":"1432:17:15"},{"AST":{"nodeType":"YulBlock","src":"1468:62:15","statements":[{"nodeType":"YulAssignment","src":"1482:38:15","value":{"arguments":[{"arguments":[{"name":"_payload","nodeType":"YulIdentifier","src":"1506:8:15"},{"kind":"number","nodeType":"YulLiteral","src":"1516:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1502:3:15"},"nodeType":"YulFunctionCall","src":"1502:17:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1496:5:15"},"nodeType":"YulFunctionCall","src":"1496:24:15"},"variableNames":[{"name":"packetType","nodeType":"YulIdentifier","src":"1482:10:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":4177,"isOffset":false,"isSlot":false,"src":"1506:8:15","valueSize":1},{"declaration":4182,"isOffset":false,"isSlot":false,"src":"1482:10:15","valueSize":1}],"id":4184,"nodeType":"InlineAssembly","src":"1459:71:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4185,"name":"packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"1544:10:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4186,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"1558:7:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1544:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4194,"name":"packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"1659:10:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4195,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"1673:5:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1659:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4207,"nodeType":"Block","src":"1761:77:15","statements":[{"expression":{"arguments":[{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207061636b65742074797065","id":4204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1782:44:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219","typeString":"literal_string \"OmniVotingEscrowChild: unknown packet type\""},"value":"OmniVotingEscrowChild: unknown packet type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219","typeString":"literal_string \"OmniVotingEscrowChild: unknown packet type\""}],"id":4203,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1775:6:15","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1775:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4206,"nodeType":"ExpressionStatement","src":"1775:52:15"}]},"id":4208,"nodeType":"IfStatement","src":"1655:183:15","trueBody":{"id":4202,"nodeType":"Block","src":"1680:75:15","statements":[{"expression":{"arguments":[{"id":4198,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"1722:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4199,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"1735:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4197,"name":"_updateTotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4311,"src":"1694:27:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1694:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4201,"nodeType":"ExpressionStatement","src":"1694:50:15"}]}},"id":4209,"nodeType":"IfStatement","src":"1540:298:15","trueBody":{"id":4193,"nodeType":"Block","src":"1567:82:15","statements":[{"expression":{"arguments":[{"id":4189,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"1616:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4190,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"1629:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4188,"name":"_updateUserAndTotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4274,"src":"1581:34:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1581:57:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4192,"nodeType":"ExpressionStatement","src":"1581:57:15"}]}}]},"id":4211,"implemented":true,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1244:21:15","nodeType":"FunctionDefinition","overrides":{"id":4179,"nodeType":"OverrideSpecifier","overrides":[],"src":"1413:8:15"},"parameters":{"id":4178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4171,"mutability":"mutable","name":"_srcChainId","nameLocation":"1282:11:15","nodeType":"VariableDeclaration","scope":4211,"src":"1275:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4170,"name":"uint16","nodeType":"ElementaryTypeName","src":"1275:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4211,"src":"1303:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4172,"name":"bytes","nodeType":"ElementaryTypeName","src":"1303:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4211,"src":"1341:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4174,"name":"uint64","nodeType":"ElementaryTypeName","src":"1341:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4177,"mutability":"mutable","name":"_payload","nameLocation":"1381:8:15","nodeType":"VariableDeclaration","scope":4211,"src":"1368:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4176,"name":"bytes","nodeType":"ElementaryTypeName","src":"1368:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1265:130:15"},"returnParameters":{"id":4180,"nodeType":"ParameterList","parameters":[],"src":"1422:0:15"},"scope":4399,"src":"1235:609:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4273,"nodeType":"Block","src":"1946:517:15","statements":[{"assignments":[null,4219,4221,4224,4227],"declarations":[null,{"constant":false,"id":4219,"mutability":"mutable","name":"_userAddress","nameLocation":"1967:12:15","nodeType":"VariableDeclaration","scope":4273,"src":"1959:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4218,"name":"address","nodeType":"ElementaryTypeName","src":"1959:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4221,"mutability":"mutable","name":"_lockedEnd","nameLocation":"1986:10:15","nodeType":"VariableDeclaration","scope":4273,"src":"1981:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4220,"name":"uint","nodeType":"ElementaryTypeName","src":"1981:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4224,"mutability":"mutable","name":"_userPoint","nameLocation":"2025:10:15","nodeType":"VariableDeclaration","scope":4273,"src":"1998:37:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4223,"nodeType":"UserDefinedTypeName","pathNode":{"id":4222,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"1998:19:15"},"referencedDeclaration":4477,"src":"1998:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":4227,"mutability":"mutable","name":"_totalSupplyPoint","nameLocation":"2064:17:15","nodeType":"VariableDeclaration","scope":4273,"src":"2037:44:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4226,"nodeType":"UserDefinedTypeName","pathNode":{"id":4225,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2037:19:15"},"referencedDeclaration":4477,"src":"2037:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4243,"initialValue":{"arguments":[{"id":4230,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"2096:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2107:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":4231,"name":"uint16","nodeType":"ElementaryTypeName","src":"2107:6:15","typeDescriptions":{}}},{"id":4234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2115:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4233,"name":"address","nodeType":"ElementaryTypeName","src":"2115:7:15","typeDescriptions":{}}},{"id":4236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2124:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4235,"name":"uint","nodeType":"ElementaryTypeName","src":"2124:4:15","typeDescriptions":{}}},{"expression":{"id":4237,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2130:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2130:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},{"expression":{"id":4239,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2151:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2151:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}}],"id":4241,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2106:65:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(address),type(uint256),type(struct IVotingEscrow.Point storage pointer),type(struct IVotingEscrow.Point storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(address),type(uint256),type(struct IVotingEscrow.Point storage pointer),type(struct IVotingEscrow.Point storage pointer))"}],"expression":{"id":4228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2085:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2085:10:15","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2085:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_address_payable_$_t_uint256_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$","typeString":"tuple(uint16,address payable,uint256,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"nodeType":"VariableDeclarationStatement","src":"1956:216:15"},{"expression":{"id":4248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4244,"name":"locked__end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"2182:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4246,"indexExpression":{"id":4245,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2194:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2182:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4247,"name":"_lockedEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"2210:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2182:38:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4249,"nodeType":"ExpressionStatement","src":"2182:38:15"},{"expression":{"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4250,"name":"userPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"2230:10:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point storage ref)"}},"id":4252,"indexExpression":{"id":4251,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2241:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2230:24:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4253,"name":"_userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"2257:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2230:37:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4255,"nodeType":"ExpressionStatement","src":"2230:37:15"},{"expression":{"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4256,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"2277:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4257,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2296:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2277:36:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4259,"nodeType":"ExpressionStatement","src":"2277:36:15"},{"expression":{"arguments":[{"id":4263,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2354:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4260,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"2324:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onVeBalBridged","nodeType":"MemberAccess","referencedDeclaration":4407,"src":"2324:29:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2324:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4265,"nodeType":"ExpressionStatement","src":"2324:43:15"},{"eventCall":{"arguments":[{"id":4267,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"2399:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4268,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2412:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4269,"name":"_userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"2426:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":4270,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2438:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4266,"name":"UserBalFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"2382:16:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,address,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"id":4271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2382:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4272,"nodeType":"EmitStatement","src":"2377:79:15"}]},"id":4274,"implemented":true,"kind":"function","modifiers":[],"name":"_updateUserAndTotalSupplyFromChain","nameLocation":"1859:34:15","nodeType":"FunctionDefinition","parameters":{"id":4216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4213,"mutability":"mutable","name":"_srcChainId","nameLocation":"1901:11:15","nodeType":"VariableDeclaration","scope":4274,"src":"1894:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4212,"name":"uint16","nodeType":"ElementaryTypeName","src":"1894:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4215,"mutability":"mutable","name":"_payload","nameLocation":"1927:8:15","nodeType":"VariableDeclaration","scope":4274,"src":"1914:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4214,"name":"bytes","nodeType":"ElementaryTypeName","src":"1914:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1893:43:15"},"returnParameters":{"id":4217,"nodeType":"ParameterList","parameters":[],"src":"1946:0:15"},"scope":4399,"src":"1850:613:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4310,"nodeType":"Block","src":"2558:279:15","statements":[{"assignments":[null,4285],"declarations":[null,{"constant":false,"id":4285,"mutability":"mutable","name":"_totalSupplyPoint","nameLocation":"2598:17:15","nodeType":"VariableDeclaration","scope":4310,"src":"2571:44:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4284,"nodeType":"UserDefinedTypeName","pathNode":{"id":4283,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2571:19:15"},"referencedDeclaration":4477,"src":"2571:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4295,"initialValue":{"arguments":[{"id":4288,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"2630:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2641:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":4289,"name":"uint16","nodeType":"ElementaryTypeName","src":"2641:6:15","typeDescriptions":{}}},{"expression":{"id":4291,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2649:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2649:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}}],"id":4293,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2640:29:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(struct IVotingEscrow.Point storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(struct IVotingEscrow.Point storage pointer))"}],"expression":{"id":4286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2619:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2619:10:15","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2619:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$","typeString":"tuple(uint16,struct IVotingEscrow.Point memory)"}},"nodeType":"VariableDeclarationStatement","src":"2568:102:15"},{"expression":{"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4296,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"2680:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4297,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"2699:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2680:36:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4299,"nodeType":"ExpressionStatement","src":"2680:36:15"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4300,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"2727:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onVeBalSupplyUpdate","nodeType":"MemberAccess","referencedDeclaration":4410,"src":"2727:34:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2727:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4304,"nodeType":"ExpressionStatement","src":"2727:36:15"},{"eventCall":{"arguments":[{"id":4306,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4276,"src":"2799:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4307,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"2812:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4305,"name":"TotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4142,"src":"2778:20:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,struct IVotingEscrow.Point memory)"}},"id":4308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2778:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4309,"nodeType":"EmitStatement","src":"2773:57:15"}]},"id":4311,"implemented":true,"kind":"function","modifiers":[],"name":"_updateTotalSupplyFromChain","nameLocation":"2478:27:15","nodeType":"FunctionDefinition","parameters":{"id":4279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4276,"mutability":"mutable","name":"_srcChainId","nameLocation":"2513:11:15","nodeType":"VariableDeclaration","scope":4311,"src":"2506:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4275,"name":"uint16","nodeType":"ElementaryTypeName","src":"2506:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4278,"mutability":"mutable","name":"_payload","nameLocation":"2539:8:15","nodeType":"VariableDeclaration","scope":4311,"src":"2526:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4277,"name":"bytes","nodeType":"ElementaryTypeName","src":"2526:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2505:43:15"},"returnParameters":{"id":4280,"nodeType":"ParameterList","parameters":[],"src":"2558:0:15"},"scope":4399,"src":"2469:368:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4324,"nodeType":"Block","src":"2904:57:15","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4319,"name":"userPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"2936:10:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point storage ref)"}},"id":4321,"indexExpression":{"id":4320,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4313,"src":"2947:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2936:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}],"id":4318,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"2921:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2921:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4317,"id":4323,"nodeType":"Return","src":"2914:40:15"}]},"functionSelector":"70a08231","id":4325,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2852:9:15","nodeType":"FunctionDefinition","parameters":{"id":4314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4313,"mutability":"mutable","name":"_user","nameLocation":"2870:5:15","nodeType":"VariableDeclaration","scope":4325,"src":"2862:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4312,"name":"address","nodeType":"ElementaryTypeName","src":"2862:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2861:15:15"},"returnParameters":{"id":4317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4325,"src":"2898:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4315,"name":"uint","nodeType":"ElementaryTypeName","src":"2898:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2897:6:15"},"scope":4399,"src":"2843:118:15","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4334,"nodeType":"Block","src":"3017:56:15","statements":[{"expression":{"arguments":[{"id":4331,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"3049:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}],"id":4330,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"3034:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3034:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4329,"id":4333,"nodeType":"Return","src":"3027:39:15"}]},"functionSelector":"18160ddd","id":4335,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"2976:11:15","nodeType":"FunctionDefinition","parameters":{"id":4326,"nodeType":"ParameterList","parameters":[],"src":"2987:2:15"},"returnParameters":{"id":4329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4335,"src":"3011:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4327,"name":"uint","nodeType":"ElementaryTypeName","src":"3011:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3010:6:15"},"scope":4399,"src":"2967:106:15","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4347,"nodeType":"Block","src":"3194:46:15","statements":[{"expression":{"arguments":[{"id":4344,"name":"_point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4338,"src":"3226:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4343,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"3211:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3211:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4342,"id":4346,"nodeType":"Return","src":"3204:29:15"}]},"functionSelector":"378ef708","id":4348,"implemented":true,"kind":"function","modifiers":[],"name":"getPointValue","nameLocation":"3116:13:15","nodeType":"FunctionDefinition","parameters":{"id":4339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4338,"mutability":"mutable","name":"_point","nameLocation":"3157:6:15","nodeType":"VariableDeclaration","scope":4348,"src":"3130:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4337,"nodeType":"UserDefinedTypeName","pathNode":{"id":4336,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3130:19:15"},"referencedDeclaration":4477,"src":"3130:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"3129:35:15"},"returnParameters":{"id":4342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4348,"src":"3188:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4340,"name":"uint","nodeType":"ElementaryTypeName","src":"3188:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3187:6:15"},"scope":4399,"src":"3107:133:15","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4397,"nodeType":"Block","src":"3334:190:15","statements":[{"assignments":[4360],"declarations":[{"constant":false,"id":4360,"mutability":"mutable","name":"p","nameLocation":"3371:1:15","nodeType":"VariableDeclaration","scope":4397,"src":"3344:28:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4359,"nodeType":"UserDefinedTypeName","pathNode":{"id":4358,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3344:19:15"},"referencedDeclaration":4477,"src":"3344:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4362,"initialValue":{"id":4361,"name":"_point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"3375:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"3344:37:15"},{"assignments":[4364],"declarations":[{"constant":false,"id":4364,"mutability":"mutable","name":"bias","nameLocation":"3399:4:15","nodeType":"VariableDeclaration","scope":4397,"src":"3392:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4363,"name":"int128","nodeType":"ElementaryTypeName","src":"3392:6:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":4383,"initialValue":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4365,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3406:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":4470,"src":"3406:6:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4367,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3416:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":4472,"src":"3416:7:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4373,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3441:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3441:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":4375,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3459:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":4474,"src":"3459:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3441:22:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3433:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4371,"name":"uint128","nodeType":"ElementaryTypeName","src":"3433:7:15","typeDescriptions":{}}},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3433:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":4370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3426:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":4369,"name":"int128","nodeType":"ElementaryTypeName","src":"3426:6:15","typeDescriptions":{}}},"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3426:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3416:49:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"id":4381,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3415:51:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3406:60:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"3392:74:15"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4384,"name":"bias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"3483:4:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":4385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3490:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3483:8:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":4392,"name":"bias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"3511:4:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":4391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3503:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4390,"name":"uint128","nodeType":"ElementaryTypeName","src":"3503:7:15","typeDescriptions":{}}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3503:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":4389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3498:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4388,"name":"uint","nodeType":"ElementaryTypeName","src":"3498:4:15","typeDescriptions":{}}},"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3498:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3483:34:15","trueExpression":{"hexValue":"30","id":4387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3494:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4355,"id":4396,"nodeType":"Return","src":"3476:41:15"}]},"id":4398,"implemented":true,"kind":"function","modifiers":[],"name":"_getPointValue","nameLocation":"3255:14:15","nodeType":"FunctionDefinition","parameters":{"id":4352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4351,"mutability":"mutable","name":"_point","nameLocation":"3297:6:15","nodeType":"VariableDeclaration","scope":4398,"src":"3270:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4350,"nodeType":"UserDefinedTypeName","pathNode":{"id":4349,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3270:19:15"},"referencedDeclaration":4477,"src":"3270:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"3269:35:15"},"returnParameters":{"id":4355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4398,"src":"3328:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4353,"name":"uint","nodeType":"ElementaryTypeName","src":"3328:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3327:6:15"},"scope":4399,"src":"3246:278:15","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4400,"src":"255:3271:15","usedErrors":[]}],"src":"38:3489:15"},"id":15},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"ast":{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","exportedSymbols":{"IL2LayerZeroDelegation":[4411]},"id":4412,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4401,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:16"},{"abstract":false,"baseContracts":[],"canonicalName":"IL2LayerZeroDelegation","contractDependencies":[],"contractKind":"interface","documentation":{"id":4402,"nodeType":"StructuredDocumentation","src":"721:117:16","text":" @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain."},"fullyImplemented":false,"id":4411,"linearizedBaseContracts":[4411],"name":"IL2LayerZeroDelegation","nameLocation":"849:22:16","nodeType":"ContractDefinition","nodes":[{"functionSelector":"df130bfe","id":4407,"implemented":false,"kind":"function","modifiers":[],"name":"onVeBalBridged","nameLocation":"887:14:16","nodeType":"FunctionDefinition","parameters":{"id":4405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4404,"mutability":"mutable","name":"user","nameLocation":"910:4:16","nodeType":"VariableDeclaration","scope":4407,"src":"902:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4403,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:14:16"},"returnParameters":{"id":4406,"nodeType":"ParameterList","parameters":[],"src":"924:0:16"},"scope":4411,"src":"878:47:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"96345fb5","id":4410,"implemented":false,"kind":"function","modifiers":[],"name":"onVeBalSupplyUpdate","nameLocation":"940:19:16","nodeType":"FunctionDefinition","parameters":{"id":4408,"nodeType":"ParameterList","parameters":[],"src":"959:2:16"},"returnParameters":{"id":4409,"nodeType":"ParameterList","parameters":[],"src":"970:0:16"},"scope":4411,"src":"931:40:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4412,"src":"839:134:16","usedErrors":[]}],"src":"688:286:16"},"id":16},"contracts/interfaces/IOmniVotingEscrow.sol":{"ast":{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","exportedSymbols":{"IOmniVotingEscrow":[4465]},"id":4466,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4413,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:17"},{"abstract":false,"baseContracts":[],"canonicalName":"IOmniVotingEscrow","contractDependencies":[],"contractKind":"interface","documentation":{"id":4414,"nodeType":"StructuredDocumentation","src":"721:162:17","text":" @dev Partial voting escrow bridge interface.\n See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference."},"fullyImplemented":false,"id":4465,"linearizedBaseContracts":[4465],"name":"IOmniVotingEscrow","nameLocation":"894:17:17","nodeType":"ContractDefinition","nodes":[{"functionSelector":"65d092d0","id":4427,"implemented":false,"kind":"function","modifiers":[],"name":"estimateSendUserBalance","nameLocation":"927:23:17","nodeType":"FunctionDefinition","parameters":{"id":4421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4416,"mutability":"mutable","name":"_dstChainId","nameLocation":"958:11:17","nodeType":"VariableDeclaration","scope":4427,"src":"951:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4415,"name":"uint16","nodeType":"ElementaryTypeName","src":"951:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4418,"mutability":"mutable","name":"_useZro","nameLocation":"976:7:17","nodeType":"VariableDeclaration","scope":4427,"src":"971:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4417,"name":"bool","nodeType":"ElementaryTypeName","src":"971:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4420,"mutability":"mutable","name":"_adapterParams","nameLocation":"1000:14:17","nodeType":"VariableDeclaration","scope":4427,"src":"985:29:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4419,"name":"bytes","nodeType":"ElementaryTypeName","src":"985:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"950:65:17"},"returnParameters":{"id":4426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4423,"mutability":"mutable","name":"nativeFee","nameLocation":"1044:9:17","nodeType":"VariableDeclaration","scope":4427,"src":"1039:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4422,"name":"uint","nodeType":"ElementaryTypeName","src":"1039:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4425,"mutability":"mutable","name":"zroFee","nameLocation":"1060:6:17","nodeType":"VariableDeclaration","scope":4427,"src":"1055:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4424,"name":"uint","nodeType":"ElementaryTypeName","src":"1055:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1038:29:17"},"scope":4465,"src":"918:150:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16334c8f","id":4440,"implemented":false,"kind":"function","modifiers":[],"name":"estimateSendTotalSupply","nameLocation":"1083:23:17","nodeType":"FunctionDefinition","parameters":{"id":4434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4429,"mutability":"mutable","name":"_dstChainId","nameLocation":"1114:11:17","nodeType":"VariableDeclaration","scope":4440,"src":"1107:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4428,"name":"uint16","nodeType":"ElementaryTypeName","src":"1107:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4431,"mutability":"mutable","name":"_useZro","nameLocation":"1132:7:17","nodeType":"VariableDeclaration","scope":4440,"src":"1127:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4430,"name":"bool","nodeType":"ElementaryTypeName","src":"1127:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4433,"mutability":"mutable","name":"_adapterParams","nameLocation":"1156:14:17","nodeType":"VariableDeclaration","scope":4440,"src":"1141:29:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4432,"name":"bytes","nodeType":"ElementaryTypeName","src":"1141:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1106:65:17"},"returnParameters":{"id":4439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4436,"mutability":"mutable","name":"nativeFee","nameLocation":"1200:9:17","nodeType":"VariableDeclaration","scope":4440,"src":"1195:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4435,"name":"uint","nodeType":"ElementaryTypeName","src":"1195:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4438,"mutability":"mutable","name":"zroFee","nameLocation":"1216:6:17","nodeType":"VariableDeclaration","scope":4440,"src":"1211:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4437,"name":"uint","nodeType":"ElementaryTypeName","src":"1211:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1194:29:17"},"scope":4465,"src":"1074:150:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4a759489","id":4453,"implemented":false,"kind":"function","modifiers":[],"name":"sendUserBalance","nameLocation":"1239:15:17","nodeType":"FunctionDefinition","parameters":{"id":4451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4442,"mutability":"mutable","name":"_localUser","nameLocation":"1263:10:17","nodeType":"VariableDeclaration","scope":4453,"src":"1255:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4441,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4444,"mutability":"mutable","name":"_dstChainId","nameLocation":"1282:11:17","nodeType":"VariableDeclaration","scope":4453,"src":"1275:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4443,"name":"uint16","nodeType":"ElementaryTypeName","src":"1275:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4446,"mutability":"mutable","name":"_refundAddress","nameLocation":"1311:14:17","nodeType":"VariableDeclaration","scope":4453,"src":"1295:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4445,"name":"address","nodeType":"ElementaryTypeName","src":"1295:15:17","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4448,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1335:18:17","nodeType":"VariableDeclaration","scope":4453,"src":"1327:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4447,"name":"address","nodeType":"ElementaryTypeName","src":"1327:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4450,"mutability":"mutable","name":"_adapterParams","nameLocation":"1368:14:17","nodeType":"VariableDeclaration","scope":4453,"src":"1355:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4449,"name":"bytes","nodeType":"ElementaryTypeName","src":"1355:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1254:129:17"},"returnParameters":{"id":4452,"nodeType":"ParameterList","parameters":[],"src":"1400:0:17"},"scope":4465,"src":"1230:171:17","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"416b154a","id":4464,"implemented":false,"kind":"function","modifiers":[],"name":"sendTotalSupply","nameLocation":"1416:15:17","nodeType":"FunctionDefinition","parameters":{"id":4462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4455,"mutability":"mutable","name":"_dstChainId","nameLocation":"1439:11:17","nodeType":"VariableDeclaration","scope":4464,"src":"1432:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4454,"name":"uint16","nodeType":"ElementaryTypeName","src":"1432:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4457,"mutability":"mutable","name":"_refundAddress","nameLocation":"1468:14:17","nodeType":"VariableDeclaration","scope":4464,"src":"1452:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4456,"name":"address","nodeType":"ElementaryTypeName","src":"1452:15:17","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4459,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1492:18:17","nodeType":"VariableDeclaration","scope":4464,"src":"1484:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4458,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4461,"mutability":"mutable","name":"_adapterParams","nameLocation":"1525:14:17","nodeType":"VariableDeclaration","scope":4464,"src":"1512:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4460,"name":"bytes","nodeType":"ElementaryTypeName","src":"1512:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1431:109:17"},"returnParameters":{"id":4463,"nodeType":"ParameterList","parameters":[],"src":"1557:0:17"},"scope":4465,"src":"1407:151:17","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":4466,"src":"884:676:17","usedErrors":[]}],"src":"688:873:17"},"id":17},"contracts/interfaces/IVotingEscrow.sol":{"ast":{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","exportedSymbols":{"IVotingEscrow":[4518]},"id":4519,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4467,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:18"},{"id":4468,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:18"},{"abstract":false,"baseContracts":[],"canonicalName":"IVotingEscrow","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4518,"linearizedBaseContracts":[4518],"name":"IVotingEscrow","nameLocation":"93:13:18","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IVotingEscrow.Point","id":4477,"members":[{"constant":false,"id":4470,"mutability":"mutable","name":"bias","nameLocation":"143:4:18","nodeType":"VariableDeclaration","scope":4477,"src":"136:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4469,"name":"int128","nodeType":"ElementaryTypeName","src":"136:6:18","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":4472,"mutability":"mutable","name":"slope","nameLocation":"164:5:18","nodeType":"VariableDeclaration","scope":4477,"src":"157:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4471,"name":"int128","nodeType":"ElementaryTypeName","src":"157:6:18","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":4474,"mutability":"mutable","name":"ts","nameLocation":"184:2:18","nodeType":"VariableDeclaration","scope":4477,"src":"179:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4473,"name":"uint","nodeType":"ElementaryTypeName","src":"179:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4476,"mutability":"mutable","name":"blk","nameLocation":"201:3:18","nodeType":"VariableDeclaration","scope":4477,"src":"196:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4475,"name":"uint","nodeType":"ElementaryTypeName","src":"196:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Point","nameLocation":"120:5:18","nodeType":"StructDefinition","scope":4518,"src":"113:122:18","visibility":"public"},{"functionSelector":"900cf0cf","id":4482,"implemented":false,"kind":"function","modifiers":[],"name":"epoch","nameLocation":"250:5:18","nodeType":"FunctionDefinition","parameters":{"id":4478,"nodeType":"ParameterList","parameters":[],"src":"255:2:18"},"returnParameters":{"id":4481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4482,"src":"281:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4479,"name":"uint","nodeType":"ElementaryTypeName","src":"281:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"280:6:18"},"scope":4518,"src":"241:46:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"010ae757","id":4489,"implemented":false,"kind":"function","modifiers":[],"name":"user_point_epoch","nameLocation":"302:16:18","nodeType":"FunctionDefinition","parameters":{"id":4485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4484,"mutability":"mutable","name":"_user","nameLocation":"327:5:18","nodeType":"VariableDeclaration","scope":4489,"src":"319:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4483,"name":"address","nodeType":"ElementaryTypeName","src":"319:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"318:15:18"},"returnParameters":{"id":4488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4489,"src":"352:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4486,"name":"uint","nodeType":"ElementaryTypeName","src":"352:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"351:6:18"},"scope":4518,"src":"293:65:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"28d09d47","id":4499,"implemented":false,"kind":"function","modifiers":[],"name":"user_point_history","nameLocation":"373:18:18","nodeType":"FunctionDefinition","parameters":{"id":4494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4491,"mutability":"mutable","name":"_user","nameLocation":"400:5:18","nodeType":"VariableDeclaration","scope":4499,"src":"392:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4490,"name":"address","nodeType":"ElementaryTypeName","src":"392:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4493,"mutability":"mutable","name":"_epoch","nameLocation":"412:6:18","nodeType":"VariableDeclaration","scope":4499,"src":"407:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4492,"name":"uint","nodeType":"ElementaryTypeName","src":"407:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"391:28:18"},"returnParameters":{"id":4498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4499,"src":"438:12:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4496,"nodeType":"UserDefinedTypeName","pathNode":{"id":4495,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"438:5:18"},"referencedDeclaration":4477,"src":"438:5:18","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"437:14:18"},"scope":4518,"src":"364:88:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d1febfb9","id":4507,"implemented":false,"kind":"function","modifiers":[],"name":"point_history","nameLocation":"467:13:18","nodeType":"FunctionDefinition","parameters":{"id":4502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4501,"mutability":"mutable","name":"_epoch","nameLocation":"486:6:18","nodeType":"VariableDeclaration","scope":4507,"src":"481:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4500,"name":"uint","nodeType":"ElementaryTypeName","src":"481:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:13:18"},"returnParameters":{"id":4506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4507,"src":"512:12:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4504,"nodeType":"UserDefinedTypeName","pathNode":{"id":4503,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"512:5:18"},"referencedDeclaration":4477,"src":"512:5:18","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"511:14:18"},"scope":4518,"src":"458:68:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c2c4c5c1","id":4510,"implemented":false,"kind":"function","modifiers":[],"name":"checkpoint","nameLocation":"541:10:18","nodeType":"FunctionDefinition","parameters":{"id":4508,"nodeType":"ParameterList","parameters":[],"src":"551:2:18"},"returnParameters":{"id":4509,"nodeType":"ParameterList","parameters":[],"src":"562:0:18"},"scope":4518,"src":"532:31:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"adc63589","id":4517,"implemented":false,"kind":"function","modifiers":[],"name":"locked__end","nameLocation":"578:11:18","nodeType":"FunctionDefinition","parameters":{"id":4513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4512,"mutability":"mutable","name":"user","nameLocation":"598:4:18","nodeType":"VariableDeclaration","scope":4517,"src":"590:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4511,"name":"address","nodeType":"ElementaryTypeName","src":"590:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"589:14:18"},"returnParameters":{"id":4516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4517,"src":"627:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4514,"name":"uint","nodeType":"ElementaryTypeName","src":"627:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"626:6:18"},"scope":4518,"src":"569:64:18","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4519,"src":"83:552:18","usedErrors":[]}],"src":"38:598:18"},"id":18},"contracts/interfaces/IVotingEscrowRemapper.sol":{"ast":{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","exportedSymbols":{"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540]},"id":4541,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4520,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:19"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./IVotingEscrow.sol","id":4521,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4541,"sourceUnit":4519,"src":"721:29:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","file":"./IOmniVotingEscrow.sol","id":4522,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4541,"sourceUnit":4466,"src":"751:33:19","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IVotingEscrowRemapper","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4540,"linearizedBaseContracts":[4540],"name":"IVotingEscrowRemapper","nameLocation":"796:21:19","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4523,"nodeType":"StructuredDocumentation","src":"824:66:19","text":" @notice Returns Voting Escrow contract address."},"functionSelector":"08b0308a","id":4529,"implemented":false,"kind":"function","modifiers":[],"name":"getVotingEscrow","nameLocation":"904:15:19","nodeType":"FunctionDefinition","parameters":{"id":4524,"nodeType":"ParameterList","parameters":[],"src":"919:2:19"},"returnParameters":{"id":4528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4527,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4529,"src":"945:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":4526,"nodeType":"UserDefinedTypeName","pathNode":{"id":4525,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"945:13:19"},"referencedDeclaration":4518,"src":"945:13:19","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"internal"}],"src":"944:15:19"},"scope":4540,"src":"895:65:19","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4530,"nodeType":"StructuredDocumentation","src":"1919:378:19","text":" @notice Returns the remote user corresponding to an address on the local chain.\n @dev Returns `address(0)` if the remapping does not exist for the given local user.\n @param localUser - Address of the user on the local chain which are querying the remote address for.\n @param chainId - The chain ID of the network which the remote user is on."},"functionSelector":"bda75c38","id":4539,"implemented":false,"kind":"function","modifiers":[],"name":"getRemoteUser","nameLocation":"2311:13:19","nodeType":"FunctionDefinition","parameters":{"id":4535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4532,"mutability":"mutable","name":"localUser","nameLocation":"2333:9:19","nodeType":"VariableDeclaration","scope":4539,"src":"2325:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4531,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4534,"mutability":"mutable","name":"chainId","nameLocation":"2351:7:19","nodeType":"VariableDeclaration","scope":4539,"src":"2344:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4533,"name":"uint16","nodeType":"ElementaryTypeName","src":"2344:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2324:35:19"},"returnParameters":{"id":4538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4539,"src":"2383:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4536,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2382:9:19"},"scope":4540,"src":"2302:90:19","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4541,"src":"786:1608:19","usedErrors":[]}],"src":"688:1707:19"},"id":19},"contracts/mocks/ERC20Mock.sol":{"ast":{"absolutePath":"contracts/mocks/ERC20Mock.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"ERC20Mock":[4571],"IERC20":[3661],"IERC20Metadata":[3686]},"id":4572,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4542,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:20"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":4543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4572,"sourceUnit":3584,"src":"57:55:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4544,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"154:5:20"},"id":4545,"nodeType":"InheritanceSpecifier","src":"154:5:20"}],"canonicalName":"ERC20Mock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4571,"linearizedBaseContracts":[4571,3583,3686,3661,3708],"name":"ERC20Mock","nameLocation":"141:9:20","nodeType":"ContractDefinition","nodes":[{"body":{"id":4556,"nodeType":"Block","src":"244:2:20","statements":[]},"id":4557,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4552,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"228:5:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4553,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"235:7:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":4554,"kind":"baseConstructorSpecifier","modifierName":{"id":4551,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"222:5:20"},"nodeType":"ModifierInvocation","src":"222:21:20"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4547,"mutability":"mutable","name":"name_","nameLocation":"192:5:20","nodeType":"VariableDeclaration","scope":4557,"src":"178:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4546,"name":"string","nodeType":"ElementaryTypeName","src":"178:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4549,"mutability":"mutable","name":"symbol_","nameLocation":"213:7:20","nodeType":"VariableDeclaration","scope":4557,"src":"199:21:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4548,"name":"string","nodeType":"ElementaryTypeName","src":"199:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"177:44:20"},"returnParameters":{"id":4555,"nodeType":"ParameterList","parameters":[],"src":"244:0:20"},"scope":4571,"src":"166:80:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4569,"nodeType":"Block","src":"300:36:20","statements":[{"expression":{"arguments":[{"id":4565,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4559,"src":"316:3:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4566,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"321:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4564,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"310:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"310:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4568,"nodeType":"ExpressionStatement","src":"310:19:20"}]},"functionSelector":"40c10f19","id":4570,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"261:4:20","nodeType":"FunctionDefinition","parameters":{"id":4562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4559,"mutability":"mutable","name":"_to","nameLocation":"274:3:20","nodeType":"VariableDeclaration","scope":4570,"src":"266:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4558,"name":"address","nodeType":"ElementaryTypeName","src":"266:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4561,"mutability":"mutable","name":"_amount","nameLocation":"284:7:20","nodeType":"VariableDeclaration","scope":4570,"src":"279:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4560,"name":"uint","nodeType":"ElementaryTypeName","src":"279:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"265:27:20"},"returnParameters":{"id":4563,"nodeType":"ParameterList","parameters":[],"src":"300:0:20"},"scope":4571,"src":"252:84:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4572,"src":"132:206:20","usedErrors":[]}],"src":"32:307:20"},"id":20},"contracts/mocks/L2LayerZeroDelegation.sol":{"ast":{"absolutePath":"contracts/mocks/L2LayerZeroDelegation.sol","exportedSymbols":{"IL2LayerZeroDelegation":[4411],"L2LayerZeroDelegation":[4587]},"id":4588,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4573,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:21"},{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","file":"../interfaces/IL2LayerZeroDelegation.sol","id":4574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4588,"sourceUnit":4412,"src":"71:50:21","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4575,"name":"IL2LayerZeroDelegation","nodeType":"IdentifierPath","referencedDeclaration":4411,"src":"157:22:21"},"id":4576,"nodeType":"InheritanceSpecifier","src":"157:22:21"}],"canonicalName":"L2LayerZeroDelegation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4587,"linearizedBaseContracts":[4587,4411],"name":"L2LayerZeroDelegation","nameLocation":"132:21:21","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[4407],"body":{"id":4581,"nodeType":"Block","src":"233:2:21","statements":[]},"functionSelector":"df130bfe","id":4582,"implemented":true,"kind":"function","modifiers":[],"name":"onVeBalBridged","nameLocation":"195:14:21","nodeType":"FunctionDefinition","parameters":{"id":4579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4578,"mutability":"mutable","name":"user","nameLocation":"218:4:21","nodeType":"VariableDeclaration","scope":4582,"src":"210:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4577,"name":"address","nodeType":"ElementaryTypeName","src":"210:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"209:14:21"},"returnParameters":{"id":4580,"nodeType":"ParameterList","parameters":[],"src":"233:0:21"},"scope":4587,"src":"186:49:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4410],"body":{"id":4585,"nodeType":"Block","src":"281:2:21","statements":[]},"functionSelector":"96345fb5","id":4586,"implemented":true,"kind":"function","modifiers":[],"name":"onVeBalSupplyUpdate","nameLocation":"250:19:21","nodeType":"FunctionDefinition","parameters":{"id":4583,"nodeType":"ParameterList","parameters":[],"src":"269:2:21"},"returnParameters":{"id":4584,"nodeType":"ParameterList","parameters":[],"src":"281:0:21"},"scope":4587,"src":"241:42:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4588,"src":"123:162:21","usedErrors":[]}],"src":"46:240:21"},"id":21},"contracts/mocks/LZEndpointMock.sol":{"ast":{"absolutePath":"contracts/mocks/LZEndpointMock.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LZEndpointMock":[2453],"LZMock":[4603],"LzLib":[427]},"id":4604,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4589,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:22"},{"id":4590,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:22"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","file":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","id":4591,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4604,"sourceUnit":2454,"src":"83:77:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4592,"name":"LZEndpointMock","nodeType":"IdentifierPath","referencedDeclaration":2453,"src":"787:14:22"},"id":4593,"nodeType":"InheritanceSpecifier","src":"787:14:22"}],"canonicalName":"LZMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4603,"linearizedBaseContracts":[4603,2453,144,189],"name":"LZMock","nameLocation":"777:6:22","nodeType":"ContractDefinition","nodes":[{"body":{"id":4601,"nodeType":"Block","src":"862:2:22","statements":[]},"id":4602,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4598,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4595,"src":"852:8:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":4599,"kind":"baseConstructorSpecifier","modifierName":{"id":4597,"name":"LZEndpointMock","nodeType":"IdentifierPath","referencedDeclaration":2453,"src":"837:14:22"},"nodeType":"ModifierInvocation","src":"837:24:22"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4595,"mutability":"mutable","name":"_chainId","nameLocation":"827:8:22","nodeType":"VariableDeclaration","scope":4602,"src":"820:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4594,"name":"uint16","nodeType":"ElementaryTypeName","src":"820:6:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"819:17:22"},"returnParameters":{"id":4600,"nodeType":"ParameterList","parameters":[],"src":"862:0:22"},"scope":4603,"src":"808:56:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4604,"src":"768:98:22","usedErrors":[]}],"src":"38:829:22"},"id":22},"contracts/mocks/MockToken.sol":{"ast":{"absolutePath":"contracts/mocks/MockToken.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"IERC20":[3661],"IERC20Metadata":[3686],"MockToken":[4644]},"id":4645,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4605,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"33:23:23"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":4606,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4645,"sourceUnit":3584,"src":"58:55:23","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4607,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"155:5:23"},"id":4608,"nodeType":"InheritanceSpecifier","src":"155:5:23"}],"canonicalName":"MockToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4644,"linearizedBaseContracts":[4644,3583,3686,3661,3708],"name":"MockToken","nameLocation":"142:9:23","nodeType":"ContractDefinition","nodes":[{"body":{"id":4629,"nodeType":"Block","src":"267:84:23","statements":[{"expression":{"arguments":[{"expression":{"id":4620,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"283:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"283:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"},"id":4626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"315f3030305f3030305f303030","id":4622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295:13:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1_000_000_000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":4625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":4624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"315:2:23","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"311:6:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"295:22:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"}],"id":4619,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"277:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"277:41:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4628,"nodeType":"ExpressionStatement","src":"277:41:23"}]},"id":4630,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4615,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"251:5:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4616,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"258:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":4617,"kind":"baseConstructorSpecifier","modifierName":{"id":4614,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"245:5:23"},"nodeType":"ModifierInvocation","src":"245:21:23"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4610,"mutability":"mutable","name":"name_","nameLocation":"215:5:23","nodeType":"VariableDeclaration","scope":4630,"src":"201:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4609,"name":"string","nodeType":"ElementaryTypeName","src":"201:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4612,"mutability":"mutable","name":"symbol_","nameLocation":"236:7:23","nodeType":"VariableDeclaration","scope":4630,"src":"222:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4611,"name":"string","nodeType":"ElementaryTypeName","src":"222:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"200:44:23"},"returnParameters":{"id":4618,"nodeType":"ParameterList","parameters":[],"src":"267:0:23"},"scope":4644,"src":"189:162:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4642,"nodeType":"Block","src":"427:36:23","statements":[{"expression":{"arguments":[{"id":4638,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4632,"src":"443:3:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4639,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4634,"src":"448:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4637,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"437:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"437:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4641,"nodeType":"ExpressionStatement","src":"437:19:23"}]},"functionSelector":"40c10f19","id":4643,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"388:4:23","nodeType":"FunctionDefinition","parameters":{"id":4635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4632,"mutability":"mutable","name":"_to","nameLocation":"401:3:23","nodeType":"VariableDeclaration","scope":4643,"src":"393:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4631,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4634,"mutability":"mutable","name":"_amount","nameLocation":"411:7:23","nodeType":"VariableDeclaration","scope":4643,"src":"406:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4633,"name":"uint","nodeType":"ElementaryTypeName","src":"406:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:27:23"},"returnParameters":{"id":4636,"nodeType":"ParameterList","parameters":[],"src":"427:0:23"},"scope":4644,"src":"379:84:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4645,"src":"133:332:23","usedErrors":[]}],"src":"33:433:23"},"id":23},"contracts/mocks/VotingEscrowRemapperMock.sol":{"ast":{"absolutePath":"contracts/mocks/VotingEscrowRemapperMock.sol","exportedSymbols":{"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540],"VotingEscrowRemapperMock":[4704]},"id":4705,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4646,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:24"},{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","file":"../interfaces/IVotingEscrowRemapper.sol","id":4647,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4705,"sourceUnit":4541,"src":"71:49:24","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4648,"name":"IVotingEscrowRemapper","nodeType":"IdentifierPath","referencedDeclaration":4540,"src":"159:21:24"},"id":4649,"nodeType":"InheritanceSpecifier","src":"159:21:24"}],"canonicalName":"VotingEscrowRemapperMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4704,"linearizedBaseContracts":[4704,4540],"name":"VotingEscrowRemapperMock","nameLocation":"131:24:24","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[4529],"constant":false,"functionSelector":"08b0308a","id":4652,"mutability":"mutable","name":"getVotingEscrow","nameLocation":"208:15:24","nodeType":"VariableDeclaration","scope":4704,"src":"187:36:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":4651,"nodeType":"UserDefinedTypeName","pathNode":{"id":4650,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"187:13:24"},"referencedDeclaration":4518,"src":"187:13:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"public"},{"constant":false,"functionSelector":"e996a306","id":4658,"mutability":"mutable","name":"_localToRemoteAddressMap","nameLocation":"284:24:24","nodeType":"VariableDeclaration","scope":4704,"src":"230:78:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"},"typeName":{"id":4657,"keyType":{"id":4653,"name":"uint16","nodeType":"ElementaryTypeName","src":"238:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"230:46:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"},"valueType":{"id":4656,"keyType":{"id":4654,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"248:27:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":4655,"name":"address","nodeType":"ElementaryTypeName","src":"267:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"public"},{"body":{"id":4669,"nodeType":"Block","src":"350:63:24","statements":[{"expression":{"id":4667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4663,"name":"getVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"360:15:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4665,"name":"_votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"392:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4664,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"378:13:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"378:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"src":"360:46:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4668,"nodeType":"ExpressionStatement","src":"360:46:24"}]},"id":4670,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4660,"mutability":"mutable","name":"_votingEscrow","nameLocation":"335:13:24","nodeType":"VariableDeclaration","scope":4670,"src":"327:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4659,"name":"address","nodeType":"ElementaryTypeName","src":"327:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"326:23:24"},"returnParameters":{"id":4662,"nodeType":"ParameterList","parameters":[],"src":"350:0:24"},"scope":4704,"src":"315:98:24","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4539],"body":{"id":4685,"nodeType":"Block","src":"514:73:24","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":4679,"name":"_localToRemoteAddressMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"531:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"}},"id":4681,"indexExpression":{"id":4680,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4674,"src":"556:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"531:37:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4683,"indexExpression":{"id":4682,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4672,"src":"569:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"531:49:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4678,"id":4684,"nodeType":"Return","src":"524:56:24"}]},"functionSelector":"bda75c38","id":4686,"implemented":true,"kind":"function","modifiers":[],"name":"getRemoteUser","nameLocation":"428:13:24","nodeType":"FunctionDefinition","parameters":{"id":4675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4672,"mutability":"mutable","name":"_localUser","nameLocation":"450:10:24","nodeType":"VariableDeclaration","scope":4686,"src":"442:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4671,"name":"address","nodeType":"ElementaryTypeName","src":"442:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4674,"mutability":"mutable","name":"_dstChainId","nameLocation":"469:11:24","nodeType":"VariableDeclaration","scope":4686,"src":"462:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4673,"name":"uint16","nodeType":"ElementaryTypeName","src":"462:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"441:40:24"},"returnParameters":{"id":4678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4686,"src":"505:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4676,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"504:9:24"},"scope":4704,"src":"419:168:24","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4702,"nodeType":"Block","src":"666:80:24","statements":[{"expression":{"id":4700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4693,"name":"_localToRemoteAddressMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"676:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"}},"id":4697,"indexExpression":{"id":4694,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4690,"src":"701:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"676:37:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4698,"indexExpression":{"expression":{"id":4695,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"714:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"714:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"676:49:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4699,"name":"_remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4688,"src":"728:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"676:63:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4701,"nodeType":"ExpressionStatement","src":"676:63:24"}]},"functionSelector":"d0ff58ba","id":4703,"implemented":true,"kind":"function","modifiers":[],"name":"setRemoteUser","nameLocation":"602:13:24","nodeType":"FunctionDefinition","parameters":{"id":4691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4688,"mutability":"mutable","name":"_remoteUser","nameLocation":"624:11:24","nodeType":"VariableDeclaration","scope":4703,"src":"616:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4687,"name":"address","nodeType":"ElementaryTypeName","src":"616:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4690,"mutability":"mutable","name":"_dstChainId","nameLocation":"644:11:24","nodeType":"VariableDeclaration","scope":4703,"src":"637:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4689,"name":"uint16","nodeType":"ElementaryTypeName","src":"637:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"615:41:24"},"returnParameters":{"id":4692,"nodeType":"ParameterList","parameters":[],"src":"666:0:24"},"scope":4704,"src":"593:153:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4705,"src":"122:626:24","usedErrors":[]}],"src":"46:703:24"},"id":24}},"contracts":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"ILayerZeroEndpoint":{"abi":[{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParam","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_destination","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParam\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_destination\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":\"ILayerZeroEndpoint\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"ILayerZeroReceiver":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"lzReceive(uint16,bytes,uint64,bytes)":"001d3567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"ILayerZeroUserApplicationConfig":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"forceResumeReceive(uint16,bytes)":"42d65a8d","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":\"ILayerZeroUserApplicationConfig\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"LzLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dd45bb7c68d1288aa6bf57d783daed5fa71495dee80aa29d6f8790585ee1534164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD GASLIMIT 0xBB PUSH29 0x68D1288AA6BF57D783DAED5FA71495DEE80AA29D6F8790585EE1534164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"98:3212:3:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;98:3212:3;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dd45bb7c68d1288aa6bf57d783daed5fa71495dee80aa29d6f8790585ee1534164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD GASLIMIT 0xBB PUSH29 0x68D1288AA6BF57D783DAED5FA71495DEE80AA29D6F8790585EE1534164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"98:3212:3:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addressToBytes32(address)":"infinite","buildAdapterParams(struct LzLib.AirdropParams memory,uint256)":"infinite","buildAirdropAdapterParams(uint256,struct LzLib.AirdropParams memory)":"infinite","buildDefaultAdapterParams(uint256)":"infinite","bytes32ToAddress(bytes32)":"infinite","decodeAdapterParams(bytes memory)":"infinite","getGasLimit(bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":\"LzLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"LzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":\"LzApp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"precrime","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"NonblockingLzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":\"NonblockingLzApp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"LZEndpointMock":{"abi":[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ValueTransferFailed","type":"event"},{"inputs":[],"name":"blockNextMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdapterParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getLengthOfQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lzEndpointLookup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"msgsToDeliver","outputs":[{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMsgBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeConfig","outputs":[{"internalType":"uint256","name":"zroFee","type":"uint256"},{"internalType":"uint256","name":"nativeBP","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerFeeConfig","outputs":[{"internalType":"uint128","name":"dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"baseGas","type":"uint64"},{"internalType":"uint64","name":"gasPerByte","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"setDefaultAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destAddr","type":"address"},{"internalType":"address","name":"lzEndpointAddr","type":"address"}],"name":"setDestLzEndpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleFee","type":"uint256"}],"name":"setOracleFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"},{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"_dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"_dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"_baseGas","type":"uint64"},{"internalType":"uint64","name":"_gasPerByte","type":"uint64"}],"name":"setRelayerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1343":{"entryPoint":null,"id":1343,"parameterSlots":1,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":296,"id":258,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"extract_byte_array_length":{"entryPoint":548,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:958:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"94:196:25","statements":[{"body":{"nodeType":"YulBlock","src":"140:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"149:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"152:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"142:6:25"},"nodeType":"YulFunctionCall","src":"142:12:25"},"nodeType":"YulExpressionStatement","src":"142:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"115:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"124:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"111:3:25"},"nodeType":"YulFunctionCall","src":"111:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"136:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"107:3:25"},"nodeType":"YulFunctionCall","src":"107:32:25"},"nodeType":"YulIf","src":"104:52:25"},{"nodeType":"YulVariableDeclaration","src":"165:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"184:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"178:5:25"},"nodeType":"YulFunctionCall","src":"178:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"246:6:25"},"nodeType":"YulFunctionCall","src":"246:12:25"},"nodeType":"YulExpressionStatement","src":"246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"234:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"223:3:25"},"nodeType":"YulFunctionCall","src":"223:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"213:2:25"},"nodeType":"YulFunctionCall","src":"213:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"206:6:25"},"nodeType":"YulFunctionCall","src":"206:37:25"},"nodeType":"YulIf","src":"203:57:25"},{"nodeType":"YulAssignment","src":"269:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"279:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"269:6:25"}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"60:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"71:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"83:6:25","type":""}],"src":"14:276:25"},{"body":{"nodeType":"YulBlock","src":"440:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"457:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"475:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"488:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"493:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"484:3:25"},"nodeType":"YulFunctionCall","src":"484:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"462:3:25"},"nodeType":"YulFunctionCall","src":"462:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"450:6:25"},"nodeType":"YulFunctionCall","src":"450:51:25"},"nodeType":"YulExpressionStatement","src":"450:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"521:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"526:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"530:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"510:6:25"},"nodeType":"YulFunctionCall","src":"510:27:25"},"nodeType":"YulExpressionStatement","src":"510:27:25"},{"nodeType":"YulAssignment","src":"546:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"557:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"562:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"553:3:25"},"nodeType":"YulFunctionCall","src":"553:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"546:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"408:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"413:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"421:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"432:3:25","type":""}],"src":"295:276:25"},{"body":{"nodeType":"YulBlock","src":"631:325:25","statements":[{"nodeType":"YulAssignment","src":"641:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"655:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"658:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"651:3:25"},"nodeType":"YulFunctionCall","src":"651:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"641:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"672:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"702:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"698:3:25"},"nodeType":"YulFunctionCall","src":"698:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"676:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"749:31:25","statements":[{"nodeType":"YulAssignment","src":"751:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"765:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"773:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"751:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"729:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"722:6:25"},"nodeType":"YulFunctionCall","src":"722:26:25"},"nodeType":"YulIf","src":"719:61:25"},{"body":{"nodeType":"YulBlock","src":"839:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"860:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"867:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"872:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"863:3:25"},"nodeType":"YulFunctionCall","src":"863:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"853:6:25"},"nodeType":"YulFunctionCall","src":"853:31:25"},"nodeType":"YulExpressionStatement","src":"853:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"907:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"897:6:25"},"nodeType":"YulFunctionCall","src":"897:15:25"},"nodeType":"YulExpressionStatement","src":"897:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"932:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"925:6:25"},"nodeType":"YulFunctionCall","src":"925:15:25"},"nodeType":"YulExpressionStatement","src":"925:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"795:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"826:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"815:2:25"},"nodeType":"YulFunctionCall","src":"815:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"792:2:25"},"nodeType":"YulFunctionCall","src":"792:38:25"},"nodeType":"YulIf","src":"789:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"611:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"620:6:25","type":""}],"src":"576:380:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff19166101011790553480156200002057600080fd5b50604051620030b7380380620030b78339810160408190526200004391620001f7565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e8918301829052600455600555662386f26fc100006006556200010a9062030d409062000128811b62001c9d17901c565b8051620001209160079160209091019062000151565b505062000261565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b8280546200015f9062000224565b90600052602060002090601f016020900481019282620001835760008555620001ce565b82601f106200019e57805160ff1916838001178555620001ce565b82800160010185558215620001ce579182015b82811115620001ce578251825591602001919060010190620001b1565b50620001dc929150620001e0565b5090565b5b80821115620001dc5760008155600101620001e1565b6000602082840312156200020a57600080fd5b815161ffff811681146200021d57600080fd5b9392505050565b600181811c908216806200023957607f821691505b602082108114156200025b57634e487b7160e01b600052602260045260246000fd5b50919050565b612e4680620002716000396000f3fe60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220384edda9ae8a264ade4ab6af65ffc5d1d0b63daa1521cc15633806bc2a19631664736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x30B7 CODESIZE SUB DUP1 PUSH3 0x30B7 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x43 SWAP2 PUSH3 0x1F7 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP4 AND OR DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH5 0x2540BE400 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0x8AC7230489E80000 DUP3 DUP5 ADD MSTORE PUSH1 0x64 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH21 0x2540BE400000000000000000000000002540BE400 PUSH1 0x2 SSTORE PUSH25 0x1000000000000006400000000000000008AC7230489E80000 PUSH1 0x3 SSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH8 0xDE0B6B3A7640000 DUP1 DUP3 MSTORE PUSH2 0x3E8 SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x4 SSTORE PUSH1 0x5 SSTORE PUSH7 0x2386F26FC10000 PUSH1 0x6 SSTORE PUSH3 0x10A SWAP1 PUSH3 0x30D40 SWAP1 PUSH3 0x128 DUP2 SHL PUSH3 0x1C9D OR SWAP1 SHR JUMP JUMPDEST DUP1 MLOAD PUSH3 0x120 SWAP2 PUSH1 0x7 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x151 JUMP JUMPDEST POP POP PUSH3 0x261 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x15F SWAP1 PUSH3 0x224 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x183 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1CE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x19E JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1CE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1CE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1CE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B1 JUMP JUMPDEST POP PUSH3 0x1DC SWAP3 SWAP2 POP PUSH3 0x1E0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH3 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x239 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E46 DUP1 PUSH3 0x271 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x4E 0xDD 0xA9 0xAE DUP11 0x26 0x4A 0xDE 0x4A 0xB6 0xAF PUSH6 0xFFC5D1D0B63D 0xAA ISZERO 0x21 0xCC ISZERO PUSH4 0x3806BC2A NOT PUSH4 0x1664736F PUSH13 0x634300080A0033000000000000 ","sourceMap":"817:15467:6:-:0;;;1950:38;;;-1:-1:-1;;1994:41:6;;;;;3379:530;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3418:11;:22;;-1:-1:-1;;3418:22:6;;;;;;;3493:222;;;;;;;;3539:4;3493:222;;;;;;;;;;;3647:4;3493:222;;;;3674:3;3493:222;;;;;;;;;;;;3474:241;:16;:241;;;;3745:49;;;;;;;;3772:4;3745:49;;;3788:4;3745:49;;;;;;3725:17;:69;;;3826:4;3814:9;:16;3863:39;;3895:6;;3863:31;;;;;:39;;:::i;:::-;3840:62;;;;:20;;:62;;;;;;:::i;:::-;;3379:530;817:15467;;918:238:3;1114:35;;;-1:-1:-1;;;1114:35:3;;;450:51:25;517:11;;;;510:27;;;;1114:35:3;;;;;;;;;;553:12:25;;1114:35:3;;;918:238::o;817:15467:6:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:15467:6;;;-1:-1:-1;817:15467:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:276:25;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:6;227:5;223:18;216:5;213:29;203:57;;256:1;253;246:12;203:57;279:5;14:276;-1:-1:-1;;;14:276:25:o;576:380::-;655:1;651:12;;;;698;;;719:61;;773:4;765:6;761:17;751:27;;719:61;826:2;818:6;815:14;795:18;792:38;789:161;;;872:10;867:3;863:20;860:1;853:31;907:4;904:1;897:15;935:4;932:1;925:15;789:161;;576:380;;;:::o;:::-;817:15467:6;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_2326":{"entryPoint":7837,"id":2326,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_2356":{"entryPoint":7776,"id":2356,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_2452":{"entryPoint":7366,"id":2452,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_2175":{"entryPoint":null,"id":2175,"parameterSlots":0,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":7325,"id":258,"parameterSlots":1,"returnSlots":1},"@decodeAdapterParams_375":{"entryPoint":8340,"id":375,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_1168":{"entryPoint":2595,"id":1168,"parameterSlots":0,"returnSlots":0},"@estimateFees_1824":{"entryPoint":2737,"id":1824,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_2150":{"entryPoint":2992,"id":2150,"parameterSlots":3,"returnSlots":0},"@getChainId_1833":{"entryPoint":null,"id":1833,"parameterSlots":0,"returnSlots":1},"@getConfig_2029":{"entryPoint":null,"id":2029,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_1743":{"entryPoint":7256,"id":1743,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_2167":{"entryPoint":3319,"id":2167,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_1760":{"entryPoint":null,"id":1760,"parameterSlots":2,"returnSlots":1},"@getReceiveLibraryAddress_1990":{"entryPoint":null,"id":1990,"parameterSlots":1,"returnSlots":1},"@getReceiveVersion_2051":{"entryPoint":null,"id":2051,"parameterSlots":1,"returnSlots":1},"@getSendLibraryAddress_1976":{"entryPoint":null,"id":1976,"parameterSlots":1,"returnSlots":1},"@getSendVersion_2040":{"entryPoint":null,"id":2040,"parameterSlots":1,"returnSlots":1},"@hasStoredPayload_1962":{"entryPoint":2272,"id":1962,"parameterSlots":3,"returnSlots":1},"@inboundNonce_1174":{"entryPoint":null,"id":1174,"parameterSlots":0,"returnSlots":0},"@isReceivingPayload_2012":{"entryPoint":null,"id":2012,"parameterSlots":0,"returnSlots":1},"@isSendingPayload_2001":{"entryPoint":null,"id":2001,"parameterSlots":0,"returnSlots":1},"@lzEndpointLookup_1154":{"entryPoint":null,"id":1154,"parameterSlots":0,"returnSlots":0},"@mockChainId_1156":{"entryPoint":null,"id":1156,"parameterSlots":0,"returnSlots":0},"@msgsToDeliver_1195":{"entryPoint":2342,"id":1195,"parameterSlots":0,"returnSlots":0},"@nextMsgBlocked_1158":{"entryPoint":null,"id":1158,"parameterSlots":0,"returnSlots":0},"@oracleFee_1166":{"entryPoint":null,"id":1166,"parameterSlots":0,"returnSlots":0},"@outboundNonce_1180":{"entryPoint":null,"id":1180,"parameterSlots":0,"returnSlots":0},"@protocolFeeConfig_1164":{"entryPoint":null,"id":1164,"parameterSlots":0,"returnSlots":0},"@receivePayload_1726":{"entryPoint":3913,"id":1726,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_1161":{"entryPoint":null,"id":1161,"parameterSlots":0,"returnSlots":0},"@retryPayload_1934":{"entryPoint":3379,"id":1934,"parameterSlots":5,"returnSlots":0},"@send_1519":{"entryPoint":5798,"id":1519,"parameterSlots":7,"returnSlots":0},"@setConfig_2064":{"entryPoint":null,"id":2064,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_2273":{"entryPoint":7233,"id":2273,"parameterSlots":1,"returnSlots":0},"@setDestLzEndpoint_2189":{"entryPoint":null,"id":2189,"parameterSlots":2,"returnSlots":0},"@setOracleFee_2263":{"entryPoint":null,"id":2263,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_2253":{"entryPoint":null,"id":2253,"parameterSlots":2,"returnSlots":0},"@setReceiveVersion_2078":{"entryPoint":null,"id":2078,"parameterSlots":1,"returnSlots":0},"@setRelayerPrice_2233":{"entryPoint":null,"id":2233,"parameterSlots":5,"returnSlots":0},"@setSendVersion_2071":{"entryPoint":null,"id":2071,"parameterSlots":1,"returnSlots":0},"@storedPayload_1187":{"entryPoint":null,"id":1187,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":9058,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":9029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":10242,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":10826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":9696,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":8981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":10034,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":9797,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9130,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":10272,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":10089,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":9957,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":10447,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":9374,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10749,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":10646,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":10217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":9597,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint128":{"entryPoint":9650,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint16":{"entryPoint":8958,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":9673,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":11007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10886,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9537,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11048,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11339,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed":{"entryPoint":11155,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11078,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11695,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11453,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10983,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":11657,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11590,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":11610,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11267,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":10902,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":11312,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint64":{"entryPoint":11228,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10961,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11568,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":11770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11290,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9212,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9008,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:26605:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"143:119:25","statements":[{"nodeType":"YulAssignment","src":"153:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"165:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"176:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"161:3:25"},"nodeType":"YulFunctionCall","src":"161:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"153:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"206:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"188:6:25"},"nodeType":"YulFunctionCall","src":"188:25:25"},"nodeType":"YulExpressionStatement","src":"188:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"233:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"229:3:25"},"nodeType":"YulFunctionCall","src":"229:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"249:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"222:6:25"},"nodeType":"YulFunctionCall","src":"222:34:25"},"nodeType":"YulExpressionStatement","src":"222:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"115:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"123:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"134:4:25","type":""}],"src":"14:248:25"},{"body":{"nodeType":"YulBlock","src":"315:111:25","statements":[{"nodeType":"YulAssignment","src":"325:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"325:5:25"}]},{"body":{"nodeType":"YulBlock","src":"404:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"413:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"416:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"406:6:25"},"nodeType":"YulFunctionCall","src":"406:12:25"},"nodeType":"YulExpressionStatement","src":"406:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"376:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"387:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"394:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"383:3:25"},"nodeType":"YulFunctionCall","src":"383:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"373:2:25"},"nodeType":"YulFunctionCall","src":"373:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"366:6:25"},"nodeType":"YulFunctionCall","src":"366:37:25"},"nodeType":"YulIf","src":"363:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"294:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"305:5:25","type":""}],"src":"267:159:25"},{"body":{"nodeType":"YulBlock","src":"500:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"546:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"555:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"558:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"548:6:25"},"nodeType":"YulFunctionCall","src":"548:12:25"},"nodeType":"YulExpressionStatement","src":"548:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"521:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"530:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"542:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"513:3:25"},"nodeType":"YulFunctionCall","src":"513:32:25"},"nodeType":"YulIf","src":"510:52:25"},{"nodeType":"YulAssignment","src":"571:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"599:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"581:17:25"},"nodeType":"YulFunctionCall","src":"581:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"571:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"466:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"477:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"489:6:25","type":""}],"src":"431:184:25"},{"body":{"nodeType":"YulBlock","src":"665:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"729:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"738:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"741:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"731:6:25"},"nodeType":"YulFunctionCall","src":"731:12:25"},"nodeType":"YulExpressionStatement","src":"731:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"699:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"714:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"719:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"710:3:25"},"nodeType":"YulFunctionCall","src":"710:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"723:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"706:3:25"},"nodeType":"YulFunctionCall","src":"706:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"695:3:25"},"nodeType":"YulFunctionCall","src":"695:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"685:2:25"},"nodeType":"YulFunctionCall","src":"685:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:50:25"},"nodeType":"YulIf","src":"675:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"654:5:25","type":""}],"src":"620:131:25"},{"body":{"nodeType":"YulBlock","src":"826:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"872:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"881:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"884:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"874:6:25"},"nodeType":"YulFunctionCall","src":"874:12:25"},"nodeType":"YulExpressionStatement","src":"874:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"847:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"843:3:25"},"nodeType":"YulFunctionCall","src":"843:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"868:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"839:3:25"},"nodeType":"YulFunctionCall","src":"839:32:25"},"nodeType":"YulIf","src":"836:52:25"},{"nodeType":"YulVariableDeclaration","src":"897:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"910:12:25"},"nodeType":"YulFunctionCall","src":"910:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"901:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"967:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"942:24:25"},"nodeType":"YulFunctionCall","src":"942:31:25"},"nodeType":"YulExpressionStatement","src":"942:31:25"},{"nodeType":"YulAssignment","src":"982:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"992:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"792:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"803:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"815:6:25","type":""}],"src":"756:247:25"},{"body":{"nodeType":"YulBlock","src":"1107:89:25","statements":[{"nodeType":"YulAssignment","src":"1117:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1129:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1125:3:25"},"nodeType":"YulFunctionCall","src":"1125:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1117:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1159:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1174:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1182:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1170:3:25"},"nodeType":"YulFunctionCall","src":"1170:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1152:6:25"},"nodeType":"YulFunctionCall","src":"1152:38:25"},"nodeType":"YulExpressionStatement","src":"1152:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1076:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1087:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1098:4:25","type":""}],"src":"1008:188:25"},{"body":{"nodeType":"YulBlock","src":"1273:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"1322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1324:6:25"},"nodeType":"YulFunctionCall","src":"1324:12:25"},"nodeType":"YulExpressionStatement","src":"1324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1309:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1297:3:25"},"nodeType":"YulFunctionCall","src":"1297:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"1316:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1293:3:25"},"nodeType":"YulFunctionCall","src":"1293:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1286:6:25"},"nodeType":"YulFunctionCall","src":"1286:35:25"},"nodeType":"YulIf","src":"1283:55:25"},{"nodeType":"YulAssignment","src":"1347:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1357:12:25"},"nodeType":"YulFunctionCall","src":"1357:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1347:6:25"}]},{"body":{"nodeType":"YulBlock","src":"1420:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1429:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1432:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1422:6:25"},"nodeType":"YulFunctionCall","src":"1422:12:25"},"nodeType":"YulExpressionStatement","src":"1422:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1392:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1400:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:25"},"nodeType":"YulFunctionCall","src":"1389:30:25"},"nodeType":"YulIf","src":"1386:50:25"},{"nodeType":"YulAssignment","src":"1445:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1461:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1457:3:25"},"nodeType":"YulFunctionCall","src":"1457:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1445:8:25"}]},{"body":{"nodeType":"YulBlock","src":"1526:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1535:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1538:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1528:6:25"},"nodeType":"YulFunctionCall","src":"1528:12:25"},"nodeType":"YulExpressionStatement","src":"1528:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1497:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"1505:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"1514:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1489:3:25"},"nodeType":"YulFunctionCall","src":"1489:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"1521:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1486:2:25"},"nodeType":"YulFunctionCall","src":"1486:39:25"},"nodeType":"YulIf","src":"1483:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1236:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"1244:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1252:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"1262:6:25","type":""}],"src":"1201:347:25"},{"body":{"nodeType":"YulBlock","src":"1658:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"1704:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1713:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1706:6:25"},"nodeType":"YulFunctionCall","src":"1706:12:25"},"nodeType":"YulExpressionStatement","src":"1706:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1679:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1688:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1675:3:25"},"nodeType":"YulFunctionCall","src":"1675:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1700:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1671:3:25"},"nodeType":"YulFunctionCall","src":"1671:32:25"},"nodeType":"YulIf","src":"1668:52:25"},{"nodeType":"YulAssignment","src":"1729:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1757:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1739:17:25"},"nodeType":"YulFunctionCall","src":"1739:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1729:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1776:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1803:3:25"},"nodeType":"YulFunctionCall","src":"1803:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1790:12:25"},"nodeType":"YulFunctionCall","src":"1790:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1865:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1874:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1877:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1867:6:25"},"nodeType":"YulFunctionCall","src":"1867:12:25"},"nodeType":"YulExpressionStatement","src":"1867:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1837:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1845:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1834:2:25"},"nodeType":"YulFunctionCall","src":"1834:30:25"},"nodeType":"YulIf","src":"1831:50:25"},{"nodeType":"YulVariableDeclaration","src":"1890:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1946:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1957:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1942:3:25"},"nodeType":"YulFunctionCall","src":"1942:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1966:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1916:25:25"},"nodeType":"YulFunctionCall","src":"1916:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1894:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1904:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1983:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1993:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1983:6:25"}]},{"nodeType":"YulAssignment","src":"2010:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2020:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2010:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1639:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1553:481:25"},{"body":{"nodeType":"YulBlock","src":"2134:92:25","statements":[{"nodeType":"YulAssignment","src":"2144:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2156:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2167:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2152:3:25"},"nodeType":"YulFunctionCall","src":"2152:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2144:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2186:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2211:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2204:6:25"},"nodeType":"YulFunctionCall","src":"2204:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2197:6:25"},"nodeType":"YulFunctionCall","src":"2197:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:25"},"nodeType":"YulFunctionCall","src":"2179:41:25"},"nodeType":"YulExpressionStatement","src":"2179:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2103:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2114:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2125:4:25","type":""}],"src":"2039:187:25"},{"body":{"nodeType":"YulBlock","src":"2263:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2280:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2287:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2292:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2283:3:25"},"nodeType":"YulFunctionCall","src":"2283:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2273:6:25"},"nodeType":"YulFunctionCall","src":"2273:31:25"},"nodeType":"YulExpressionStatement","src":"2273:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2320:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2323:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2313:6:25"},"nodeType":"YulFunctionCall","src":"2313:15:25"},"nodeType":"YulExpressionStatement","src":"2313:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2344:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2347:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2337:6:25"},"nodeType":"YulFunctionCall","src":"2337:15:25"},"nodeType":"YulExpressionStatement","src":"2337:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2231:127:25"},{"body":{"nodeType":"YulBlock","src":"2415:666:25","statements":[{"body":{"nodeType":"YulBlock","src":"2464:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2473:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2476:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2466:6:25"},"nodeType":"YulFunctionCall","src":"2466:12:25"},"nodeType":"YulExpressionStatement","src":"2466:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2443:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2451:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2439:3:25"},"nodeType":"YulFunctionCall","src":"2439:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"2458:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2435:3:25"},"nodeType":"YulFunctionCall","src":"2435:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2428:6:25"},"nodeType":"YulFunctionCall","src":"2428:35:25"},"nodeType":"YulIf","src":"2425:55:25"},{"nodeType":"YulVariableDeclaration","src":"2489:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2512:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2499:12:25"},"nodeType":"YulFunctionCall","src":"2499:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2493:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2528:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"2538:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2532:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2579:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2581:16:25"},"nodeType":"YulFunctionCall","src":"2581:18:25"},"nodeType":"YulExpressionStatement","src":"2581:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2571:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2575:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2568:2:25"},"nodeType":"YulFunctionCall","src":"2568:10:25"},"nodeType":"YulIf","src":"2565:36:25"},{"nodeType":"YulVariableDeclaration","src":"2610:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2624:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2620:3:25"},"nodeType":"YulFunctionCall","src":"2620:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2614:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2636:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2656:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2650:5:25"},"nodeType":"YulFunctionCall","src":"2650:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2640:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2668:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2690:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2714:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"2718:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2710:3:25"},"nodeType":"YulFunctionCall","src":"2710:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2725:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2706:3:25"},"nodeType":"YulFunctionCall","src":"2706:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2702:3:25"},"nodeType":"YulFunctionCall","src":"2702:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2698:3:25"},"nodeType":"YulFunctionCall","src":"2698:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2686:3:25"},"nodeType":"YulFunctionCall","src":"2686:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2672:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2798:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2800:16:25"},"nodeType":"YulFunctionCall","src":"2800:18:25"},"nodeType":"YulExpressionStatement","src":"2800:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2757:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2769:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2754:2:25"},"nodeType":"YulFunctionCall","src":"2754:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2777:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2789:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2774:2:25"},"nodeType":"YulFunctionCall","src":"2774:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2751:2:25"},"nodeType":"YulFunctionCall","src":"2751:46:25"},"nodeType":"YulIf","src":"2748:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2836:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2840:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2829:6:25"},"nodeType":"YulFunctionCall","src":"2829:22:25"},"nodeType":"YulExpressionStatement","src":"2829:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2867:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2875:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2860:6:25"},"nodeType":"YulFunctionCall","src":"2860:18:25"},"nodeType":"YulExpressionStatement","src":"2860:18:25"},{"body":{"nodeType":"YulBlock","src":"2926:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2935:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2928:6:25"},"nodeType":"YulFunctionCall","src":"2928:12:25"},"nodeType":"YulExpressionStatement","src":"2928:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2901:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2909:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"2914:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2893:3:25"},"nodeType":"YulFunctionCall","src":"2893:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"2921:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2890:2:25"},"nodeType":"YulFunctionCall","src":"2890:35:25"},"nodeType":"YulIf","src":"2887:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2968:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2976:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2964:3:25"},"nodeType":"YulFunctionCall","src":"2964:17:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2983:3:25"},"nodeType":"YulFunctionCall","src":"2983:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3002:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2951:12:25"},"nodeType":"YulFunctionCall","src":"2951:54:25"},"nodeType":"YulExpressionStatement","src":"2951:54:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3029:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3037:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3025:3:25"},"nodeType":"YulFunctionCall","src":"3025:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"3042:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:25"},"nodeType":"YulFunctionCall","src":"3021:26:25"},{"kind":"number","nodeType":"YulLiteral","src":"3049:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3014:6:25"},"nodeType":"YulFunctionCall","src":"3014:37:25"},"nodeType":"YulExpressionStatement","src":"3014:37:25"},{"nodeType":"YulAssignment","src":"3060:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3069:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3060:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2389:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"2397:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2405:5:25","type":""}],"src":"2363:718:25"},{"body":{"nodeType":"YulBlock","src":"3198:348:25","statements":[{"body":{"nodeType":"YulBlock","src":"3244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3246:6:25"},"nodeType":"YulFunctionCall","src":"3246:12:25"},"nodeType":"YulExpressionStatement","src":"3246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3219:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3228:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3215:3:25"},"nodeType":"YulFunctionCall","src":"3215:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3240:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3211:3:25"},"nodeType":"YulFunctionCall","src":"3211:32:25"},"nodeType":"YulIf","src":"3208:52:25"},{"nodeType":"YulAssignment","src":"3269:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3297:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3279:17:25"},"nodeType":"YulFunctionCall","src":"3279:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3269:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3316:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3347:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3358:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3343:3:25"},"nodeType":"YulFunctionCall","src":"3343:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3330:12:25"},"nodeType":"YulFunctionCall","src":"3330:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3320:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3405:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3414:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3417:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3407:6:25"},"nodeType":"YulFunctionCall","src":"3407:12:25"},"nodeType":"YulExpressionStatement","src":"3407:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3377:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3385:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3374:2:25"},"nodeType":"YulFunctionCall","src":"3374:30:25"},"nodeType":"YulIf","src":"3371:50:25"},{"nodeType":"YulAssignment","src":"3430:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3461:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3472:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3457:3:25"},"nodeType":"YulFunctionCall","src":"3457:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3481:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3440:16:25"},"nodeType":"YulFunctionCall","src":"3440:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3430:6:25"}]},{"nodeType":"YulAssignment","src":"3498:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3536:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:25"},"nodeType":"YulFunctionCall","src":"3521:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3508:12:25"},"nodeType":"YulFunctionCall","src":"3508:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3498:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3148:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3159:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3171:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3179:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3187:6:25","type":""}],"src":"3086:460:25"},{"body":{"nodeType":"YulBlock","src":"3600:422:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3610:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3630:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3624:5:25"},"nodeType":"YulFunctionCall","src":"3624:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3614:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3652:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3657:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3645:6:25"},"nodeType":"YulFunctionCall","src":"3645:19:25"},"nodeType":"YulExpressionStatement","src":"3645:19:25"},{"nodeType":"YulVariableDeclaration","src":"3673:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3682:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3677:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3744:110:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3758:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3768:4:25","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3762:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3800:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"3805:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3796:3:25"},"nodeType":"YulFunctionCall","src":"3796:11:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3809:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:25"},"nodeType":"YulFunctionCall","src":"3792:20:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3828:5:25"},{"name":"i","nodeType":"YulIdentifier","src":"3835:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3824:3:25"},"nodeType":"YulFunctionCall","src":"3824:13:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3839:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3820:3:25"},"nodeType":"YulFunctionCall","src":"3820:22:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3814:5:25"},"nodeType":"YulFunctionCall","src":"3814:29:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3785:6:25"},"nodeType":"YulFunctionCall","src":"3785:59:25"},"nodeType":"YulExpressionStatement","src":"3785:59:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3703:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3706:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3700:2:25"},"nodeType":"YulFunctionCall","src":"3700:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3714:21:25","statements":[{"nodeType":"YulAssignment","src":"3716:17:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3725:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"3728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:25"},"nodeType":"YulFunctionCall","src":"3721:12:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3716:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"3696:3:25","statements":[]},"src":"3692:162:25"},{"body":{"nodeType":"YulBlock","src":"3888:62:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3917:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3922:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:25"},"nodeType":"YulFunctionCall","src":"3913:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"3931:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3909:3:25"},"nodeType":"YulFunctionCall","src":"3909:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"3938:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3902:6:25"},"nodeType":"YulFunctionCall","src":"3902:38:25"},"nodeType":"YulExpressionStatement","src":"3902:38:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3869:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3872:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3866:2:25"},"nodeType":"YulFunctionCall","src":"3866:13:25"},"nodeType":"YulIf","src":"3863:87:25"},{"nodeType":"YulAssignment","src":"3959:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3974:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3995:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:25"},"nodeType":"YulFunctionCall","src":"3983:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4004:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3979:3:25"},"nodeType":"YulFunctionCall","src":"3979:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3970:3:25"},"nodeType":"YulFunctionCall","src":"3970:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:25"},"nodeType":"YulFunctionCall","src":"3966:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3959:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3577:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3584:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3592:3:25","type":""}],"src":"3551:471:25"},{"body":{"nodeType":"YulBlock","src":"4200:235:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4232:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4253:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4240:3:25"},"nodeType":"YulFunctionCall","src":"4240:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4228:3:25"},"nodeType":"YulFunctionCall","src":"4228:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4210:6:25"},"nodeType":"YulFunctionCall","src":"4210:51:25"},"nodeType":"YulExpressionStatement","src":"4210:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4281:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4292:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4277:3:25"},"nodeType":"YulFunctionCall","src":"4277:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4297:3:25"},"nodeType":"YulFunctionCall","src":"4297:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:25"},"nodeType":"YulFunctionCall","src":"4270:59:25"},"nodeType":"YulExpressionStatement","src":"4270:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4349:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:25"},"nodeType":"YulFunctionCall","src":"4345:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:25","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4338:6:25"},"nodeType":"YulFunctionCall","src":"4338:30:25"},"nodeType":"YulExpressionStatement","src":"4338:30:25"},{"nodeType":"YulAssignment","src":"4377:52:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4402:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4414:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4425:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:25"},"nodeType":"YulFunctionCall","src":"4410:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4385:16:25"},"nodeType":"YulFunctionCall","src":"4385:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4377:4:25"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4153:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4164:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4172:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4180:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4191:4:25","type":""}],"src":"4027:408:25"},{"body":{"nodeType":"YulBlock","src":"4527:161:25","statements":[{"body":{"nodeType":"YulBlock","src":"4573:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4582:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4585:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4575:6:25"},"nodeType":"YulFunctionCall","src":"4575:12:25"},"nodeType":"YulExpressionStatement","src":"4575:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4548:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4557:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4544:3:25"},"nodeType":"YulFunctionCall","src":"4544:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4569:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4540:3:25"},"nodeType":"YulFunctionCall","src":"4540:32:25"},"nodeType":"YulIf","src":"4537:52:25"},{"nodeType":"YulAssignment","src":"4598:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4608:12:25"},"nodeType":"YulFunctionCall","src":"4608:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4598:6:25"}]},{"nodeType":"YulAssignment","src":"4640:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4663:3:25"},"nodeType":"YulFunctionCall","src":"4663:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4650:12:25"},"nodeType":"YulFunctionCall","src":"4650:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4640:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4485:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4496:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4508:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4516:6:25","type":""}],"src":"4440:248:25"},{"body":{"nodeType":"YulBlock","src":"4812:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4840:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4822:6:25"},"nodeType":"YulFunctionCall","src":"4822:21:25"},"nodeType":"YulExpressionStatement","src":"4822:21:25"},{"nodeType":"YulAssignment","src":"4852:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:25"},"nodeType":"YulFunctionCall","src":"4885:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4860:16:25"},"nodeType":"YulFunctionCall","src":"4860:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4852:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4781:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4792:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4803:4:25","type":""}],"src":"4693:217:25"},{"body":{"nodeType":"YulBlock","src":"4964:139:25","statements":[{"nodeType":"YulAssignment","src":"4974:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4996:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4983:12:25"},"nodeType":"YulFunctionCall","src":"4983:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4974:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5081:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5090:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5093:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5083:6:25"},"nodeType":"YulFunctionCall","src":"5083:12:25"},"nodeType":"YulExpressionStatement","src":"5083:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5025:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5036:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5043:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5032:3:25"},"nodeType":"YulFunctionCall","src":"5032:46:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5022:2:25"},"nodeType":"YulFunctionCall","src":"5022:57:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5015:6:25"},"nodeType":"YulFunctionCall","src":"5015:65:25"},"nodeType":"YulIf","src":"5012:85:25"}]},"name":"abi_decode_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4943:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4954:5:25","type":""}],"src":"4915:188:25"},{"body":{"nodeType":"YulBlock","src":"5156:123:25","statements":[{"nodeType":"YulAssignment","src":"5166:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5188:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5175:12:25"},"nodeType":"YulFunctionCall","src":"5175:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5166:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5259:6:25"},"nodeType":"YulFunctionCall","src":"5259:12:25"},"nodeType":"YulExpressionStatement","src":"5259:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5228:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5235:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5224:3:25"},"nodeType":"YulFunctionCall","src":"5224:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5214:2:25"},"nodeType":"YulFunctionCall","src":"5214:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5207:6:25"},"nodeType":"YulFunctionCall","src":"5207:49:25"},"nodeType":"YulIf","src":"5204:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5135:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5146:5:25","type":""}],"src":"5108:171:25"},{"body":{"nodeType":"YulBlock","src":"5420:344:25","statements":[{"body":{"nodeType":"YulBlock","src":"5467:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5476:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5479:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:25"},"nodeType":"YulFunctionCall","src":"5469:12:25"},"nodeType":"YulExpressionStatement","src":"5469:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5441:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5450:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5437:3:25"},"nodeType":"YulFunctionCall","src":"5437:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5462:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5433:3:25"},"nodeType":"YulFunctionCall","src":"5433:33:25"},"nodeType":"YulIf","src":"5430:53:25"},{"nodeType":"YulAssignment","src":"5492:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5521:9:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5502:18:25"},"nodeType":"YulFunctionCall","src":"5502:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5492:6:25"}]},{"nodeType":"YulAssignment","src":"5540:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5573:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5584:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5569:3:25"},"nodeType":"YulFunctionCall","src":"5569:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5550:18:25"},"nodeType":"YulFunctionCall","src":"5550:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5540:6:25"}]},{"nodeType":"YulAssignment","src":"5597:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5630:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5641:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5626:3:25"},"nodeType":"YulFunctionCall","src":"5626:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5607:18:25"},"nodeType":"YulFunctionCall","src":"5607:38:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5597:6:25"}]},{"nodeType":"YulAssignment","src":"5654:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5686:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5697:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5682:3:25"},"nodeType":"YulFunctionCall","src":"5682:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5664:17:25"},"nodeType":"YulFunctionCall","src":"5664:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5654:6:25"}]},{"nodeType":"YulAssignment","src":"5710:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5753:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:25"},"nodeType":"YulFunctionCall","src":"5738:19:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5720:17:25"},"nodeType":"YulFunctionCall","src":"5720:38:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5710:6:25"}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5354:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5365:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5377:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5385:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5393:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5401:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5409:6:25","type":""}],"src":"5284:480:25"},{"body":{"nodeType":"YulBlock","src":"5921:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"5968:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5977:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5980:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5970:6:25"},"nodeType":"YulFunctionCall","src":"5970:12:25"},"nodeType":"YulExpressionStatement","src":"5970:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5938:3:25"},"nodeType":"YulFunctionCall","src":"5938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5963:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5934:3:25"},"nodeType":"YulFunctionCall","src":"5934:33:25"},"nodeType":"YulIf","src":"5931:53:25"},{"nodeType":"YulAssignment","src":"5993:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6021:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6003:17:25"},"nodeType":"YulFunctionCall","src":"6003:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5993:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6040:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6070:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6081:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6066:3:25"},"nodeType":"YulFunctionCall","src":"6066:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6053:12:25"},"nodeType":"YulFunctionCall","src":"6053:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6044:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6119:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6094:24:25"},"nodeType":"YulFunctionCall","src":"6094:31:25"},"nodeType":"YulExpressionStatement","src":"6094:31:25"},{"nodeType":"YulAssignment","src":"6134:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6144:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6134:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6158:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6185:3:25"},"nodeType":"YulFunctionCall","src":"6185:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6172:12:25"},"nodeType":"YulFunctionCall","src":"6172:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6162:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6213:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6217:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6268:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6280:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6270:6:25"},"nodeType":"YulFunctionCall","src":"6270:12:25"},"nodeType":"YulExpressionStatement","src":"6270:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6256:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6264:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6253:2:25"},"nodeType":"YulFunctionCall","src":"6253:14:25"},"nodeType":"YulIf","src":"6250:34:25"},{"nodeType":"YulAssignment","src":"6293:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6324:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6335:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6320:3:25"},"nodeType":"YulFunctionCall","src":"6320:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6344:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6303:16:25"},"nodeType":"YulFunctionCall","src":"6303:49:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6293:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6361:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6393:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6404:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6389:3:25"},"nodeType":"YulFunctionCall","src":"6389:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6376:12:25"},"nodeType":"YulFunctionCall","src":"6376:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6365:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6465:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6474:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6477:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6467:6:25"},"nodeType":"YulFunctionCall","src":"6467:12:25"},"nodeType":"YulExpressionStatement","src":"6467:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6430:7:25"},{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6453:7:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6446:6:25"},"nodeType":"YulFunctionCall","src":"6446:15:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6439:6:25"},"nodeType":"YulFunctionCall","src":"6439:23:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6427:2:25"},"nodeType":"YulFunctionCall","src":"6427:36:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6420:6:25"},"nodeType":"YulFunctionCall","src":"6420:44:25"},"nodeType":"YulIf","src":"6417:64:25"},{"nodeType":"YulAssignment","src":"6490:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6500:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6490:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6516:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6549:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6560:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6545:3:25"},"nodeType":"YulFunctionCall","src":"6545:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6532:12:25"},"nodeType":"YulFunctionCall","src":"6532:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6520:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6594:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6603:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6606:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6596:6:25"},"nodeType":"YulFunctionCall","src":"6596:12:25"},"nodeType":"YulExpressionStatement","src":"6596:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6580:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6590:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6577:2:25"},"nodeType":"YulFunctionCall","src":"6577:16:25"},"nodeType":"YulIf","src":"6574:36:25"},{"nodeType":"YulAssignment","src":"6619:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6650:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6661:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6646:3:25"},"nodeType":"YulFunctionCall","src":"6646:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6672:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6629:16:25"},"nodeType":"YulFunctionCall","src":"6629:51:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6619:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5855:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5866:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5878:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5886:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5894:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5902:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5910:6:25","type":""}],"src":"5769:917:25"},{"body":{"nodeType":"YulBlock","src":"6792:102:25","statements":[{"nodeType":"YulAssignment","src":"6802:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6814:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6825:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6810:3:25"},"nodeType":"YulFunctionCall","src":"6810:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6802:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6844:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6859:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6875:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6880:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6871:3:25"},"nodeType":"YulFunctionCall","src":"6871:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6884:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6867:3:25"},"nodeType":"YulFunctionCall","src":"6867:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6855:3:25"},"nodeType":"YulFunctionCall","src":"6855:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6837:6:25"},"nodeType":"YulFunctionCall","src":"6837:51:25"},"nodeType":"YulExpressionStatement","src":"6837:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6761:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6772:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6783:4:25","type":""}],"src":"6691:203:25"},{"body":{"nodeType":"YulBlock","src":"6994:297:25","statements":[{"body":{"nodeType":"YulBlock","src":"7040:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7049:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7052:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7042:6:25"},"nodeType":"YulFunctionCall","src":"7042:12:25"},"nodeType":"YulExpressionStatement","src":"7042:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7015:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7011:3:25"},"nodeType":"YulFunctionCall","src":"7011:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7036:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:32:25"},"nodeType":"YulIf","src":"7004:52:25"},{"nodeType":"YulAssignment","src":"7065:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7093:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7075:17:25"},"nodeType":"YulFunctionCall","src":"7075:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7065:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7112:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7143:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7154:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7139:3:25"},"nodeType":"YulFunctionCall","src":"7139:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7126:12:25"},"nodeType":"YulFunctionCall","src":"7126:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7116:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7201:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7210:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7213:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7203:6:25"},"nodeType":"YulFunctionCall","src":"7203:12:25"},"nodeType":"YulExpressionStatement","src":"7203:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7173:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7181:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7170:2:25"},"nodeType":"YulFunctionCall","src":"7170:30:25"},"nodeType":"YulIf","src":"7167:50:25"},{"nodeType":"YulAssignment","src":"7226:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7257:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"7268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:25"},"nodeType":"YulFunctionCall","src":"7253:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7277:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7236:16:25"},"nodeType":"YulFunctionCall","src":"7236:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7226:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6952:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6963:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6975:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6983:6:25","type":""}],"src":"6899:392:25"},{"body":{"nodeType":"YulBlock","src":"7451:213:25","statements":[{"nodeType":"YulAssignment","src":"7461:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7473:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7484:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7469:3:25"},"nodeType":"YulFunctionCall","src":"7469:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7461:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7503:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7518:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7526:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7514:3:25"},"nodeType":"YulFunctionCall","src":"7514:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7496:6:25"},"nodeType":"YulFunctionCall","src":"7496:50:25"},"nodeType":"YulExpressionStatement","src":"7496:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7566:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7577:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7562:3:25"},"nodeType":"YulFunctionCall","src":"7562:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7586:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7602:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7607:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7598:3:25"},"nodeType":"YulFunctionCall","src":"7598:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7611:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7594:3:25"},"nodeType":"YulFunctionCall","src":"7594:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7582:3:25"},"nodeType":"YulFunctionCall","src":"7582:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7555:6:25"},"nodeType":"YulFunctionCall","src":"7555:60:25"},"nodeType":"YulExpressionStatement","src":"7555:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7635:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7646:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7631:3:25"},"nodeType":"YulFunctionCall","src":"7631:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"7651:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7624:6:25"},"nodeType":"YulFunctionCall","src":"7624:34:25"},"nodeType":"YulExpressionStatement","src":"7624:34:25"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7404:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7415:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7423:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7431:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7442:4:25","type":""}],"src":"7296:368:25"},{"body":{"nodeType":"YulBlock","src":"7755:233:25","statements":[{"body":{"nodeType":"YulBlock","src":"7801:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7810:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7813:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7803:6:25"},"nodeType":"YulFunctionCall","src":"7803:12:25"},"nodeType":"YulExpressionStatement","src":"7803:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7776:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7785:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7772:3:25"},"nodeType":"YulFunctionCall","src":"7772:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7797:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7768:3:25"},"nodeType":"YulFunctionCall","src":"7768:32:25"},"nodeType":"YulIf","src":"7765:52:25"},{"nodeType":"YulAssignment","src":"7826:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7854:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7836:17:25"},"nodeType":"YulFunctionCall","src":"7836:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7826:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7873:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7903:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7914:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7899:3:25"},"nodeType":"YulFunctionCall","src":"7899:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7886:12:25"},"nodeType":"YulFunctionCall","src":"7886:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7877:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7952:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7927:24:25"},"nodeType":"YulFunctionCall","src":"7927:31:25"},"nodeType":"YulExpressionStatement","src":"7927:31:25"},{"nodeType":"YulAssignment","src":"7967:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7977:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7967:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7713:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7724:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7736:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7744:6:25","type":""}],"src":"7669:319:25"},{"body":{"nodeType":"YulBlock","src":"8092:101:25","statements":[{"nodeType":"YulAssignment","src":"8102:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8125:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8110:3:25"},"nodeType":"YulFunctionCall","src":"8110:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8102:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8159:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8167:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8155:3:25"},"nodeType":"YulFunctionCall","src":"8155:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8137:6:25"},"nodeType":"YulFunctionCall","src":"8137:50:25"},"nodeType":"YulExpressionStatement","src":"8137:50:25"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8061:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8072:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8083:4:25","type":""}],"src":"7993:200:25"},{"body":{"nodeType":"YulBlock","src":"8299:76:25","statements":[{"nodeType":"YulAssignment","src":"8309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8317:3:25"},"nodeType":"YulFunctionCall","src":"8317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8351:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8362:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8344:6:25"},"nodeType":"YulFunctionCall","src":"8344:25:25"},"nodeType":"YulExpressionStatement","src":"8344:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8290:4:25","type":""}],"src":"8198:177:25"},{"body":{"nodeType":"YulBlock","src":"8589:385:25","statements":[{"nodeType":"YulAssignment","src":"8599:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8611:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8622:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8607:3:25"},"nodeType":"YulFunctionCall","src":"8607:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8599:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"8635:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8645:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8639:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8695:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8710:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8718:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8706:3:25"},"nodeType":"YulFunctionCall","src":"8706:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8688:6:25"},"nodeType":"YulFunctionCall","src":"8688:34:25"},"nodeType":"YulExpressionStatement","src":"8688:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8738:3:25"},"nodeType":"YulFunctionCall","src":"8738:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8762:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8770:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8758:3:25"},"nodeType":"YulFunctionCall","src":"8758:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8731:6:25"},"nodeType":"YulFunctionCall","src":"8731:43:25"},"nodeType":"YulExpressionStatement","src":"8731:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8805:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8790:3:25"},"nodeType":"YulFunctionCall","src":"8790:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8814:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8822:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8810:3:25"},"nodeType":"YulFunctionCall","src":"8810:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8783:6:25"},"nodeType":"YulFunctionCall","src":"8783:43:25"},"nodeType":"YulExpressionStatement","src":"8783:43:25"},{"nodeType":"YulVariableDeclaration","src":"8835:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8845:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8839:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8894:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8879:3:25"},"nodeType":"YulFunctionCall","src":"8879:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8903:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8911:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8899:3:25"},"nodeType":"YulFunctionCall","src":"8899:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8872:6:25"},"nodeType":"YulFunctionCall","src":"8872:43:25"},"nodeType":"YulExpressionStatement","src":"8872:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8935:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8946:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8931:3:25"},"nodeType":"YulFunctionCall","src":"8931:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8956:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8952:3:25"},"nodeType":"YulFunctionCall","src":"8952:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8924:6:25"},"nodeType":"YulFunctionCall","src":"8924:44:25"},"nodeType":"YulExpressionStatement","src":"8924:44:25"}]},"name":"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8526:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8537:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8545:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8553:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8561:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8569:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8580:4:25","type":""}],"src":"8380:594:25"},{"body":{"nodeType":"YulBlock","src":"9120:648:25","statements":[{"body":{"nodeType":"YulBlock","src":"9166:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9175:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9178:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9168:6:25"},"nodeType":"YulFunctionCall","src":"9168:12:25"},"nodeType":"YulExpressionStatement","src":"9168:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9141:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9137:3:25"},"nodeType":"YulFunctionCall","src":"9137:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9162:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9133:3:25"},"nodeType":"YulFunctionCall","src":"9133:32:25"},"nodeType":"YulIf","src":"9130:52:25"},{"nodeType":"YulAssignment","src":"9191:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9219:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9201:17:25"},"nodeType":"YulFunctionCall","src":"9201:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9191:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9238:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:25"},"nodeType":"YulFunctionCall","src":"9265:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9252:12:25"},"nodeType":"YulFunctionCall","src":"9252:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9242:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9293:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"9303:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9297:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9348:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9357:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9360:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9350:6:25"},"nodeType":"YulFunctionCall","src":"9350:12:25"},"nodeType":"YulExpressionStatement","src":"9350:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9336:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9344:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9333:2:25"},"nodeType":"YulFunctionCall","src":"9333:14:25"},"nodeType":"YulIf","src":"9330:34:25"},{"nodeType":"YulVariableDeclaration","src":"9373:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9429:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9425:3:25"},"nodeType":"YulFunctionCall","src":"9425:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9449:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9399:25:25"},"nodeType":"YulFunctionCall","src":"9399:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"9377:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"9387:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9466:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"9476:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9466:6:25"}]},{"nodeType":"YulAssignment","src":"9493:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"9503:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9493:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9520:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9553:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9564:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9549:3:25"},"nodeType":"YulFunctionCall","src":"9549:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9536:12:25"},"nodeType":"YulFunctionCall","src":"9536:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9524:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9597:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9606:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9609:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9599:6:25"},"nodeType":"YulFunctionCall","src":"9599:12:25"},"nodeType":"YulExpressionStatement","src":"9599:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9583:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9593:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9580:2:25"},"nodeType":"YulFunctionCall","src":"9580:16:25"},"nodeType":"YulIf","src":"9577:36:25"},{"nodeType":"YulVariableDeclaration","src":"9622:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9678:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9689:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9674:3:25"},"nodeType":"YulFunctionCall","src":"9674:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9700:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9648:25:25"},"nodeType":"YulFunctionCall","src":"9648:60:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9626:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9636:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9717:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9727:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9717:6:25"}]},{"nodeType":"YulAssignment","src":"9744:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9754:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9744:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9054:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9065:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9077:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9085:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9093:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9101:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9109:6:25","type":""}],"src":"8979:789:25"},{"body":{"nodeType":"YulBlock","src":"9843:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"9889:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9901:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9891:6:25"},"nodeType":"YulFunctionCall","src":"9891:12:25"},"nodeType":"YulExpressionStatement","src":"9891:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9864:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9873:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9860:3:25"},"nodeType":"YulFunctionCall","src":"9860:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9885:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9856:3:25"},"nodeType":"YulFunctionCall","src":"9856:32:25"},"nodeType":"YulIf","src":"9853:52:25"},{"nodeType":"YulAssignment","src":"9914:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9937:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9924:12:25"},"nodeType":"YulFunctionCall","src":"9924:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9914:6:25"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9809:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9820:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9832:6:25","type":""}],"src":"9773:180:25"},{"body":{"nodeType":"YulBlock","src":"10045:301:25","statements":[{"body":{"nodeType":"YulBlock","src":"10091:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10100:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10103:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10093:6:25"},"nodeType":"YulFunctionCall","src":"10093:12:25"},"nodeType":"YulExpressionStatement","src":"10093:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10066:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10075:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10062:3:25"},"nodeType":"YulFunctionCall","src":"10062:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10058:3:25"},"nodeType":"YulFunctionCall","src":"10058:32:25"},"nodeType":"YulIf","src":"10055:52:25"},{"nodeType":"YulVariableDeclaration","src":"10116:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10142:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10129:12:25"},"nodeType":"YulFunctionCall","src":"10129:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10120:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10161:24:25"},"nodeType":"YulFunctionCall","src":"10161:31:25"},"nodeType":"YulExpressionStatement","src":"10161:31:25"},{"nodeType":"YulAssignment","src":"10201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10201:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10225:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10257:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10268:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10253:3:25"},"nodeType":"YulFunctionCall","src":"10253:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10240:12:25"},"nodeType":"YulFunctionCall","src":"10240:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10229:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10306:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10281:24:25"},"nodeType":"YulFunctionCall","src":"10281:33:25"},"nodeType":"YulExpressionStatement","src":"10281:33:25"},{"nodeType":"YulAssignment","src":"10323:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10333:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10323:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10003:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10014:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10026:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10034:6:25","type":""}],"src":"9958:388:25"},{"body":{"nodeType":"YulBlock","src":"10542:876:25","statements":[{"body":{"nodeType":"YulBlock","src":"10589:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10598:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10601:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10591:6:25"},"nodeType":"YulFunctionCall","src":"10591:12:25"},"nodeType":"YulExpressionStatement","src":"10591:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10563:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10572:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10559:3:25"},"nodeType":"YulFunctionCall","src":"10559:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10584:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10555:3:25"},"nodeType":"YulFunctionCall","src":"10555:33:25"},"nodeType":"YulIf","src":"10552:53:25"},{"nodeType":"YulAssignment","src":"10614:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10642:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10624:17:25"},"nodeType":"YulFunctionCall","src":"10624:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10614:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10661:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10703:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10688:3:25"},"nodeType":"YulFunctionCall","src":"10688:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10675:12:25"},"nodeType":"YulFunctionCall","src":"10675:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10665:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10716:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"10726:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10771:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10780:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10783:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10773:6:25"},"nodeType":"YulFunctionCall","src":"10773:12:25"},"nodeType":"YulExpressionStatement","src":"10773:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10759:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"10767:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10756:2:25"},"nodeType":"YulFunctionCall","src":"10756:14:25"},"nodeType":"YulIf","src":"10753:34:25"},{"nodeType":"YulVariableDeclaration","src":"10796:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10852:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"10863:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10848:3:25"},"nodeType":"YulFunctionCall","src":"10848:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10872:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10822:25:25"},"nodeType":"YulFunctionCall","src":"10822:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"10800:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"10810:8:25","type":""}]},{"nodeType":"YulAssignment","src":"10889:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"10899:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10889:6:25"}]},{"nodeType":"YulAssignment","src":"10916:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"10926:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10943:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10973:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10984:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:25"},"nodeType":"YulFunctionCall","src":"10969:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10956:12:25"},"nodeType":"YulFunctionCall","src":"10956:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10947:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11022:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10997:24:25"},"nodeType":"YulFunctionCall","src":"10997:31:25"},"nodeType":"YulExpressionStatement","src":"10997:31:25"},{"nodeType":"YulAssignment","src":"11037:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"11047:5:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11037:6:25"}]},{"nodeType":"YulAssignment","src":"11061:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11093:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11104:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11089:3:25"},"nodeType":"YulFunctionCall","src":"11089:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"11071:17:25"},"nodeType":"YulFunctionCall","src":"11071:37:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11061:6:25"}]},{"nodeType":"YulAssignment","src":"11117:43:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11155:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11140:3:25"},"nodeType":"YulFunctionCall","src":"11140:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11127:12:25"},"nodeType":"YulFunctionCall","src":"11127:33:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"11117:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11169:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11213:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11198:3:25"},"nodeType":"YulFunctionCall","src":"11198:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11185:12:25"},"nodeType":"YulFunctionCall","src":"11185:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11173:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11247:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11256:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11259:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11249:6:25"},"nodeType":"YulFunctionCall","src":"11249:12:25"},"nodeType":"YulExpressionStatement","src":"11249:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"11233:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11243:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11230:2:25"},"nodeType":"YulFunctionCall","src":"11230:16:25"},"nodeType":"YulIf","src":"11227:36:25"},{"nodeType":"YulVariableDeclaration","src":"11272:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11328:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"11339:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11324:3:25"},"nodeType":"YulFunctionCall","src":"11324:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11350:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"11298:25:25"},"nodeType":"YulFunctionCall","src":"11298:60:25"},"variables":[{"name":"value6_1","nodeType":"YulTypedName","src":"11276:8:25","type":""},{"name":"value7_1","nodeType":"YulTypedName","src":"11286:8:25","type":""}]},{"nodeType":"YulAssignment","src":"11367:18:25","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"11377:8:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"11367:6:25"}]},{"nodeType":"YulAssignment","src":"11394:18:25","value":{"name":"value7_1","nodeType":"YulIdentifier","src":"11404:8:25"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"11394:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10452:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10463:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10475:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10483:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10491:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10499:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10507:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10515:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"10523:6:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"10531:6:25","type":""}],"src":"10351:1067:25"},{"body":{"nodeType":"YulBlock","src":"11622:986:25","statements":[{"body":{"nodeType":"YulBlock","src":"11669:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11678:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11681:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11671:6:25"},"nodeType":"YulFunctionCall","src":"11671:12:25"},"nodeType":"YulExpressionStatement","src":"11671:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11643:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11639:3:25"},"nodeType":"YulFunctionCall","src":"11639:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"11664:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11635:3:25"},"nodeType":"YulFunctionCall","src":"11635:33:25"},"nodeType":"YulIf","src":"11632:53:25"},{"nodeType":"YulAssignment","src":"11694:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11722:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"11704:17:25"},"nodeType":"YulFunctionCall","src":"11704:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11694:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11741:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11772:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11783:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11768:3:25"},"nodeType":"YulFunctionCall","src":"11768:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11755:12:25"},"nodeType":"YulFunctionCall","src":"11755:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11745:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11796:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"11806:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11800:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11851:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11860:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11863:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11853:6:25"},"nodeType":"YulFunctionCall","src":"11853:12:25"},"nodeType":"YulExpressionStatement","src":"11853:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11839:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11847:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11836:2:25"},"nodeType":"YulFunctionCall","src":"11836:14:25"},"nodeType":"YulIf","src":"11833:34:25"},{"nodeType":"YulAssignment","src":"11876:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11907:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"11918:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11903:3:25"},"nodeType":"YulFunctionCall","src":"11903:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11927:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"11886:16:25"},"nodeType":"YulFunctionCall","src":"11886:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11876:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11944:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11973:3:25"},"nodeType":"YulFunctionCall","src":"11973:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11960:12:25"},"nodeType":"YulFunctionCall","src":"11960:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11948:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12021:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12030:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12033:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12023:6:25"},"nodeType":"YulFunctionCall","src":"12023:12:25"},"nodeType":"YulExpressionStatement","src":"12023:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12007:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12017:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12004:2:25"},"nodeType":"YulFunctionCall","src":"12004:16:25"},"nodeType":"YulIf","src":"12001:36:25"},{"nodeType":"YulVariableDeclaration","src":"12046:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12102:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"12113:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12098:3:25"},"nodeType":"YulFunctionCall","src":"12098:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12124:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"12072:25:25"},"nodeType":"YulFunctionCall","src":"12072:60:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"12050:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"12060:8:25","type":""}]},{"nodeType":"YulAssignment","src":"12141:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"12151:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12141:6:25"}]},{"nodeType":"YulAssignment","src":"12168:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"12178:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12168:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12195:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12221:3:25"},"nodeType":"YulFunctionCall","src":"12221:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12208:12:25"},"nodeType":"YulFunctionCall","src":"12208:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12199:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12274:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12249:24:25"},"nodeType":"YulFunctionCall","src":"12249:31:25"},"nodeType":"YulExpressionStatement","src":"12249:31:25"},{"nodeType":"YulAssignment","src":"12289:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"12299:5:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"12289:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12313:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12345:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12356:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12341:3:25"},"nodeType":"YulFunctionCall","src":"12341:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12328:12:25"},"nodeType":"YulFunctionCall","src":"12328:33:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"12317:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"12395:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12370:24:25"},"nodeType":"YulFunctionCall","src":"12370:33:25"},"nodeType":"YulExpressionStatement","src":"12370:33:25"},{"nodeType":"YulAssignment","src":"12412:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"12422:7:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"12412:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12438:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12471:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12482:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12467:3:25"},"nodeType":"YulFunctionCall","src":"12467:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12454:12:25"},"nodeType":"YulFunctionCall","src":"12454:33:25"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"12442:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12516:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12525:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12528:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12518:6:25"},"nodeType":"YulFunctionCall","src":"12518:12:25"},"nodeType":"YulExpressionStatement","src":"12518:12:25"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"12502:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12512:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12499:2:25"},"nodeType":"YulFunctionCall","src":"12499:16:25"},"nodeType":"YulIf","src":"12496:36:25"},{"nodeType":"YulAssignment","src":"12541:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12572:9:25"},{"name":"offset_2","nodeType":"YulIdentifier","src":"12583:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12568:3:25"},"nodeType":"YulFunctionCall","src":"12568:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12594:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"12551:16:25"},"nodeType":"YulFunctionCall","src":"12551:51:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"12541:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11540:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11551:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11563:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11571:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11579:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11587:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11595:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"11603:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"11611:6:25","type":""}],"src":"11423:1185:25"},{"body":{"nodeType":"YulBlock","src":"12741:405:25","statements":[{"body":{"nodeType":"YulBlock","src":"12788:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12797:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12800:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12790:6:25"},"nodeType":"YulFunctionCall","src":"12790:12:25"},"nodeType":"YulExpressionStatement","src":"12790:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12762:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"12771:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12758:3:25"},"nodeType":"YulFunctionCall","src":"12758:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"12783:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12754:3:25"},"nodeType":"YulFunctionCall","src":"12754:33:25"},"nodeType":"YulIf","src":"12751:53:25"},{"nodeType":"YulAssignment","src":"12813:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12841:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12823:17:25"},"nodeType":"YulFunctionCall","src":"12823:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12813:6:25"}]},{"nodeType":"YulAssignment","src":"12860:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12888:3:25"},"nodeType":"YulFunctionCall","src":"12888:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12870:17:25"},"nodeType":"YulFunctionCall","src":"12870:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12860:6:25"}]},{"nodeType":"YulAssignment","src":"12916:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12943:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12954:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12939:3:25"},"nodeType":"YulFunctionCall","src":"12939:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12926:12:25"},"nodeType":"YulFunctionCall","src":"12926:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12967:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13009:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12994:3:25"},"nodeType":"YulFunctionCall","src":"12994:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12981:12:25"},"nodeType":"YulFunctionCall","src":"12981:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12971:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13056:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13065:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13068:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13058:6:25"},"nodeType":"YulFunctionCall","src":"13058:12:25"},"nodeType":"YulExpressionStatement","src":"13058:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13028:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13036:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13025:2:25"},"nodeType":"YulFunctionCall","src":"13025:30:25"},"nodeType":"YulIf","src":"13022:50:25"},{"nodeType":"YulAssignment","src":"13081:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13112:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13123:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13108:3:25"},"nodeType":"YulFunctionCall","src":"13108:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13132:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13091:16:25"},"nodeType":"YulFunctionCall","src":"13091:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13081:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12683:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12694:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12706:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12714:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12722:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12730:6:25","type":""}],"src":"12613:533:25"},{"body":{"nodeType":"YulBlock","src":"13270:341:25","statements":[{"body":{"nodeType":"YulBlock","src":"13317:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13326:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13329:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13319:6:25"},"nodeType":"YulFunctionCall","src":"13319:12:25"},"nodeType":"YulExpressionStatement","src":"13319:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13291:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13300:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13287:3:25"},"nodeType":"YulFunctionCall","src":"13287:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13312:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13283:3:25"},"nodeType":"YulFunctionCall","src":"13283:33:25"},"nodeType":"YulIf","src":"13280:53:25"},{"nodeType":"YulAssignment","src":"13342:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13370:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13352:17:25"},"nodeType":"YulFunctionCall","src":"13352:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13342:6:25"}]},{"nodeType":"YulAssignment","src":"13389:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13421:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13432:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13417:3:25"},"nodeType":"YulFunctionCall","src":"13417:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13399:17:25"},"nodeType":"YulFunctionCall","src":"13399:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13389:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"13445:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13475:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13486:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13471:3:25"},"nodeType":"YulFunctionCall","src":"13471:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13458:12:25"},"nodeType":"YulFunctionCall","src":"13458:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13449:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13524:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"13499:24:25"},"nodeType":"YulFunctionCall","src":"13499:31:25"},"nodeType":"YulExpressionStatement","src":"13499:31:25"},{"nodeType":"YulAssignment","src":"13539:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"13549:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13539:6:25"}]},{"nodeType":"YulAssignment","src":"13563:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13590:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13601:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13586:3:25"},"nodeType":"YulFunctionCall","src":"13586:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13573:12:25"},"nodeType":"YulFunctionCall","src":"13573:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13212:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13223:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13235:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13243:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13251:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13259:6:25","type":""}],"src":"13151:460:25"},{"body":{"nodeType":"YulBlock","src":"13695:241:25","statements":[{"body":{"nodeType":"YulBlock","src":"13741:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13750:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13753:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13743:6:25"},"nodeType":"YulFunctionCall","src":"13743:12:25"},"nodeType":"YulExpressionStatement","src":"13743:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13716:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13725:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13712:3:25"},"nodeType":"YulFunctionCall","src":"13712:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13737:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13708:3:25"},"nodeType":"YulFunctionCall","src":"13708:32:25"},"nodeType":"YulIf","src":"13705:52:25"},{"nodeType":"YulVariableDeclaration","src":"13766:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13793:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13780:12:25"},"nodeType":"YulFunctionCall","src":"13780:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13770:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13846:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13855:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13858:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13848:6:25"},"nodeType":"YulFunctionCall","src":"13848:12:25"},"nodeType":"YulExpressionStatement","src":"13848:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13826:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13815:2:25"},"nodeType":"YulFunctionCall","src":"13815:30:25"},"nodeType":"YulIf","src":"13812:50:25"},{"nodeType":"YulAssignment","src":"13871:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13902:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13913:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13898:3:25"},"nodeType":"YulFunctionCall","src":"13898:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13922:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13881:16:25"},"nodeType":"YulFunctionCall","src":"13881:49:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13871:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13661:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13672:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13684:6:25","type":""}],"src":"13616:320:25"},{"body":{"nodeType":"YulBlock","src":"14088:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14111:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"14116:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14124:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"14098:12:25"},"nodeType":"YulFunctionCall","src":"14098:33:25"},"nodeType":"YulExpressionStatement","src":"14098:33:25"},{"nodeType":"YulVariableDeclaration","src":"14140:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14154:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14159:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14150:3:25"},"nodeType":"YulFunctionCall","src":"14150:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14144:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14182:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"14186:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14175:6:25"},"nodeType":"YulFunctionCall","src":"14175:13:25"},"nodeType":"YulExpressionStatement","src":"14175:13:25"},{"nodeType":"YulAssignment","src":"14197:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"14204:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14197:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14056:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14061:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14069:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14080:3:25","type":""}],"src":"13941:271:25"},{"body":{"nodeType":"YulBlock","src":"14272:325:25","statements":[{"nodeType":"YulAssignment","src":"14282:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"14299:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14292:3:25"},"nodeType":"YulFunctionCall","src":"14292:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14282:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"14313:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14343:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"14349:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14339:3:25"},"nodeType":"YulFunctionCall","src":"14339:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14317:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14390:31:25","statements":[{"nodeType":"YulAssignment","src":"14392:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14406:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14414:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14402:3:25"},"nodeType":"YulFunctionCall","src":"14402:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14392:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14370:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14363:6:25"},"nodeType":"YulFunctionCall","src":"14363:26:25"},"nodeType":"YulIf","src":"14360:61:25"},{"body":{"nodeType":"YulBlock","src":"14480:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14501:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14508:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14513:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14504:3:25"},"nodeType":"YulFunctionCall","src":"14504:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14494:6:25"},"nodeType":"YulFunctionCall","src":"14494:31:25"},"nodeType":"YulExpressionStatement","src":"14494:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14545:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14548:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14538:6:25"},"nodeType":"YulFunctionCall","src":"14538:15:25"},"nodeType":"YulExpressionStatement","src":"14538:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14576:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14566:6:25"},"nodeType":"YulFunctionCall","src":"14566:15:25"},"nodeType":"YulExpressionStatement","src":"14566:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14436:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14459:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14467:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14456:2:25"},"nodeType":"YulFunctionCall","src":"14456:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14433:2:25"},"nodeType":"YulFunctionCall","src":"14433:38:25"},"nodeType":"YulIf","src":"14430:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14252:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14261:6:25","type":""}],"src":"14217:380:25"},{"body":{"nodeType":"YulBlock","src":"14634:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14651:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14658:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14663:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14654:3:25"},"nodeType":"YulFunctionCall","src":"14654:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14644:6:25"},"nodeType":"YulFunctionCall","src":"14644:31:25"},"nodeType":"YulExpressionStatement","src":"14644:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14694:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:15:25"},"nodeType":"YulExpressionStatement","src":"14684:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14715:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14718:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14708:6:25"},"nodeType":"YulFunctionCall","src":"14708:15:25"},"nodeType":"YulExpressionStatement","src":"14708:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14602:127:25"},{"body":{"nodeType":"YulBlock","src":"14782:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"14809:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14811:16:25"},"nodeType":"YulFunctionCall","src":"14811:18:25"},"nodeType":"YulExpressionStatement","src":"14811:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14798:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14805:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14801:3:25"},"nodeType":"YulFunctionCall","src":"14801:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14795:2:25"},"nodeType":"YulFunctionCall","src":"14795:13:25"},"nodeType":"YulIf","src":"14792:39:25"},{"nodeType":"YulAssignment","src":"14840:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"14854:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14847:3:25"},"nodeType":"YulFunctionCall","src":"14847:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"14840:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14765:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"14768:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"14774:3:25","type":""}],"src":"14734:128:25"},{"body":{"nodeType":"YulBlock","src":"15041:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15051:6:25"},"nodeType":"YulFunctionCall","src":"15051:21:25"},"nodeType":"YulExpressionStatement","src":"15051:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15092:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15103:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15088:3:25"},"nodeType":"YulFunctionCall","src":"15088:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15108:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15081:6:25"},"nodeType":"YulFunctionCall","src":"15081:30:25"},"nodeType":"YulExpressionStatement","src":"15081:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15131:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15127:3:25"},"nodeType":"YulFunctionCall","src":"15127:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"15147:34:25","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15120:6:25"},"nodeType":"YulFunctionCall","src":"15120:62:25"},"nodeType":"YulExpressionStatement","src":"15120:62:25"},{"nodeType":"YulAssignment","src":"15191:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15203:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15214:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15199:3:25"},"nodeType":"YulFunctionCall","src":"15199:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15191:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15018:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15032:4:25","type":""}],"src":"14867:356:25"},{"body":{"nodeType":"YulBlock","src":"15402:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15419:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15430:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15412:6:25"},"nodeType":"YulFunctionCall","src":"15412:21:25"},"nodeType":"YulExpressionStatement","src":"15412:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15449:3:25"},"nodeType":"YulFunctionCall","src":"15449:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15469:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15442:6:25"},"nodeType":"YulFunctionCall","src":"15442:30:25"},"nodeType":"YulExpressionStatement","src":"15442:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15492:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15503:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15488:3:25"},"nodeType":"YulFunctionCall","src":"15488:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"15508:31:25","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15481:6:25"},"nodeType":"YulFunctionCall","src":"15481:59:25"},"nodeType":"YulExpressionStatement","src":"15481:59:25"},{"nodeType":"YulAssignment","src":"15549:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15572:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15557:3:25"},"nodeType":"YulFunctionCall","src":"15557:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15549:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15379:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15393:4:25","type":""}],"src":"15228:353:25"},{"body":{"nodeType":"YulBlock","src":"15652:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15669:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15674:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15662:6:25"},"nodeType":"YulFunctionCall","src":"15662:19:25"},"nodeType":"YulExpressionStatement","src":"15662:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15707:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"15712:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15703:3:25"},"nodeType":"YulFunctionCall","src":"15703:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"15719:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"15726:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"15690:12:25"},"nodeType":"YulFunctionCall","src":"15690:43:25"},"nodeType":"YulExpressionStatement","src":"15690:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15757:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15762:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15753:3:25"},"nodeType":"YulFunctionCall","src":"15753:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"15771:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15749:3:25"},"nodeType":"YulFunctionCall","src":"15749:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"15778:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15742:6:25"},"nodeType":"YulFunctionCall","src":"15742:38:25"},"nodeType":"YulExpressionStatement","src":"15742:38:25"},{"nodeType":"YulAssignment","src":"15789:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15804:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15817:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15825:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15813:3:25"},"nodeType":"YulFunctionCall","src":"15813:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15834:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15830:3:25"},"nodeType":"YulFunctionCall","src":"15830:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15809:3:25"},"nodeType":"YulFunctionCall","src":"15809:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15800:3:25"},"nodeType":"YulFunctionCall","src":"15800:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"15841:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15796:3:25"},"nodeType":"YulFunctionCall","src":"15796:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15789:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"15621:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"15628:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15636:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15644:3:25","type":""}],"src":"15586:266:25"},{"body":{"nodeType":"YulBlock","src":"16012:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16029:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16044:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16052:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16040:3:25"},"nodeType":"YulFunctionCall","src":"16040:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16022:6:25"},"nodeType":"YulFunctionCall","src":"16022:38:25"},"nodeType":"YulExpressionStatement","src":"16022:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16080:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16091:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16076:3:25"},"nodeType":"YulFunctionCall","src":"16076:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16096:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16069:6:25"},"nodeType":"YulFunctionCall","src":"16069:30:25"},"nodeType":"YulExpressionStatement","src":"16069:30:25"},{"nodeType":"YulAssignment","src":"16108:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16142:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16150:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16162:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16173:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16158:3:25"},"nodeType":"YulFunctionCall","src":"16158:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16116:25:25"},"nodeType":"YulFunctionCall","src":"16116:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16108:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15965:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15976:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15984:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15992:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16003:4:25","type":""}],"src":"15857:326:25"},{"body":{"nodeType":"YulBlock","src":"16362:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16390:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16372:6:25"},"nodeType":"YulFunctionCall","src":"16372:21:25"},"nodeType":"YulExpressionStatement","src":"16372:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16413:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16424:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16409:3:25"},"nodeType":"YulFunctionCall","src":"16409:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16429:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16402:6:25"},"nodeType":"YulFunctionCall","src":"16402:30:25"},"nodeType":"YulExpressionStatement","src":"16402:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:25"},"nodeType":"YulFunctionCall","src":"16448:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"16468:32:25","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:25"},"nodeType":"YulFunctionCall","src":"16441:60:25"},"nodeType":"YulExpressionStatement","src":"16441:60:25"},{"nodeType":"YulAssignment","src":"16510:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16533:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16518:3:25"},"nodeType":"YulFunctionCall","src":"16518:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16510:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16339:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16353:4:25","type":""}],"src":"16188:354:25"},{"body":{"nodeType":"YulBlock","src":"16784:372:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16801:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16816:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16824:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16812:3:25"},"nodeType":"YulFunctionCall","src":"16812:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16794:6:25"},"nodeType":"YulFunctionCall","src":"16794:38:25"},"nodeType":"YulExpressionStatement","src":"16794:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16852:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16863:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16848:3:25"},"nodeType":"YulFunctionCall","src":"16848:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16868:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16841:6:25"},"nodeType":"YulFunctionCall","src":"16841:31:25"},"nodeType":"YulExpressionStatement","src":"16841:31:25"},{"nodeType":"YulVariableDeclaration","src":"16881:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16921:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16929:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16937:3:25"},"nodeType":"YulFunctionCall","src":"16937:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16895:25:25"},"nodeType":"YulFunctionCall","src":"16895:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16885:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16973:3:25"},"nodeType":"YulFunctionCall","src":"16973:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16997:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17005:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16993:3:25"},"nodeType":"YulFunctionCall","src":"16993:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16966:6:25"},"nodeType":"YulFunctionCall","src":"16966:59:25"},"nodeType":"YulExpressionStatement","src":"16966:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17045:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17056:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17041:3:25"},"nodeType":"YulFunctionCall","src":"17041:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17065:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17073:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17061:3:25"},"nodeType":"YulFunctionCall","src":"17061:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17034:6:25"},"nodeType":"YulFunctionCall","src":"17034:50:25"},"nodeType":"YulExpressionStatement","src":"17034:50:25"},{"nodeType":"YulAssignment","src":"17093:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17127:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"17135:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17143:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17101:25:25"},"nodeType":"YulFunctionCall","src":"17101:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17093:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16713:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16724:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16732:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16740:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16748:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16756:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16764:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16775:4:25","type":""}],"src":"16547:609:25"},{"body":{"nodeType":"YulBlock","src":"17370:310:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17387:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17402:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17410:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17398:3:25"},"nodeType":"YulFunctionCall","src":"17398:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17380:6:25"},"nodeType":"YulFunctionCall","src":"17380:38:25"},"nodeType":"YulExpressionStatement","src":"17380:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17438:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17449:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17434:3:25"},"nodeType":"YulFunctionCall","src":"17434:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17454:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17427:6:25"},"nodeType":"YulFunctionCall","src":"17427:31:25"},"nodeType":"YulExpressionStatement","src":"17427:31:25"},{"nodeType":"YulAssignment","src":"17467:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17501:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"17509:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17521:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17532:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17517:3:25"},"nodeType":"YulFunctionCall","src":"17517:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17475:25:25"},"nodeType":"YulFunctionCall","src":"17475:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17467:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17568:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17553:3:25"},"nodeType":"YulFunctionCall","src":"17553:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17577:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17585:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17573:3:25"},"nodeType":"YulFunctionCall","src":"17573:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17546:6:25"},"nodeType":"YulFunctionCall","src":"17546:59:25"},"nodeType":"YulExpressionStatement","src":"17546:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17625:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17636:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17621:3:25"},"nodeType":"YulFunctionCall","src":"17621:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17645:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17661:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17666:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17657:3:25"},"nodeType":"YulFunctionCall","src":"17657:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17670:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17653:3:25"},"nodeType":"YulFunctionCall","src":"17653:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17641:3:25"},"nodeType":"YulFunctionCall","src":"17641:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17614:6:25"},"nodeType":"YulFunctionCall","src":"17614:60:25"},"nodeType":"YulExpressionStatement","src":"17614:60:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17307:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17318:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17326:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17334:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17342:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17350:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17361:4:25","type":""}],"src":"17161:519:25"},{"body":{"nodeType":"YulBlock","src":"17859:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17876:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17887:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17869:6:25"},"nodeType":"YulFunctionCall","src":"17869:21:25"},"nodeType":"YulExpressionStatement","src":"17869:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17910:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17921:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17906:3:25"},"nodeType":"YulFunctionCall","src":"17906:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17926:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17899:6:25"},"nodeType":"YulFunctionCall","src":"17899:30:25"},"nodeType":"YulExpressionStatement","src":"17899:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17949:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17960:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17945:3:25"},"nodeType":"YulFunctionCall","src":"17945:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nodeType":"YulLiteral","src":"17965:34:25","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17938:6:25"},"nodeType":"YulFunctionCall","src":"17938:62:25"},"nodeType":"YulExpressionStatement","src":"17938:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18020:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18031:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18016:3:25"},"nodeType":"YulFunctionCall","src":"18016:18:25"},{"hexValue":"616e6379","kind":"string","nodeType":"YulLiteral","src":"18036:6:25","type":"","value":"ancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18009:6:25"},"nodeType":"YulFunctionCall","src":"18009:34:25"},"nodeType":"YulExpressionStatement","src":"18009:34:25"},{"nodeType":"YulAssignment","src":"18052:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18064:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18075:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18060:3:25"},"nodeType":"YulFunctionCall","src":"18060:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18052:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17836:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17850:4:25","type":""}],"src":"17685:400:25"},{"body":{"nodeType":"YulBlock","src":"18136:163:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18146:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"18156:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18150:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18183:29:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18202:5:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18209:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18198:3:25"},"nodeType":"YulFunctionCall","src":"18198:14:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"18187:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"18240:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18242:16:25"},"nodeType":"YulFunctionCall","src":"18242:18:25"},"nodeType":"YulExpressionStatement","src":"18242:18:25"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18227:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18236:2:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18224:2:25"},"nodeType":"YulFunctionCall","src":"18224:15:25"},"nodeType":"YulIf","src":"18221:41:25"},{"nodeType":"YulAssignment","src":"18271:22:25","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18282:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"18291:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18278:3:25"},"nodeType":"YulFunctionCall","src":"18278:15:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18271:3:25"}]}]},"name":"increment_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18118:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18128:3:25","type":""}],"src":"18090:209:25"},{"body":{"nodeType":"YulBlock","src":"18478:176:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18506:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18488:6:25"},"nodeType":"YulFunctionCall","src":"18488:21:25"},"nodeType":"YulExpressionStatement","src":"18488:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18540:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18525:3:25"},"nodeType":"YulFunctionCall","src":"18525:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18545:2:25","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18518:6:25"},"nodeType":"YulFunctionCall","src":"18518:30:25"},"nodeType":"YulExpressionStatement","src":"18518:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18568:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18579:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18564:3:25"},"nodeType":"YulFunctionCall","src":"18564:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nodeType":"YulLiteral","src":"18584:28:25","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18557:6:25"},"nodeType":"YulFunctionCall","src":"18557:56:25"},"nodeType":"YulExpressionStatement","src":"18557:56:25"},{"nodeType":"YulAssignment","src":"18622:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18630:3:25"},"nodeType":"YulFunctionCall","src":"18630:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18622:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18455:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18469:4:25","type":""}],"src":"18304:350:25"},{"body":{"nodeType":"YulBlock","src":"18708:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"18730:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18732:16:25"},"nodeType":"YulFunctionCall","src":"18732:18:25"},"nodeType":"YulExpressionStatement","src":"18732:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18724:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18727:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18721:2:25"},"nodeType":"YulFunctionCall","src":"18721:8:25"},"nodeType":"YulIf","src":"18718:34:25"},{"nodeType":"YulAssignment","src":"18761:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18773:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18776:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18769:3:25"},"nodeType":"YulFunctionCall","src":"18769:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"18761:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18690:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"18693:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"18699:4:25","type":""}],"src":"18659:125:25"},{"body":{"nodeType":"YulBlock","src":"18821:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18838:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18845:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18850:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18841:3:25"},"nodeType":"YulFunctionCall","src":"18841:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18831:6:25"},"nodeType":"YulFunctionCall","src":"18831:31:25"},"nodeType":"YulExpressionStatement","src":"18831:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18878:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18881:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18871:6:25"},"nodeType":"YulFunctionCall","src":"18871:15:25"},"nodeType":"YulExpressionStatement","src":"18871:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18902:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18905:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18895:6:25"},"nodeType":"YulFunctionCall","src":"18895:15:25"},"nodeType":"YulExpressionStatement","src":"18895:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"18789:127:25"},{"body":{"nodeType":"YulBlock","src":"18968:88:25","statements":[{"body":{"nodeType":"YulBlock","src":"18999:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19001:16:25"},"nodeType":"YulFunctionCall","src":"19001:18:25"},"nodeType":"YulExpressionStatement","src":"19001:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18984:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18995:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18991:3:25"},"nodeType":"YulFunctionCall","src":"18991:6:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18981:2:25"},"nodeType":"YulFunctionCall","src":"18981:17:25"},"nodeType":"YulIf","src":"18978:43:25"},{"nodeType":"YulAssignment","src":"19030:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19041:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"19048:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19037:3:25"},"nodeType":"YulFunctionCall","src":"19037:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19030:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18950:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18960:3:25","type":""}],"src":"18921:135:25"},{"body":{"nodeType":"YulBlock","src":"19372:557:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19389:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19404:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19412:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19400:3:25"},"nodeType":"YulFunctionCall","src":"19400:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19382:6:25"},"nodeType":"YulFunctionCall","src":"19382:38:25"},"nodeType":"YulExpressionStatement","src":"19382:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19440:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19451:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19456:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19429:6:25"},"nodeType":"YulFunctionCall","src":"19429:31:25"},"nodeType":"YulExpressionStatement","src":"19429:31:25"},{"nodeType":"YulVariableDeclaration","src":"19469:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19509:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19517:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19540:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19525:3:25"},"nodeType":"YulFunctionCall","src":"19525:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19483:25:25"},"nodeType":"YulFunctionCall","src":"19483:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19473:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19565:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19576:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19561:3:25"},"nodeType":"YulFunctionCall","src":"19561:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19585:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19601:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19606:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19597:3:25"},"nodeType":"YulFunctionCall","src":"19597:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"19610:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19593:3:25"},"nodeType":"YulFunctionCall","src":"19593:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19581:3:25"},"nodeType":"YulFunctionCall","src":"19581:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19554:6:25"},"nodeType":"YulFunctionCall","src":"19554:60:25"},"nodeType":"YulExpressionStatement","src":"19554:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:25"},"nodeType":"YulFunctionCall","src":"19630:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"19654:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19662:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19650:3:25"},"nodeType":"YulFunctionCall","src":"19650:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19623:6:25"},"nodeType":"YulFunctionCall","src":"19623:59:25"},"nodeType":"YulExpressionStatement","src":"19623:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19702:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19713:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19698:3:25"},"nodeType":"YulFunctionCall","src":"19698:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19723:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19731:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19719:3:25"},"nodeType":"YulFunctionCall","src":"19719:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19691:6:25"},"nodeType":"YulFunctionCall","src":"19691:51:25"},"nodeType":"YulExpressionStatement","src":"19691:51:25"},{"nodeType":"YulVariableDeclaration","src":"19751:63:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"19791:6:25"},{"name":"value6","nodeType":"YulIdentifier","src":"19799:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"19807:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19765:25:25"},"nodeType":"YulFunctionCall","src":"19765:49:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"19755:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19834:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19845:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19830:3:25"},"nodeType":"YulFunctionCall","src":"19830:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"19855:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19863:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19851:3:25"},"nodeType":"YulFunctionCall","src":"19851:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19823:6:25"},"nodeType":"YulFunctionCall","src":"19823:51:25"},"nodeType":"YulExpressionStatement","src":"19823:51:25"},{"nodeType":"YulAssignment","src":"19883:40:25","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"19908:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"19916:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19891:16:25"},"nodeType":"YulFunctionCall","src":"19891:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19883:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19285:9:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"19296:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"19304:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"19312:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19320:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19328:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19336:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19344:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19352:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19363:4:25","type":""}],"src":"19061:868:25"},{"body":{"nodeType":"YulBlock","src":"20108:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20136:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20118:6:25"},"nodeType":"YulFunctionCall","src":"20118:21:25"},"nodeType":"YulExpressionStatement","src":"20118:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20155:3:25"},"nodeType":"YulFunctionCall","src":"20155:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20175:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20148:6:25"},"nodeType":"YulFunctionCall","src":"20148:30:25"},"nodeType":"YulExpressionStatement","src":"20148:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20209:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20194:3:25"},"nodeType":"YulFunctionCall","src":"20194:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nodeType":"YulLiteral","src":"20214:34:25","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20187:6:25"},"nodeType":"YulFunctionCall","src":"20187:62:25"},"nodeType":"YulExpressionStatement","src":"20187:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20280:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20265:3:25"},"nodeType":"YulFunctionCall","src":"20265:18:25"},{"hexValue":"79","kind":"string","nodeType":"YulLiteral","src":"20285:3:25","type":"","value":"y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20258:6:25"},"nodeType":"YulFunctionCall","src":"20258:31:25"},"nodeType":"YulExpressionStatement","src":"20258:31:25"},{"nodeType":"YulAssignment","src":"20298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20306:3:25"},"nodeType":"YulFunctionCall","src":"20306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20085:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"19934:397:25"},{"body":{"nodeType":"YulBlock","src":"20510:234:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20527:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20538:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20520:6:25"},"nodeType":"YulFunctionCall","src":"20520:21:25"},"nodeType":"YulExpressionStatement","src":"20520:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20572:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20557:3:25"},"nodeType":"YulFunctionCall","src":"20557:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20577:2:25","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20550:6:25"},"nodeType":"YulFunctionCall","src":"20550:30:25"},"nodeType":"YulExpressionStatement","src":"20550:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20600:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20611:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20596:3:25"},"nodeType":"YulFunctionCall","src":"20596:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nodeType":"YulLiteral","src":"20616:34:25","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20589:6:25"},"nodeType":"YulFunctionCall","src":"20589:62:25"},"nodeType":"YulExpressionStatement","src":"20589:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20667:3:25"},"nodeType":"YulFunctionCall","src":"20667:18:25"},{"hexValue":"616464726573732073697a65","kind":"string","nodeType":"YulLiteral","src":"20687:14:25","type":"","value":"address size"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20660:6:25"},"nodeType":"YulFunctionCall","src":"20660:42:25"},"nodeType":"YulExpressionStatement","src":"20660:42:25"},{"nodeType":"YulAssignment","src":"20711:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20723:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20734:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20719:3:25"},"nodeType":"YulFunctionCall","src":"20719:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20711:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20487:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20501:4:25","type":""}],"src":"20336:408:25"},{"body":{"nodeType":"YulBlock","src":"20923:245:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20951:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20933:6:25"},"nodeType":"YulFunctionCall","src":"20933:21:25"},"nodeType":"YulExpressionStatement","src":"20933:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20974:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20985:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20970:3:25"},"nodeType":"YulFunctionCall","src":"20970:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20990:2:25","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20963:6:25"},"nodeType":"YulFunctionCall","src":"20963:30:25"},"nodeType":"YulExpressionStatement","src":"20963:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21024:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21009:3:25"},"nodeType":"YulFunctionCall","src":"21009:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nodeType":"YulLiteral","src":"21029:34:25","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21002:6:25"},"nodeType":"YulFunctionCall","src":"21002:62:25"},"nodeType":"YulExpressionStatement","src":"21002:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21084:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21095:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21080:3:25"},"nodeType":"YulFunctionCall","src":"21080:18:25"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nodeType":"YulLiteral","src":"21100:25:25","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21073:6:25"},"nodeType":"YulFunctionCall","src":"21073:53:25"},"nodeType":"YulExpressionStatement","src":"21073:53:25"},{"nodeType":"YulAssignment","src":"21135:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21158:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21143:3:25"},"nodeType":"YulFunctionCall","src":"21143:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21135:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20900:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20914:4:25","type":""}],"src":"20749:419:25"},{"body":{"nodeType":"YulBlock","src":"21347:231:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21364:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21375:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21357:6:25"},"nodeType":"YulFunctionCall","src":"21357:21:25"},"nodeType":"YulExpressionStatement","src":"21357:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21398:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21409:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21394:3:25"},"nodeType":"YulFunctionCall","src":"21394:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21414:2:25","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21387:6:25"},"nodeType":"YulFunctionCall","src":"21387:30:25"},"nodeType":"YulExpressionStatement","src":"21387:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21437:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21448:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21433:3:25"},"nodeType":"YulFunctionCall","src":"21433:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nodeType":"YulLiteral","src":"21453:34:25","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21426:6:25"},"nodeType":"YulFunctionCall","src":"21426:62:25"},"nodeType":"YulExpressionStatement","src":"21426:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21508:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21519:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21504:3:25"},"nodeType":"YulFunctionCall","src":"21504:18:25"},{"hexValue":"20666f722066656573","kind":"string","nodeType":"YulLiteral","src":"21524:11:25","type":"","value":" for fees"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21497:6:25"},"nodeType":"YulFunctionCall","src":"21497:39:25"},"nodeType":"YulExpressionStatement","src":"21497:39:25"},{"nodeType":"YulAssignment","src":"21545:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21568:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21553:3:25"},"nodeType":"YulFunctionCall","src":"21553:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21545:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21324:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21338:4:25","type":""}],"src":"21173:405:25"},{"body":{"nodeType":"YulBlock","src":"21774:14:25","statements":[{"nodeType":"YulAssignment","src":"21776:10:25","value":{"name":"pos","nodeType":"YulIdentifier","src":"21783:3:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21776:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21758:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21766:3:25","type":""}],"src":"21583:205:25"},{"body":{"nodeType":"YulBlock","src":"21967:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21977:6:25"},"nodeType":"YulFunctionCall","src":"21977:21:25"},"nodeType":"YulExpressionStatement","src":"21977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22014:3:25"},"nodeType":"YulFunctionCall","src":"22014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22034:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22007:6:25"},"nodeType":"YulFunctionCall","src":"22007:30:25"},"nodeType":"YulExpressionStatement","src":"22007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22053:3:25"},"nodeType":"YulFunctionCall","src":"22053:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nodeType":"YulLiteral","src":"22073:33:25","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22046:6:25"},"nodeType":"YulFunctionCall","src":"22046:61:25"},"nodeType":"YulExpressionStatement","src":"22046:61:25"},{"nodeType":"YulAssignment","src":"22116:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22124:3:25"},"nodeType":"YulFunctionCall","src":"22124:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22116:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21958:4:25","type":""}],"src":"21793:355:25"},{"body":{"nodeType":"YulBlock","src":"22300:186:25","statements":[{"nodeType":"YulVariableDeclaration","src":"22310:41:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22324:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22320:3:25"},"nodeType":"YulFunctionCall","src":"22320:31:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22314:2:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22367:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22380:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"22384:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22393:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22372:3:25"},"nodeType":"YulFunctionCall","src":"22372:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22360:6:25"},"nodeType":"YulFunctionCall","src":"22360:37:25"},"nodeType":"YulExpressionStatement","src":"22360:37:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22417:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22422:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22413:3:25"},"nodeType":"YulFunctionCall","src":"22413:12:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22435:2:25","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"22439:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22431:3:25"},"nodeType":"YulFunctionCall","src":"22431:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22448:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22427:3:25"},"nodeType":"YulFunctionCall","src":"22427:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22406:6:25"},"nodeType":"YulFunctionCall","src":"22406:46:25"},"nodeType":"YulExpressionStatement","src":"22406:46:25"},{"nodeType":"YulAssignment","src":"22461:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22472:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22477:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22468:3:25"},"nodeType":"YulFunctionCall","src":"22468:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22461:3:25"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22268:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22273:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22281:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22292:3:25","type":""}],"src":"22153:333:25"},{"body":{"nodeType":"YulBlock","src":"22764:452:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22781:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22796:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22804:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22792:3:25"},"nodeType":"YulFunctionCall","src":"22792:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22774:6:25"},"nodeType":"YulFunctionCall","src":"22774:38:25"},"nodeType":"YulExpressionStatement","src":"22774:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22832:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22843:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22828:3:25"},"nodeType":"YulFunctionCall","src":"22828:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22848:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22821:6:25"},"nodeType":"YulFunctionCall","src":"22821:31:25"},"nodeType":"YulExpressionStatement","src":"22821:31:25"},{"nodeType":"YulVariableDeclaration","src":"22861:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22892:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22904:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22915:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22900:3:25"},"nodeType":"YulFunctionCall","src":"22900:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"22875:16:25"},"nodeType":"YulFunctionCall","src":"22875:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22865:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22951:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22936:3:25"},"nodeType":"YulFunctionCall","src":"22936:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22960:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22976:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22981:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22972:3:25"},"nodeType":"YulFunctionCall","src":"22972:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22985:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22968:3:25"},"nodeType":"YulFunctionCall","src":"22968:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22956:3:25"},"nodeType":"YulFunctionCall","src":"22956:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22929:6:25"},"nodeType":"YulFunctionCall","src":"22929:60:25"},"nodeType":"YulExpressionStatement","src":"22929:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23009:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23020:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23005:3:25"},"nodeType":"YulFunctionCall","src":"23005:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23029:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23037:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23025:3:25"},"nodeType":"YulFunctionCall","src":"23025:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22998:6:25"},"nodeType":"YulFunctionCall","src":"22998:59:25"},"nodeType":"YulExpressionStatement","src":"22998:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23077:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23088:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23073:3:25"},"nodeType":"YulFunctionCall","src":"23073:19:25"},{"name":"value4","nodeType":"YulIdentifier","src":"23094:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23066:6:25"},"nodeType":"YulFunctionCall","src":"23066:35:25"},"nodeType":"YulExpressionStatement","src":"23066:35:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23121:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23132:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23117:3:25"},"nodeType":"YulFunctionCall","src":"23117:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"23142:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23138:3:25"},"nodeType":"YulFunctionCall","src":"23138:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23110:6:25"},"nodeType":"YulFunctionCall","src":"23110:51:25"},"nodeType":"YulExpressionStatement","src":"23110:51:25"},{"nodeType":"YulAssignment","src":"23170:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"23195:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"23203:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23178:16:25"},"nodeType":"YulFunctionCall","src":"23178:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23170:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22693:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"22704:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22712:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22720:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22728:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22736:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22744:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22755:4:25","type":""}],"src":"22491:725:25"},{"body":{"nodeType":"YulBlock","src":"23366:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23383:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23396:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"23401:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23392:3:25"},"nodeType":"YulFunctionCall","src":"23392:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23414:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"23419:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23388:3:25"},"nodeType":"YulFunctionCall","src":"23388:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23376:6:25"},"nodeType":"YulFunctionCall","src":"23376:51:25"},"nodeType":"YulExpressionStatement","src":"23376:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23447:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23452:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23443:3:25"},"nodeType":"YulFunctionCall","src":"23443:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"23456:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23436:6:25"},"nodeType":"YulFunctionCall","src":"23436:27:25"},"nodeType":"YulExpressionStatement","src":"23436:27:25"},{"nodeType":"YulAssignment","src":"23472:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23483:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23488:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23479:3:25"},"nodeType":"YulFunctionCall","src":"23479:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23472:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23334:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23339:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23347:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23358:3:25","type":""}],"src":"23221:276:25"},{"body":{"nodeType":"YulBlock","src":"23676:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23693:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23704:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23686:6:25"},"nodeType":"YulFunctionCall","src":"23686:21:25"},"nodeType":"YulExpressionStatement","src":"23686:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23738:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23723:3:25"},"nodeType":"YulFunctionCall","src":"23723:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23743:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23716:6:25"},"nodeType":"YulFunctionCall","src":"23716:30:25"},"nodeType":"YulExpressionStatement","src":"23716:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23777:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23762:3:25"},"nodeType":"YulFunctionCall","src":"23762:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nodeType":"YulLiteral","src":"23782:34:25","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23755:6:25"},"nodeType":"YulFunctionCall","src":"23755:62:25"},"nodeType":"YulExpressionStatement","src":"23755:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23837:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23848:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23833:3:25"},"nodeType":"YulFunctionCall","src":"23833:18:25"},{"hexValue":"6c6172676520","kind":"string","nodeType":"YulLiteral","src":"23853:8:25","type":"","value":"large "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23826:6:25"},"nodeType":"YulFunctionCall","src":"23826:36:25"},"nodeType":"YulExpressionStatement","src":"23826:36:25"},{"nodeType":"YulAssignment","src":"23871:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23894:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23879:3:25"},"nodeType":"YulFunctionCall","src":"23879:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23871:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23653:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23667:4:25","type":""}],"src":"23502:402:25"},{"body":{"nodeType":"YulBlock","src":"23961:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"24020:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24022:16:25"},"nodeType":"YulFunctionCall","src":"24022:18:25"},"nodeType":"YulExpressionStatement","src":"24022:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23992:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23985:6:25"},"nodeType":"YulFunctionCall","src":"23985:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23978:6:25"},"nodeType":"YulFunctionCall","src":"23978:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24000:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24011:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24007:3:25"},"nodeType":"YulFunctionCall","src":"24007:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"24015:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24003:3:25"},"nodeType":"YulFunctionCall","src":"24003:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23997:2:25"},"nodeType":"YulFunctionCall","src":"23997:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23974:3:25"},"nodeType":"YulFunctionCall","src":"23974:45:25"},"nodeType":"YulIf","src":"23971:71:25"},{"nodeType":"YulAssignment","src":"24051:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24066:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24069:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24062:3:25"},"nodeType":"YulFunctionCall","src":"24062:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24051:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23940:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"23943:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23949:7:25","type":""}],"src":"23909:168:25"},{"body":{"nodeType":"YulBlock","src":"24114:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24131:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24138:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24143:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24134:3:25"},"nodeType":"YulFunctionCall","src":"24134:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24124:6:25"},"nodeType":"YulFunctionCall","src":"24124:31:25"},"nodeType":"YulExpressionStatement","src":"24124:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24171:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24174:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24164:6:25"},"nodeType":"YulFunctionCall","src":"24164:15:25"},"nodeType":"YulExpressionStatement","src":"24164:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24195:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24198:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24188:6:25"},"nodeType":"YulFunctionCall","src":"24188:15:25"},"nodeType":"YulExpressionStatement","src":"24188:15:25"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"24082:127:25"},{"body":{"nodeType":"YulBlock","src":"24260:74:25","statements":[{"body":{"nodeType":"YulBlock","src":"24283:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24285:16:25"},"nodeType":"YulFunctionCall","src":"24285:18:25"},"nodeType":"YulExpressionStatement","src":"24285:18:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24280:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24273:6:25"},"nodeType":"YulFunctionCall","src":"24273:9:25"},"nodeType":"YulIf","src":"24270:35:25"},{"nodeType":"YulAssignment","src":"24314:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24323:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24326:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24319:3:25"},"nodeType":"YulFunctionCall","src":"24319:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24314:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24245:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24248:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24254:1:25","type":""}],"src":"24214:120:25"},{"body":{"nodeType":"YulBlock","src":"24391:235:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24401:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24411:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24405:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24454:21:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24469:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24472:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24465:3:25"},"nodeType":"YulFunctionCall","src":"24465:10:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"24458:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24484:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24499:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24502:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24495:3:25"},"nodeType":"YulFunctionCall","src":"24495:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24488:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24565:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24567:16:25"},"nodeType":"YulFunctionCall","src":"24567:18:25"},"nodeType":"YulExpressionStatement","src":"24567:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24535:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24528:6:25"},"nodeType":"YulFunctionCall","src":"24528:11:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24521:6:25"},"nodeType":"YulFunctionCall","src":"24521:19:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24545:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24554:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"24558:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24550:3:25"},"nodeType":"YulFunctionCall","src":"24550:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24542:2:25"},"nodeType":"YulFunctionCall","src":"24542:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24517:3:25"},"nodeType":"YulFunctionCall","src":"24517:47:25"},"nodeType":"YulIf","src":"24514:73:25"},{"nodeType":"YulAssignment","src":"24596:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24611:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24616:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24607:3:25"},"nodeType":"YulFunctionCall","src":"24607:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24596:7:25"}]}]},"name":"checked_mul_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24370:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24373:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"24379:7:25","type":""}],"src":"24339:287:25"},{"body":{"nodeType":"YulBlock","src":"24677:170:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24687:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24697:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24691:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24740:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24755:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24758:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24751:3:25"},"nodeType":"YulFunctionCall","src":"24751:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24744:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24785:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24787:16:25"},"nodeType":"YulFunctionCall","src":"24787:18:25"},"nodeType":"YulExpressionStatement","src":"24787:18:25"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24780:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24773:6:25"},"nodeType":"YulFunctionCall","src":"24773:11:25"},"nodeType":"YulIf","src":"24770:37:25"},{"nodeType":"YulAssignment","src":"24816:25:25","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24829:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24832:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:10:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24837:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24821:3:25"},"nodeType":"YulFunctionCall","src":"24821:20:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24816:1:25"}]}]},"name":"checked_div_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24662:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24665:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24671:1:25","type":""}],"src":"24631:216:25"},{"body":{"nodeType":"YulBlock","src":"25079:355:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25096:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25111:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25119:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25107:3:25"},"nodeType":"YulFunctionCall","src":"25107:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25089:6:25"},"nodeType":"YulFunctionCall","src":"25089:38:25"},"nodeType":"YulExpressionStatement","src":"25089:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25158:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25143:3:25"},"nodeType":"YulFunctionCall","src":"25143:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25163:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25136:6:25"},"nodeType":"YulFunctionCall","src":"25136:31:25"},"nodeType":"YulExpressionStatement","src":"25136:31:25"},{"nodeType":"YulVariableDeclaration","src":"25176:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25216:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"25224:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25236:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25247:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25232:3:25"},"nodeType":"YulFunctionCall","src":"25232:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"25190:25:25"},"nodeType":"YulFunctionCall","src":"25190:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"25180:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25272:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25283:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25268:3:25"},"nodeType":"YulFunctionCall","src":"25268:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"25292:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25300:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25288:3:25"},"nodeType":"YulFunctionCall","src":"25288:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25261:6:25"},"nodeType":"YulFunctionCall","src":"25261:59:25"},"nodeType":"YulExpressionStatement","src":"25261:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25340:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25351:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25336:3:25"},"nodeType":"YulFunctionCall","src":"25336:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"25360:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25368:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25356:3:25"},"nodeType":"YulFunctionCall","src":"25356:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25329:6:25"},"nodeType":"YulFunctionCall","src":"25329:50:25"},"nodeType":"YulExpressionStatement","src":"25329:50:25"},{"nodeType":"YulAssignment","src":"25388:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25413:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"25421:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25396:16:25"},"nodeType":"YulFunctionCall","src":"25396:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25388:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25016:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25027:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25035:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25043:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25051:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25059:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25070:4:25","type":""}],"src":"24852:582:25"},{"body":{"nodeType":"YulBlock","src":"25471:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25488:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25495:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25500:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25491:3:25"},"nodeType":"YulFunctionCall","src":"25491:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25481:6:25"},"nodeType":"YulFunctionCall","src":"25481:31:25"},"nodeType":"YulExpressionStatement","src":"25481:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25528:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25531:4:25","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25521:6:25"},"nodeType":"YulFunctionCall","src":"25521:15:25"},"nodeType":"YulExpressionStatement","src":"25521:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25552:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25555:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25545:6:25"},"nodeType":"YulFunctionCall","src":"25545:15:25"},"nodeType":"YulExpressionStatement","src":"25545:15:25"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"25439:127:25"},{"body":{"nodeType":"YulBlock","src":"25745:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25762:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25773:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25755:6:25"},"nodeType":"YulFunctionCall","src":"25755:21:25"},"nodeType":"YulExpressionStatement","src":"25755:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25796:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25807:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25812:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25785:6:25"},"nodeType":"YulFunctionCall","src":"25785:30:25"},"nodeType":"YulExpressionStatement","src":"25785:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25835:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25846:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25831:3:25"},"nodeType":"YulFunctionCall","src":"25831:18:25"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nodeType":"YulLiteral","src":"25851:23:25","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25824:6:25"},"nodeType":"YulFunctionCall","src":"25824:51:25"},"nodeType":"YulExpressionStatement","src":"25824:51:25"},{"nodeType":"YulAssignment","src":"25884:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25907:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25892:3:25"},"nodeType":"YulFunctionCall","src":"25892:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25884:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25722:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25736:4:25","type":""}],"src":"25571:345:25"},{"body":{"nodeType":"YulBlock","src":"26095:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26112:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26123:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26105:6:25"},"nodeType":"YulFunctionCall","src":"26105:21:25"},"nodeType":"YulExpressionStatement","src":"26105:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26146:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26157:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26142:3:25"},"nodeType":"YulFunctionCall","src":"26142:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26162:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26135:6:25"},"nodeType":"YulFunctionCall","src":"26135:30:25"},"nodeType":"YulExpressionStatement","src":"26135:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26185:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26196:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26181:3:25"},"nodeType":"YulFunctionCall","src":"26181:18:25"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nodeType":"YulLiteral","src":"26201:20:25","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26174:6:25"},"nodeType":"YulFunctionCall","src":"26174:48:25"},"nodeType":"YulExpressionStatement","src":"26174:48:25"},{"nodeType":"YulAssignment","src":"26231:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26243:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26254:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26239:3:25"},"nodeType":"YulFunctionCall","src":"26239:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26231:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26072:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26086:4:25","type":""}],"src":"25921:342:25"},{"body":{"nodeType":"YulBlock","src":"26442:161:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26470:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26452:6:25"},"nodeType":"YulFunctionCall","src":"26452:21:25"},"nodeType":"YulExpressionStatement","src":"26452:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26493:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26504:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26489:3:25"},"nodeType":"YulFunctionCall","src":"26489:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26509:2:25","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26482:6:25"},"nodeType":"YulFunctionCall","src":"26482:30:25"},"nodeType":"YulExpressionStatement","src":"26482:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26543:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26528:3:25"},"nodeType":"YulFunctionCall","src":"26528:18:25"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nodeType":"YulLiteral","src":"26548:13:25","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26521:6:25"},"nodeType":"YulFunctionCall","src":"26521:41:25"},"nodeType":"YulExpressionStatement","src":"26521:41:25"},{"nodeType":"YulAssignment","src":"26571:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26583:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26594:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26579:3:25"},"nodeType":"YulFunctionCall","src":"26579:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26571:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26419:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26433:4:25","type":""}],"src":"26268:335:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), 0)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_uint128(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint128(headStart)\n value1 := abi_decode_uint128(add(headStart, 32))\n value2 := abi_decode_uint128(add(headStart, 64))\n value3 := abi_decode_uint64(add(headStart, 96))\n value4 := abi_decode_uint64(add(headStart, 128))\n }\n function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let value_1 := calldataload(add(headStart, 96))\n if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n value3 := value_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n let _1 := 0xffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n let _2 := 0xffffffffffffffff\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, _2))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value3 := value\n value4 := abi_decode_uint64(add(headStart, 96))\n value5 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value4 := value\n let value_1 := calldataload(add(headStart, 128))\n validator_revert_address(value_1)\n value5 := value_1\n let offset_2 := calldataload(add(headStart, 160))\n if gt(offset_2, _1) { revert(0, 0) }\n value6 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"LayerZeroMock: no stored payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), and(value4, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"LayerZeroMock: no receive reentr\")\n mstore(add(headStart, 96), \"ancy\")\n tail := add(headStart, 128)\n }\n function increment_t_uint64(value) -> ret\n {\n let _1 := 0xffffffffffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"LayerZeroMock: wrong nonce\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 192))\n mstore(add(headStart, 64), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value4, 0xffffffffffffffff))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes_calldata(value5, value6, tail_1)\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value7, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"LayerZeroMock: no send reentranc\")\n mstore(add(headStart, 96), \"y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"LayerZeroMock: incorrect remote \")\n mstore(add(headStart, 96), \"address size\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 55)\n mstore(add(headStart, 64), \"LayerZeroMock: destination Layer\")\n mstore(add(headStart, 96), \"Zero Endpoint not found\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"LayerZeroMock: not enough native\")\n mstore(add(headStart, 96), \" for fees\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"LayerZeroMock: failed to refund\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let _1 := not(0xffffffffffffffffffffffff)\n mstore(pos, and(shl(96, value0), _1))\n mstore(add(pos, 20), and(shl(96, value1), _1))\n end := add(pos, 40)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), sub(tail_1, headStart))\n tail := abi_encode_bytes(value5, tail_1)\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LayerZeroMock: dstNativeAmt too \")\n mstore(add(headStart, 96), \"large \")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_mul_t_uint128(x, y) -> product\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_div_t_uint128(x, y) -> r\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Invalid adapterParams\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unsupported txType\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 11)\n mstore(add(headStart, 64), \"Gas too low\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220384edda9ae8a264ade4ab6af65ffc5d1d0b63daa1521cc15633806bc2a19631664736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x4E 0xDD 0xA9 0xAE DUP11 0x26 0x4A 0xDE 0x4A 0xB6 0xAF PUSH6 0xFFC5D1D0B63D 0xAA ISZERO 0x21 0xCC ISZERO PUSH4 0x3806BC2A NOT PUSH4 0x1664736F PUSH13 0x634300080A0033000000000000 ","sourceMap":"817:15467:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:42;;;;;;;;;;-1:-1:-1;1144:42:6;;;;;;;;;;;;;188:25:25;;;244:2;229:18;;222:34;;;;161:18;1144:42:6;;;;;;;;11660:78;;;;;;;;;;-1:-1:-1;11660:78:6;;;;;:::i;:::-;;;;;11206:133;;;;;;;;;;-1:-1:-1;11206:133:6;;;;;:::i;:::-;-1:-1:-1;11331:1:6;;11206:133;;;;1182:6:25;1170:19;;;1152:38;;1140:2;1125:18;11206:133:6;1008:188:25;10246:228:6;;;;;;;;;;-1:-1:-1;10246:228:6;;;;;:::i;:::-;;:::i;:::-;;;2204:14:25;;2197:22;2179:41;;2167:2;2152:18;10246:228:6;2039:187:25;1846:73:6;;;;;;;;;;-1:-1:-1;1846:73:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13583:162::-;;;;;;;;;;-1:-1:-1;13583:162:6;;;;;:::i;:::-;13656:17;:34;;;;13700:26;:38;13583:162;1219:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13145:432::-;;;;;;;;;;-1:-1:-1;13145:432:6;;;;;:::i;:::-;-1:-1:-1;;;;;13303:47:6;;;-1:-1:-1;;;13360:53:6;;;;;;13303:16;13360:53;13423:32;:51;;;;;;-1:-1:-1;;;;;;13484:35:6;;;;;;;-1:-1:-1;;;;;13484:35:6;;;;;;;;;;-1:-1:-1;;;;;13529:41:6;-1:-1:-1;;;13529:41:6;;;;;;;;13145:432;9344:97;;;;;;;;;;-1:-1:-1;9423:11:6;;;;9344:97;;1047:26;;;;;;;;;;-1:-1:-1;1047:26:6;;;;;;;;;;;8645:693;;;;;;;;;;-1:-1:-1;8645:693:6;;;;;:::i;:::-;;:::i;11831:720::-;;;;;;;;;;-1:-1:-1;11831:720:6;;;;;:::i;:::-;;:::i;10604:121::-;;;;;;;;;;-1:-1:-1;10604:121:6;;;;;:::i;:::-;-1:-1:-1;10713:4:6;;10604:121;;;;-1:-1:-1;;;;;6855:32:25;;;6837:51;;6825:2;6810:18;10604:121:6;6691:203:25;1728:71:6;;;;;;;;;;-1:-1:-1;1728:71:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1728:71:6;;;-1:-1:-1;;;1728:71:6;;-1:-1:-1;;;;;1728:71:6;;;;;;;;-1:-1:-1;;;;;7514:31:25;;;7496:50;;-1:-1:-1;;;;;7582:32:25;;;7577:2;7562:18;;7555:60;7631:18;;;7624:34;7484:2;7469:18;1728:71:6;7296:368:25;8475:164:6;;;;;;;;;;-1:-1:-1;8475:164:6;;;;;:::i;:::-;8596:23;;;8571:6;8596:23;;;:13;:23;;;;;;;;-1:-1:-1;;;;;8596:36:6;;;;;;;;;;-1:-1:-1;;;;;8596:36:6;8475:164;;;;;;;;-1:-1:-1;;;;;8155:31:25;;;8137:50;;8125:2;8110:18;8475:164:6;7993:200:25;12679:173:6;;;;;;;;;;-1:-1:-1;12679:173:6;;;;;:::i;:::-;;:::i;:::-;;;8344:25:25;;;8332:2;8317:18;12679:173:6;8198:177:25;1098:40:6;;;;;;;;;;-1:-1:-1;1098:40:6;;;;;;-1:-1:-1;;;;;1098:40:6;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;;;-1:-1:-1;;;;;1098:40:6;;;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;-1:-1:-1;;;;;8706:15:25;;;8688:34;;8758:15;;;8753:2;8738:18;;8731:43;8810:15;;;;8790:18;;;8783:43;;;;-1:-1:-1;;;;;8899:15:25;;;8894:2;8879:18;;8872:43;8952:15;;;8946:3;8931:19;;8924:44;8622:3;8607:19;1098:40:6;8380:594:25;1345:63:6;;;;;;;;;;-1:-1:-1;1345:63:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1345:63:6;;;9447:793;;;;;;;;;;-1:-1:-1;9447:793:6;;;;;:::i;:::-;;:::i;1489:66::-;;;;;;;;;;-1:-1:-1;1489:66:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1489:66:6;;;13751:87;;;;;;;;;;-1:-1:-1;13751:87:6;;;;;:::i;:::-;13809:9;:22;13751:87;13001:138;;;;;;;;;;-1:-1:-1;13001:138:6;;;;;:::i;:::-;-1:-1:-1;;;;;13089:26:6;;;:16;:26;;;;;;;;;;:43;;-1:-1:-1;;;;;;13089:43:6;;;;;;;;13001:138;6031:2275;;;;;;;;;;-1:-1:-1;6031:2275:6;;;;;:::i;:::-;;:::i;4013:2012::-;;;;;;:::i;:::-;;:::i;958:51::-;;;;;;;;;;-1:-1:-1;958:51:6;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;958:51:6;;;10858:126;;;;;;;;;;;;10943:22;;;;;:34;:22;950:1;10943:34;;10858:126;11487:167;;;;;;;;;;-1:-1:-1;11487:167:6;;;;;:::i;:::-;11919:632;11831:720;;;;12924:71;;;;;;;;;;;;12984:4;12967:21;;-1:-1:-1;;12967:21:6;;;;;12924:71;1016:25;;;;;;;;;;-1:-1:-1;1016:25:6;;;;;;;;10731:121;;;;;;;;;;;;10814:19;;:31;:19;950:1;10814:31;;10731:121;10990:210;;;;;;;;;;-1:-1:-1;10990:210:6;;;;;:::i;:::-;11184:9;;;;;;;;;-1:-1:-1;11184:9:6;;10990:210;;;;;;;1192:21;;;;;;;;;;;;;;;;13844:125;;;;;;;;;;-1:-1:-1;13844:125:6;;;;;:::i;:::-;;:::i;8312:157::-;;;;;;;;;;-1:-1:-1;8312:157:6;;;;;:::i;:::-;;:::i;10246:228::-;10389:26;;;10346:4;10389:26;;;:13;:26;;;;;;:33;;10346:4;;10389:26;:33;;10416:5;;;;10389:33;:::i;:::-;;;;;;;;;;;;;;10439:14;;;:28;;;-1:-1:-1;;10246:228:6;;;;;;:::o;1846:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1846:73:6;;;-1:-1:-1;;;;1846:73:6;;;-1:-1:-1;;;;;1846:73:6;;-1:-1:-1;1846:73:6;;-1:-1:-1;1846:73:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1219:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8645:693::-;8802:14;8818:11;8841:26;8894:1;8870:14;:21;:25;:65;;8915:20;8870:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8898:14;8870:65;8841:94;;8969:15;8987:80;9002:11;9015:1;9018:16;9036:8;:15;9053:13;8987:14;:80::i;:::-;8969:98;;9103:16;9122:50;9139:9;9150:10;9162:9;;9122:16;:50::i;:::-;9103:69;;9182:9;:58;;9229:11;9217:23;;;9182:58;;;9203:11;9194:20;;;9182:58;-1:-1:-1;9322:9:6;;9297:22;9309:10;9297:9;:22;:::i;:::-;:34;;;;:::i;:::-;9285:46;;8831:507;;;8645:693;;;;;;;;:::o;11831:720::-;11956:26;;;11929:24;11956:26;;;:13;:26;;;;;;:33;;;;11983:5;;;;11956:33;:::i;:::-;;;;;;;;;;;;;;12085:14;;;;11956:33;;-1:-1:-1;12077:73:6;;;;-1:-1:-1;;;12077:73:6;;15069:2:25;12077:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;12077:73:6;;;;;;;;;12168:13;;-1:-1:-1;;;12168:13:6;;-1:-1:-1;;;;;12168:13:6;12185:10;12168:27;12160:69;;;;-1:-1:-1;;;12160:69:6;;15430:2:25;12160:69:6;;;15412:21:25;15469:2;15449:18;;;15442:30;15508:31;15488:18;;;15481:59;15557:18;;12160:69:6;15228:353:25;12160:69:6;12275:20;;-1:-1:-1;;;;;;12305:26:6;;;12294:1;12275:20;12341:14;;:27;12384:40;;;;;;12405:11;;12418:5;;;;12384:40;:::i;:::-;;;;;;;;12512:32;12525:11;12538:5;;12512:12;:32::i;12679:173::-;12799:26;;;12776:4;12799:26;;;:13;:26;;;;;;:39;;;;12826:11;;;;12799:39;:::i;:::-;;;;;;;;;;;;;;:46;;-1:-1:-1;12679:173:6;;;;;:::o;9447:793::-;9591:26;;;9564:24;9591:26;;;:13;:26;;;;;;:33;;;;9618:5;;;;9591:33;:::i;:::-;;;;;;;;;;;;;;9642:14;;;;9591:33;;-1:-1:-1;9634:73:6;;;;-1:-1:-1;;;9634:73:6;;15069:2:25;9634:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;9634:73:6;14867:356:25;9634:73:6;9744:16;;-1:-1:-1;;;;;9744:16:6;9725:35;;:76;;;;;9787:2;:14;;;9774:8;;9764:19;;;;;;;:::i;:::-;;;;;;;;:37;9725:76;9717:119;;;;-1:-1:-1;;;9717:119:6;;16390:2:25;9717:119:6;;;16372:21:25;16429:2;16409:18;;;16402:30;16468:32;16448:18;;;16441:60;16518:18;;9717:119:6;16188:354:25;9717:119:6;9868:13;;-1:-1:-1;;;;;;9956:26:6;;;;-1:-1:-1;;9992:14:6;;:27;;;10045:25;;;;;9868:13;10045:25;;;;;;:32;;-1:-1:-1;;;9868:13:6;;;-1:-1:-1;;;;;9868:13:6;;10045:32;;10071:5;;;;10045:32;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;10088:77:6;;-1:-1:-1;;;;;10045:32:6;;-1:-1:-1;;;;;;10088:40:6;;;;;:77;;10129:11;;10142:5;;;;10045:32;;10156:8;;;;10088:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10180:53;10195:11;10208:5;;10215;10222:10;10180:53;;;;;;;;;;:::i;:::-;;;;;;;;9554:686;;;9447:793;;;;;:::o;6031:2275::-;2823:22;;;;;:38;:22;908:1;2823:38;2815:87;;;;-1:-1:-1;;;2815:87:6;;17887:2:25;2815:87:6;;;17869:21:25;17926:2;17906:18;;;17899:30;17965:34;17945:18;;;17938:62;-1:-1:-1;;;18016:18:25;;;18009:34;18060:19;;2815:87:6;17685:400:25;2815:87:6;2912:22;:33;;-1:-1:-1;;2912:33:6;;;;;6249:26:::1;::::0;::::1;-1:-1:-1::0;6249:26:6;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6276:5;;;;6249:33:::1;:::i;:::-;;;;;;;;;;;;;6222:60;;6377:12;:25;6390:11;6377:25;;;;;;;;;;;;;;;6403:5;;6377:32;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;6375:34;;6377:32:::1;::::0;6375:34:::1;::::0;-1:-1:-1;;;;;6375:34:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6365:44:6::1;:6;-1:-1:-1::0;;;;;6365:44:6::1;;6357:83;;;::::0;-1:-1:-1;;;6357:83:6;;18506:2:25;6357:83:6::1;::::0;::::1;18488:21:25::0;18545:2;18525:18;;;18518:30;18584:28;18564:18;;;18557:56;18630:18;;6357:83:6::1;18304:350:25::0;6357:83:6::1;6578:14;::::0;::::1;::::0;:28;6574:1726:::1;;6653:26;::::0;::::1;6622:28;6653:26:::0;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6680:5;;;;6653:33:::1;:::i;:::-;;;;;;;;;;;;;6622:64;;6700:27;6730:44;;;;;;;;6744:11;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6757:6;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6765:8;;6730:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6730:44:6;;-1:-1:-1;6980:11:6;;6700:74;;-1:-1:-1;6980:15:6;6976:436:::1;;7051:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7051:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7051:17:6::1;-1:-1:-1::0;;;7051:17:6::1;-1:-1:-1::0;;;;;;7051:17:6;;;-1:-1:-1;;;;;7051:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7061:6;;7051:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;7146:6;7141:105;7162:11:::0;;:15:::1;::::0;7176:1:::1;::::0;7162:15:::1;:::i;:::-;7158:1;:19;7141:105;;;7220:4;7225:1;7220:7;;;;;;;;:::i;:::-;;;;;;;;;;;7206:4;7211:1;7215;7211:5;;;;:::i;:::-;7206:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21;;:11:::1;::::0;;::::1;;:21:::0;;-1:-1:-1;;;;;7206:21:6;;::::1;-1:-1:-1::0;;;;;;7206:21:6;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;7206:21:6;;;;-1:-1:-1;;;7206:21:6;;;::::1;-1:-1:-1::0;;;;;7206:21:6::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7206:21:6;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;:::i;:::-;;;;;7179:3;;;;;:::i;:::-;;;;7141:105;;;;7335:6;7325:4;7330:1;7325:7;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:16;;:7:::1;::::0;;::::1;;:16:::0;;;;::::1;::::0;-1:-1:-1;;;;;7325:16:6::1;-1:-1:-1::0;;;7325:16:6::1;-1:-1:-1::0;;;;;;7325:16:6;;;-1:-1:-1;;;;;7325:16:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:7;;:16:::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;;;;6976:436;;;7380:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7380:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7380:17:6::1;-1:-1:-1::0;;;7380:17:6::1;-1:-1:-1::0;;;;;;7380:17:6;;;-1:-1:-1;;;;;7380:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7390:6;;7380:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;6976:436;6608:814;;6574:1726;;;7432:14;::::0;;;::::1;;;7428:872;;;7498:72;;;;;;;;7519:8;;:15;;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7537:11;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7560:8;;7550:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7498:72;;;7462:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7489:5;;;;7462:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7462:108:6::1;-1:-1:-1::0;;;7462:108:6::1;-1:-1:-1::0;;;;;;7462:108:6;;;-1:-1:-1;;;;;7462:108:6;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;7654:9;;::::1;::::0;;7462:108:::1;7654:9:::0;;7589:75;;::::1;::::0;::::1;::::0;7603:11;;7616:5;;;;7623:11;;7636:6;;7644:8;;;;7462:33;7589:75:::1;:::i;:::-;;;;;;;;7752:14;:22:::0;;-1:-1:-1;;7752:22:6::1;::::0;;7428:872:::1;;;7809:95;::::0;-1:-1:-1;;;7809:95:6;;-1:-1:-1;;;;;7809:41:6;::::1;::::0;::::1;::::0;7856:9;;7809:95:::1;::::0;7867:11;;7880:5;;;;7887:6;;7895:8;;;;7809:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;7805:485;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:72;;;;;;;;8011:8;;:15;;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8029:11;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8052:8;;8042:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7990:72;;;7954:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7981:5;;;;7954:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7954:108:6::1;-1:-1:-1::0;;;7954:108:6::1;-1:-1:-1::0;;;;;;7954:108:6;;;-1:-1:-1;;;;;7954:108:6;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;8085:72:::1;::::0;::::1;::::0;8099:11;;8112:5;;;;8119:11;;8132:6;;8140:8;;;;8150:6;;8085:72:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;8253:14:6::1;:22:::0;;-1:-1:-1;;8253:22:6::1;::::0;;7805:485:::1;-1:-1:-1::0;;2966:22:6;:37;;-1:-1:-1;;2966:37:6;;;;;-1:-1:-1;;;;;;;6031:2275:6:o;4013:2012::-;2593:19;;:35;:19;908:1;2593:35;2585:81;;;;-1:-1:-1;;;2585:81:6;;20136:2:25;2585:81:6;;;20118:21:25;20175:2;20155:18;;;20148:30;20214:34;20194:18;;;20187:62;-1:-1:-1;;;20265:18:25;;;20258:31;20306:19;;2585:81:6;19934:397:25;2585:81:6;2676:19;:30;;-1:-1:-1;;2676:30:6;950:1;2676:30;;;4239:12;;4255:2:::1;4239:18;4231:75;;;::::0;-1:-1:-1;;;4231:75:6;;20538:2:25;4231:75:6::1;::::0;::::1;20520:21:25::0;20577:2;20557:18;;;20550:30;20616:34;20596:18;;;20589:62;-1:-1:-1;;;20667:18:25;;;20660:42;20719:19;;4231:75:6::1;20336:408:25::0;4231:75:6::1;4420:2;4409:14:::0;::::1;4403:21:::0;-1:-1:-1;;;;;4465:25:6;;::::1;4344:15;4465:25:::0;;;::::1;::::0;;;;;;;::::1;4508:24:::0;4500:92:::1;;;::::0;-1:-1:-1;;;4500:92:6;;20951:2:25;4500:92:6::1;::::0;::::1;20933:21:25::0;20990:2;20970:18;;;20963:30;21029:34;21009:18;;;21002:62;21100:25;21080:18;;;21073:53;21143:19;;4500:92:6::1;20749:419:25::0;4500:92:6::1;4635:26;4688:1:::0;4664:14:::1;:21;:25;:65;;4709:20;4664:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:14;4664:65;4635:94;;4740:14;4760:95;4773:8;4783:10;4795:8;;4760:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;4805:34:6;::::1;::::0;::::1;4841:13:::0;4760:12:::1;:95::i;:::-;4739:116;;;4886:9;4873;:22;;4865:76;;;::::0;-1:-1:-1;;;4865:76:6;;21375:2:25;4865:76:6::1;::::0;::::1;21357:21:25::0;21414:2;21394:18;;;21387:30;21453:34;21433:18;;;21426:62;-1:-1:-1;;;21504:18:25;;;21497:39;21553:19;;4865:76:6::1;21173:405:25::0;4865:76:6::1;4969:23;::::0;::::1;4952:12;4969:23:::0;;;:13:::1;:23;::::0;;;;;;;4993:10:::1;4969:35:::0;;;;;;;4967:37;;4952:12;;4967:37:::1;::::0;-1:-1:-1;;;;;4967:37:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;4952:52;;5055:11;5081:9;5069;:21;;;;:::i;:::-;5055:35:::0;-1:-1:-1;5104:10:6;;5100:163:::1;;5131:12;5149:14;-1:-1:-1::0;;;;;5149:19:6::1;5176:6;5149:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5130:57;;;5209:7;5201:51;;;::::0;-1:-1:-1;;;5201:51:6;;21995:2:25;5201:51:6::1;::::0;::::1;21977:21:25::0;22034:2;22014:18;;;22007:30;22073:33;22053:18;;;22046:61;22124:18;;5201:51:6::1;21793:355:25::0;5201:51:6::1;5116:147;5100:163;5420:13;5435:17:::0;5454:29:::1;5487:40;5513:13;5487:25;:40::i;:::-;5417:110:::0;;-1:-1:-1;5417:110:6;-1:-1:-1;5417:110:6;-1:-1:-1;;5541:16:6;;5537:222:::1;;5574:12;5592:13;-1:-1:-1::0;;;;;5592:18:6::1;5618:12;5592:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:62;;;5654:7;5649:100;;5686:48;::::0;5721:12;;-1:-1:-1;;;;;5686:48:6;::::1;::::0;::::1;::::0;;;::::1;5649:100;5559:200;5537:222;5797:37;::::0;-1:-1:-1;;5814:10:6::1;22380:2:25::0;22376:15;;;22372:24;;5797:37:6::1;::::0;::::1;22360::25::0;22431:15;;;22427:24;22413:12;;;22406:46;5769:25:6::1;::::0;22468:12:25;;5797:37:6::1;;;;;;;;;;;;5769:65;;5874:20;5897:8;;5874:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5930:10;-1:-1:-1::0;;;;;5915:41:6::1;;5957:11;;;;;;;;;;;5970:12;5984:7;5993:5;6000:8;6010:7;5915:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2727:19:6;:34;;-1:-1:-1;;2727:34:6;908:1;2727:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4013:2012:6:o;13844:125::-;13925:37;;;;:20;;:37;;;;;:::i;:::-;;13844:125;:::o;8312:157::-;8433:22;;;8408:6;8433:22;;;:12;:22;;;;;;:29;;;;8456:5;;;;8433:29;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;8433:29:6;;-1:-1:-1;8312:157:6;;;;;:::o;918:238:3:-;1114:35;;;-1:-1:-1;;;1114:35:3;;;23376:51:25;23443:11;;;;23436:27;;;;1114:35:3;;;;;;;;;;23479:12:25;;1114:35:3;;;918:238::o;14960:1322:6:-;15192:4;15209:13;15224;15239:17;15262:41;15288:14;15262:25;:41::i;:::-;15208:95;;;;;;;15313:21;15395:6;:11;;15405:1;15395:11;15391:187;;;15430:32;;-1:-1:-1;;;;;15430:32:6;:48;-1:-1:-1;15430:48:6;15422:99;;;;-1:-1:-1;;;15422:99:6;;23704:2:25;15422:99:6;;;23686:21:25;23743:2;23723:18;;;23716:30;23782:34;23762:18;;;23755:62;-1:-1:-1;;;23833:18:25;;;23826:36;23879:19;;15422:99:6;23502:402:25;15422:99:6;15535:32;15555:12;15535:32;;:::i;:::-;;;15391:187;15714:24;;15655:19;;15714:35;;15741:8;;-1:-1:-1;;;15714:24:6;;-1:-1:-1;;;;;15714:24:6;:35;:::i;:::-;15677:16;:33;:73;;;-1:-1:-1;;;15677:33:6;;-1:-1:-1;;;;;15677:33:6;:73;:::i;:::-;15655:95;-1:-1:-1;15760:34:6;15655:95;15760:34;;:::i;:::-;15959:16;:30;15760:34;;-1:-1:-1;15922:14:6;;15993:6;;15940:49;;-1:-1:-1;;;;;15959:30:6;15760:34;15940:49;:::i;:::-;15939:60;;;;:::i;:::-;16178:16;:30;16148:27;;15922:77;;-1:-1:-1;16091:17:6;;16212:6;;-1:-1:-1;;;;;16178:30:6;;;;16112:63;;-1:-1:-1;;;16148:27:6;;;-1:-1:-1;;;;;16148:27:6;;-1:-1:-1;;;16112:33:6;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16111:107;;;;:::i;:::-;-1:-1:-1;;;;;16091:127:6;;-1:-1:-1;16248:27:6;16091:127;16248:12;:27;:::i;:::-;16236:39;;:9;:39;:::i;:::-;16229:46;14960:1322;-1:-1:-1;;;;;;;;;;;;;14960:1322:6:o;14658:296::-;14758:4;14778:9;14774:174;;;-1:-1:-1;14810:17:6;:24;14803:31;;14774:174;14902:26;;14932:5;;14874:24;14888:10;14874:11;:24;:::i;:::-;14873:55;;;;:::i;:::-;14872:65;;;;:::i;:::-;14865:72;;;;14154:498;14268:26;;;14237:28;14268:26;;;:13;:26;;;;;;:33;;;;14295:5;;;;14268:33;:::i;:::-;;;;;;;;;;;;;14237:64;;14407:239;14414:11;;:15;14407:239;;14481:11;;14445:28;;14476:4;;14481:15;;14495:1;;14481:15;:::i;:::-;14476:21;;;;;;;;:::i;:::-;;;;;;;;;;14445:52;;;;;;;;14476:21;;;;;;;14445:52;;-1:-1:-1;;;;;14445:52:6;;;;-1:-1:-1;;;;;;;;14445:52:6;;;;;;;;;;;;;;;;;;14476:21;14445:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14530:7;:18;;;-1:-1:-1;;;;;14511:48:6;;14560:11;14573:5;;14580:7;:13;;;14595:7;:15;;;14511:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14625:4;:10;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;14625:10:6;;;;;;;;;-1:-1:-1;;;;;;14625:10:6;;;;;;;;;;:::i;:::-;;;;;14431:215;14407:239;;2036:715:3;2117:13;2132:10;2144:18;2164:30;2214:14;:21;2239:2;2214:27;:57;;;;2269:2;2245:14;:21;:26;2214:57;2206:91;;;;-1:-1:-1;;;2206:91:3;;25773:2:25;2206:91:3;;;25755:21:25;25812:2;25792:18;;;25785:30;-1:-1:-1;;;25831:18:25;;;25824:51;25892:18;;2206:91:3;25571:345:25;2206:91:3;2366:1;2350:14;2346:22;2340:29;2330:39;;2417:2;2401:14;2397:23;2391:30;2382:39;;2448:6;:11;;2458:1;2448:11;:26;;;;2463:6;:11;;2473:1;2463:11;2448:26;2440:57;;;;-1:-1:-1;;;2440:57:3;;26123:2:25;2440:57:3;;;26105:21:25;26162:2;26142:18;;;26135:30;-1:-1:-1;;;26181:18:25;;;26174:48;26239:18;;2440:57:3;25921:342:25;2440:57:3;2523:1;2515:5;:9;2507:33;;;;-1:-1:-1;;;2507:33:3;;26470:2:25;2507:33:3;;;26452:21:25;26509:2;26489:18;;;26482:30;-1:-1:-1;;;26528:18:25;;;26521:41;26579:18;;2507:33:3;26268:335:25;2507:33:3;2555:6;:11;;2565:1;2555:11;2551:194;;;-1:-1:-1;;2652:2:3;2632:23;;2626:30;2717:2;2697:23;;2691:30;2551:194;2036:715;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;267:159:25;334:20;;394:6;383:18;;373:29;;363:57;;416:1;413;406:12;363:57;267:159;;;:::o;431:184::-;489:6;542:2;530:9;521:7;517:23;513:32;510:52;;;558:1;555;548:12;510:52;581:28;599:9;581:28;:::i;620:131::-;-1:-1:-1;;;;;695:31:25;;685:42;;675:70;;741:1;738;731:12;756:247;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;923:9;910:23;942:31;967:5;942:31;:::i;1201:347::-;1252:8;1262:6;1316:3;1309:4;1301:6;1297:17;1293:27;1283:55;;1334:1;1331;1324:12;1283:55;-1:-1:-1;1357:20:25;;-1:-1:-1;;;;;1389:30:25;;1386:50;;;1432:1;1429;1422:12;1386:50;1469:4;1461:6;1457:17;1445:29;;1521:3;1514:4;1505:6;1497;1493:19;1489:30;1486:39;1483:59;;;1538:1;1535;1528:12;1483:59;1201:347;;;;;:::o;1553:481::-;1631:6;1639;1647;1700:2;1688:9;1679:7;1675:23;1671:32;1668:52;;;1716:1;1713;1706:12;1668:52;1739:28;1757:9;1739:28;:::i;:::-;1729:38;;1818:2;1807:9;1803:18;1790:32;-1:-1:-1;;;;;1837:6:25;1834:30;1831:50;;;1877:1;1874;1867:12;1831:50;1916:58;1966:7;1957:6;1946:9;1942:22;1916:58;:::i;:::-;1553:481;;1993:8;;-1:-1:-1;1890:84:25;;-1:-1:-1;;;;1553:481:25:o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:718;2405:5;2458:3;2451:4;2443:6;2439:17;2435:27;2425:55;;2476:1;2473;2466:12;2425:55;2512:6;2499:20;-1:-1:-1;;;;;2575:2:25;2571;2568:10;2565:36;;;2581:18;;:::i;:::-;2656:2;2650:9;2624:2;2710:13;;-1:-1:-1;;2706:22:25;;;2730:2;2702:31;2698:40;2686:53;;;2754:18;;;2774:22;;;2751:46;2748:72;;;2800:18;;:::i;:::-;2840:10;2836:2;2829:22;2875:2;2867:6;2860:18;2921:3;2914:4;2909:2;2901:6;2897:15;2893:26;2890:35;2887:55;;;2938:1;2935;2928:12;2887:55;3002:2;2995:4;2987:6;2983:17;2976:4;2968:6;2964:17;2951:54;3049:1;3042:4;3037:2;3029:6;3025:15;3021:26;3014:37;3069:6;3060:15;;;;;;2363:718;;;;:::o;3086:460::-;3171:6;3179;3187;3240:2;3228:9;3219:7;3215:23;3211:32;3208:52;;;3256:1;3253;3246:12;3208:52;3279:28;3297:9;3279:28;:::i;:::-;3269:38;;3358:2;3347:9;3343:18;3330:32;-1:-1:-1;;;;;3377:6:25;3374:30;3371:50;;;3417:1;3414;3407:12;3371:50;3440:49;3481:7;3472:6;3461:9;3457:22;3440:49;:::i;:::-;3430:59;;;3536:2;3525:9;3521:18;3508:32;3498:42;;3086:460;;;;;:::o;3551:471::-;3592:3;3630:5;3624:12;3657:6;3652:3;3645:19;3682:1;3692:162;3706:6;3703:1;3700:13;3692:162;;;3768:4;3824:13;;;3820:22;;3814:29;3796:11;;;3792:20;;3785:59;3721:12;3692:162;;;3872:6;3869:1;3866:13;3863:87;;;3938:1;3931:4;3922:6;3917:3;3913:16;3909:27;3902:38;3863:87;-1:-1:-1;4004:2:25;3983:15;-1:-1:-1;;3979:29:25;3970:39;;;;4011:4;3966:50;;3551:471;-1:-1:-1;;3551:471:25:o;4027:408::-;-1:-1:-1;;;;;4228:32:25;;4210:51;;-1:-1:-1;;;;;4297:31:25;;4292:2;4277:18;;4270:59;4365:2;4360;4345:18;;4338:30;;;-1:-1:-1;;4385:44:25;;4410:18;;4402:6;4385:44;:::i;:::-;4377:52;4027:408;-1:-1:-1;;;;;4027:408:25:o;4440:248::-;4508:6;4516;4569:2;4557:9;4548:7;4544:23;4540:32;4537:52;;;4585:1;4582;4575:12;4537:52;-1:-1:-1;;4608:23:25;;;4678:2;4663:18;;;4650:32;;-1:-1:-1;4440:248:25:o;4693:217::-;4840:2;4829:9;4822:21;4803:4;4860:44;4900:2;4889:9;4885:18;4877:6;4860:44;:::i;4915:188::-;4983:20;;-1:-1:-1;;;;;5032:46:25;;5022:57;;5012:85;;5093:1;5090;5083:12;5108:171;5175:20;;-1:-1:-1;;;;;5224:30:25;;5214:41;;5204:69;;5269:1;5266;5259:12;5284:480;5377:6;5385;5393;5401;5409;5462:3;5450:9;5441:7;5437:23;5433:33;5430:53;;;5479:1;5476;5469:12;5430:53;5502:29;5521:9;5502:29;:::i;:::-;5492:39;;5550:38;5584:2;5573:9;5569:18;5550:38;:::i;:::-;5540:48;;5607:38;5641:2;5630:9;5626:18;5607:38;:::i;:::-;5597:48;;5664:37;5697:2;5686:9;5682:18;5664:37;:::i;:::-;5654:47;;5720:38;5753:3;5742:9;5738:19;5720:38;:::i;:::-;5710:48;;5284:480;;;;;;;;:::o;5769:917::-;5878:6;5886;5894;5902;5910;5963:3;5951:9;5942:7;5938:23;5934:33;5931:53;;;5980:1;5977;5970:12;5931:53;6003:28;6021:9;6003:28;:::i;:::-;5993:38;;6081:2;6070:9;6066:18;6053:32;6094:31;6119:5;6094:31;:::i;:::-;6144:5;-1:-1:-1;6200:2:25;6185:18;;6172:32;-1:-1:-1;;;;;6253:14:25;;;6250:34;;;6280:1;6277;6270:12;6250:34;6303:49;6344:7;6335:6;6324:9;6320:22;6303:49;:::i;:::-;6293:59;;6404:2;6393:9;6389:18;6376:32;6361:47;;6453:7;6446:15;6439:23;6430:7;6427:36;6417:64;;6477:1;6474;6467:12;6417:64;6500:7;;-1:-1:-1;6560:3:25;6545:19;;6532:33;;6577:16;;;6574:36;;;6606:1;6603;6596:12;6574:36;;6629:51;6672:7;6661:8;6650:9;6646:24;6629:51;:::i;:::-;6619:61;;;5769:917;;;;;;;;:::o;6899:392::-;6975:6;6983;7036:2;7024:9;7015:7;7011:23;7007:32;7004:52;;;7052:1;7049;7042:12;7004:52;7075:28;7093:9;7075:28;:::i;:::-;7065:38;;7154:2;7143:9;7139:18;7126:32;-1:-1:-1;;;;;7173:6:25;7170:30;7167:50;;;7213:1;7210;7203:12;7167:50;7236:49;7277:7;7268:6;7257:9;7253:22;7236:49;:::i;:::-;7226:59;;;6899:392;;;;;:::o;7669:319::-;7736:6;7744;7797:2;7785:9;7776:7;7772:23;7768:32;7765:52;;;7813:1;7810;7803:12;7765:52;7836:28;7854:9;7836:28;:::i;:::-;7826:38;;7914:2;7903:9;7899:18;7886:32;7927:31;7952:5;7927:31;:::i;:::-;7977:5;7967:15;;;7669:319;;;;;:::o;8979:789::-;9077:6;9085;9093;9101;9109;9162:2;9150:9;9141:7;9137:23;9133:32;9130:52;;;9178:1;9175;9168:12;9130:52;9201:28;9219:9;9201:28;:::i;:::-;9191:38;;9280:2;9269:9;9265:18;9252:32;-1:-1:-1;;;;;9344:2:25;9336:6;9333:14;9330:34;;;9360:1;9357;9350:12;9330:34;9399:58;9449:7;9440:6;9429:9;9425:22;9399:58;:::i;:::-;9476:8;;-1:-1:-1;9373:84:25;-1:-1:-1;9564:2:25;9549:18;;9536:32;;-1:-1:-1;9580:16:25;;;9577:36;;;9609:1;9606;9599:12;9577:36;;9648:60;9700:7;9689:8;9678:9;9674:24;9648:60;:::i;:::-;8979:789;;;;-1:-1:-1;8979:789:25;;-1:-1:-1;9727:8:25;;9622:86;8979:789;-1:-1:-1;;;8979:789:25:o;9773:180::-;9832:6;9885:2;9873:9;9864:7;9860:23;9856:32;9853:52;;;9901:1;9898;9891:12;9853:52;-1:-1:-1;9924:23:25;;9773:180;-1:-1:-1;9773:180:25:o;9958:388::-;10026:6;10034;10087:2;10075:9;10066:7;10062:23;10058:32;10055:52;;;10103:1;10100;10093:12;10055:52;10142:9;10129:23;10161:31;10186:5;10161:31;:::i;10351:1067::-;10475:6;10483;10491;10499;10507;10515;10523;10531;10584:3;10572:9;10563:7;10559:23;10555:33;10552:53;;;10601:1;10598;10591:12;10552:53;10624:28;10642:9;10624:28;:::i;:::-;10614:38;;10703:2;10692:9;10688:18;10675:32;-1:-1:-1;;;;;10767:2:25;10759:6;10756:14;10753:34;;;10783:1;10780;10773:12;10753:34;10822:58;10872:7;10863:6;10852:9;10848:22;10822:58;:::i;:::-;10899:8;;-1:-1:-1;10796:84:25;-1:-1:-1;10984:2:25;10969:18;;10956:32;;-1:-1:-1;10997:31:25;10956:32;10997:31;:::i;:::-;11047:5;11037:15;;11071:37;11104:2;11093:9;11089:18;11071:37;:::i;:::-;11061:47;;11155:3;11144:9;11140:19;11127:33;11117:43;;11213:3;11202:9;11198:19;11185:33;11169:49;;11243:2;11233:8;11230:16;11227:36;;;11259:1;11256;11249:12;11227:36;;11298:60;11350:7;11339:8;11328:9;11324:24;11298:60;:::i;:::-;10351:1067;;;;-1:-1:-1;10351:1067:25;;-1:-1:-1;10351:1067:25;;;;;;11377:8;-1:-1:-1;;;10351:1067:25:o;11423:1185::-;11563:6;11571;11579;11587;11595;11603;11611;11664:3;11652:9;11643:7;11639:23;11635:33;11632:53;;;11681:1;11678;11671:12;11632:53;11704:28;11722:9;11704:28;:::i;:::-;11694:38;;11783:2;11772:9;11768:18;11755:32;-1:-1:-1;;;;;11847:2:25;11839:6;11836:14;11833:34;;;11863:1;11860;11853:12;11833:34;11886:49;11927:7;11918:6;11907:9;11903:22;11886:49;:::i;:::-;11876:59;;11988:2;11977:9;11973:18;11960:32;11944:48;;12017:2;12007:8;12004:16;12001:36;;;12033:1;12030;12023:12;12001:36;12072:60;12124:7;12113:8;12102:9;12098:24;12072:60;:::i;:::-;12151:8;;-1:-1:-1;12046:86:25;-1:-1:-1;12236:2:25;12221:18;;12208:32;;-1:-1:-1;12249:31:25;12208:32;12249:31;:::i;:::-;12299:5;;-1:-1:-1;12356:3:25;12341:19;;12328:33;;12370;12328;12370;:::i;:::-;12422:7;;-1:-1:-1;12482:3:25;12467:19;;12454:33;;12499:16;;;12496:36;;;12528:1;12525;12518:12;12496:36;;12551:51;12594:7;12583:8;12572:9;12568:24;12551:51;:::i;:::-;12541:61;;;11423:1185;;;;;;;;;;:::o;12613:533::-;12706:6;12714;12722;12730;12783:3;12771:9;12762:7;12758:23;12754:33;12751:53;;;12800:1;12797;12790:12;12751:53;12823:28;12841:9;12823:28;:::i;:::-;12813:38;;12870:37;12903:2;12892:9;12888:18;12870:37;:::i;:::-;12860:47;;12954:2;12943:9;12939:18;12926:32;12916:42;;13009:2;12998:9;12994:18;12981:32;-1:-1:-1;;;;;13028:6:25;13025:30;13022:50;;;13068:1;13065;13058:12;13022:50;13091:49;13132:7;13123:6;13112:9;13108:22;13091:49;:::i;:::-;13081:59;;;12613:533;;;;;;;:::o;13151:460::-;13235:6;13243;13251;13259;13312:3;13300:9;13291:7;13287:23;13283:33;13280:53;;;13329:1;13326;13319:12;13280:53;13352:28;13370:9;13352:28;:::i;:::-;13342:38;;13399:37;13432:2;13421:9;13417:18;13399:37;:::i;:::-;13389:47;;13486:2;13475:9;13471:18;13458:32;13499:31;13524:5;13499:31;:::i;:::-;13151:460;;;;-1:-1:-1;13549:5:25;;13601:2;13586:18;13573:32;;-1:-1:-1;;13151:460:25:o;13616:320::-;13684:6;13737:2;13725:9;13716:7;13712:23;13708:32;13705:52;;;13753:1;13750;13743:12;13705:52;13793:9;13780:23;-1:-1:-1;;;;;13818:6:25;13815:30;13812:50;;;13858:1;13855;13848:12;13812:50;13881:49;13922:7;13913:6;13902:9;13898:22;13881:49;:::i;:::-;13871:59;13616:320;-1:-1:-1;;;;13616:320:25:o;13941:271::-;14124:6;14116;14111:3;14098:33;14080:3;14150:16;;14175:13;;;14150:16;13941:271;-1:-1:-1;13941:271:25:o;14217:380::-;14296:1;14292:12;;;;14339;;;14360:61;;14414:4;14406:6;14402:17;14392:27;;14360:61;14467:2;14459:6;14456:14;14436:18;14433:38;14430:161;;;14513:10;14508:3;14504:20;14501:1;14494:31;14548:4;14545:1;14538:15;14576:4;14573:1;14566:15;14430:161;;14217:380;;;:::o;14602:127::-;14663:10;14658:3;14654:20;14651:1;14644:31;14694:4;14691:1;14684:15;14718:4;14715:1;14708:15;14734:128;14774:3;14805:1;14801:6;14798:1;14795:13;14792:39;;;14811:18;;:::i;:::-;-1:-1:-1;14847:9:25;;14734:128::o;15586:266::-;15674:6;15669:3;15662:19;15726:6;15719:5;15712:4;15707:3;15703:14;15690:43;-1:-1:-1;15778:1:25;15753:16;;;15771:4;15749:27;;;15742:38;;;;15834:2;15813:15;;;-1:-1:-1;;15809:29:25;15800:39;;;15796:50;;15586:266::o;15857:326::-;16052:6;16044;16040:19;16029:9;16022:38;16096:2;16091;16080:9;16076:18;16069:30;16003:4;16116:61;16173:2;16162:9;16158:18;16150:6;16142;16116:61;:::i;16547:609::-;16824:6;16816;16812:19;16801:9;16794:38;16868:3;16863:2;16852:9;16848:18;16841:31;16775:4;16895:62;16952:3;16941:9;16937:19;16929:6;16921;16895:62;:::i;:::-;-1:-1:-1;;;;;16997:6:25;16993:31;16988:2;16977:9;16973:18;16966:59;17073:9;17065:6;17061:22;17056:2;17045:9;17041:18;17034:50;17101:49;17143:6;17135;17127;17101:49;:::i;:::-;17093:57;16547:609;-1:-1:-1;;;;;;;;;16547:609:25:o;17161:519::-;17410:6;17402;17398:19;17387:9;17380:38;17454:3;17449:2;17438:9;17434:18;17427:31;17361:4;17475:62;17532:3;17521:9;17517:19;17509:6;17501;17475:62;:::i;:::-;-1:-1:-1;;;;;17573:31:25;;;;17568:2;17553:18;;17546:59;-1:-1:-1;;;;;;17641:32:25;;;;17636:2;17621:18;;;17614:60;17467:70;17161:519;-1:-1:-1;;;17161:519:25:o;18090:209::-;18128:3;-1:-1:-1;;;;;18209:2:25;18202:5;18198:14;18236:2;18227:7;18224:15;18221:41;;;18242:18;;:::i;:::-;18291:1;18278:15;;18090:209;-1:-1:-1;;;18090:209:25:o;18659:125::-;18699:4;18727:1;18724;18721:8;18718:34;;;18732:18;;:::i;:::-;-1:-1:-1;18769:9:25;;18659:125::o;18789:127::-;18850:10;18845:3;18841:20;18838:1;18831:31;18881:4;18878:1;18871:15;18905:4;18902:1;18895:15;18921:135;18960:3;-1:-1:-1;;18981:17:25;;18978:43;;;19001:18;;:::i;:::-;-1:-1:-1;19048:1:25;19037:13;;18921:135::o;19061:868::-;19412:6;19404;19400:19;19389:9;19382:38;19456:3;19451:2;19440:9;19436:18;19429:31;19363:4;19483:62;19540:3;19529:9;19525:19;19517:6;19509;19483:62;:::i;:::-;-1:-1:-1;;;;;19581:32:25;;19576:2;19561:18;;19554:60;-1:-1:-1;;;;;19650:31:25;;19645:2;19630:18;;19623:59;19719:22;;;19713:3;19698:19;;19691:51;19765:49;19723:6;19799;19791;19765:49;:::i;:::-;19751:63;;19863:9;19855:6;19851:22;19845:3;19834:9;19830:19;19823:51;19891:32;19916:6;19908;19891:32;:::i;:::-;19883:40;19061:868;-1:-1:-1;;;;;;;;;;;19061:868:25:o;22491:725::-;22804:6;22796;22792:19;22781:9;22774:38;22848:3;22843:2;22832:9;22828:18;22821:31;22755:4;22875:45;22915:3;22904:9;22900:19;22892:6;22875:45;:::i;:::-;-1:-1:-1;;;;;22956:32:25;;22951:2;22936:18;;22929:60;-1:-1:-1;;;;;23025:31:25;;23020:2;23005:18;;22998:59;23088:3;23073:19;;23066:35;;;23138:22;;;22976:3;23117:19;;23110:51;23178:32;23142:6;23195;23178:32;:::i;23909:168::-;23949:7;24015:1;24011;24007:6;24003:14;24000:1;23997:21;23992:1;23985:9;23978:17;23974:45;23971:71;;;24022:18;;:::i;:::-;-1:-1:-1;24062:9:25;;23909:168::o;24082:127::-;24143:10;24138:3;24134:20;24131:1;24124:31;24174:4;24171:1;24164:15;24198:4;24195:1;24188:15;24214:120;24254:1;24280;24270:35;;24285:18;;:::i;:::-;-1:-1:-1;24319:9:25;;24214:120::o;24339:287::-;24379:7;-1:-1:-1;;;;;24472:2:25;24469:1;24465:10;24502:2;24499:1;24495:10;24558:3;24554:2;24550:12;24545:3;24542:21;24535:3;24528:11;24521:19;24517:47;24514:73;;;24567:18;;:::i;:::-;24607:13;;24339:287;-1:-1:-1;;;;24339:287:25:o;24631:216::-;24671:1;-1:-1:-1;;;;;24758:2:25;24755:1;24751:10;24780:3;24770:37;;24787:18;;:::i;:::-;24825:10;;24821:20;;;;;24631:216;-1:-1:-1;;24631:216:25:o;24852:582::-;25119:6;25111;25107:19;25096:9;25089:38;25163:3;25158:2;25147:9;25143:18;25136:31;25070:4;25190:62;25247:3;25236:9;25232:19;25224:6;25216;25190:62;:::i;:::-;-1:-1:-1;;;;;25292:6:25;25288:31;25283:2;25272:9;25268:18;25261:59;25368:9;25360:6;25356:22;25351:2;25340:9;25336:18;25329:50;25396:32;25421:6;25413;25396:32;:::i;:::-;25388:40;24852:582;-1:-1:-1;;;;;;;;24852:582:25:o;25439:127::-;25500:10;25495:3;25491:20;25488:1;25481:31;25531:4;25528:1;25521:15;25555:4;25552:1;25545:15"},"gasEstimates":{"creation":{"codeDepositCost":"2369200","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24445","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2353","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"2842","getReceiveLibraryAddress(address)":"414","getReceiveVersion(address)":"469","getSendLibraryAddress(address)":"437","getSendVersion(address)":"449","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2369","isSendingPayload()":"2357","lzEndpointLookup(address)":"2688","mockChainId()":"2446","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2389","oracleFee()":"2383","outboundNonce(uint16,address)":"2831","protocolFeeConfig()":"4464","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"4807","retryPayload(uint16,bytes,bytes)":"infinite","send(uint16,bytes,bytes,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setDefaultAdapterParams(bytes)":"infinite","setDestLzEndpoint(address,address)":"infinite","setOracleFee(uint256)":"22357","setProtocolFee(uint256,uint256)":"44537","setReceiveVersion(uint16)":"326","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"349","storedPayload(uint16,bytes)":"infinite"},"internal":{"_clearMsgQue(uint16,bytes calldata)":"infinite","_getProtocolFees(bool,uint256,uint256)":"2392","_getRelayerFee(uint16,uint16,address,uint256,bytes memory)":"infinite"}},"methodIdentifiers":{"blockNextMsg()":"d23104f1","defaultAdapterParams()":"272bd384","estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getLengthOfQueue(uint16,bytes)":"7f6df8e6","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","inboundNonce(uint16,bytes)":"9924d33b","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","lzEndpointLookup(address)":"c81b383a","mockChainId()":"db14f305","msgsToDeliver(uint16,bytes,uint256)":"12a9ee6b","nextMsgBlocked()":"3e0dd83e","oracleFee()":"f9cd3ceb","outboundNonce(uint16,address)":"b2086499","protocolFeeConfig()":"07d3277f","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","relayerFeeConfig()":"907c5e7e","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setDefaultAdapterParams(bytes)":"fbba623b","setDestLzEndpoint(address,address)":"c08f15a1","setOracleFee(uint256)":"b6d9ef60","setProtocolFee(uint256,uint256)":"240de277","setReceiveVersion(uint16)":"10ddb137","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"2c365e25","setSendVersion(uint16)":"07e0db17","storedPayload(uint16,bytes)":"76a386dc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"}],\"name\":\"PayloadCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PayloadStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"UaForceResumeReceive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"ValueTransferFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockNextMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdapterParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getLengthOfQueue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lzEndpointLookup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"msgsToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextMsgBlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeBP\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerFeeConfig\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasPerByte\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"setDefaultAdapterParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpointAddr\",\"type\":\"address\"}],\"name\":\"setDestLzEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_oracleFee\",\"type\":\"uint256\"}],\"name\":\"setOracleFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nativeBP\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"_baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_gasPerByte\",\"type\":\"uint64\"}],\"name\":\"setRelayerPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"storedPayload\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"payloadLength\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":\"LZEndpointMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n uint8 internal constant _NOT_ENTERED = 1;\\n uint8 internal constant _ENTERED = 2;\\n\\n mapping(address => address) public lzEndpointLookup;\\n\\n uint16 public mockChainId;\\n bool public nextMsgBlocked;\\n\\n // fee config\\n RelayerFeeConfig public relayerFeeConfig;\\n ProtocolFeeConfig public protocolFeeConfig;\\n uint public oracleFee;\\n bytes public defaultAdapterParams;\\n\\n // path = remote addrss + local address\\n // inboundNonce = [srcChainId][path].\\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n //todo: this is a hack\\n // outboundNonce = [dstChainId][srcAddress]\\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n // // outboundNonce = [dstChainId][path].\\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n // storedPayload = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n // msgToDeliver = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n // reentrancy guard\\n uint8 internal _send_entered_state = 1;\\n uint8 internal _receive_entered_state = 1;\\n\\n struct ProtocolFeeConfig {\\n uint zroFee;\\n uint nativeBP;\\n }\\n\\n struct RelayerFeeConfig {\\n uint128 dstPriceRatio; // 10^10\\n uint128 dstGasPriceInWei;\\n uint128 dstNativeAmtCap;\\n uint64 baseGas;\\n uint64 gasPerByte;\\n }\\n\\n struct StoredPayload {\\n uint64 payloadLength;\\n address dstAddress;\\n bytes32 payloadHash;\\n }\\n\\n struct QueuedPayload {\\n address dstAddress;\\n uint64 nonce;\\n bytes payload;\\n }\\n\\n modifier sendNonReentrant() {\\n require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n _send_entered_state = _ENTERED;\\n _;\\n _send_entered_state = _NOT_ENTERED;\\n }\\n\\n modifier receiveNonReentrant() {\\n require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n _receive_entered_state = _ENTERED;\\n _;\\n _receive_entered_state = _NOT_ENTERED;\\n }\\n\\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n constructor(uint16 _chainId) {\\n mockChainId = _chainId;\\n\\n // init config\\n relayerFeeConfig = RelayerFeeConfig({\\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n dstGasPriceInWei: 1e10,\\n dstNativeAmtCap: 1e19,\\n baseGas: 100,\\n gasPerByte: 1\\n });\\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n oracleFee = 1e16;\\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n }\\n\\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\\n require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n address dstAddr;\\n assembly {\\n dstAddr := mload(add(_path, 20))\\n }\\n\\n address lzEndpoint = lzEndpointLookup[dstAddr];\\n require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n // not handle zro token\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n // refund if they send too much\\n uint amount = msg.value - nativeFee;\\n if (amount > 0) {\\n (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n require(success, \\\"LayerZeroMock: failed to refund\\\");\\n }\\n\\n // Mock the process of receiving msg on dst chain\\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n if (dstNativeAmt > 0) {\\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n if (!success) {\\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n }\\n }\\n\\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n bytes memory payload = _payload;\\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n }\\n\\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n // assert and increment the nonce. no message shuffling\\n require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n if (sp.payloadHash != bytes32(0)) {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n // shift all the msgs over so we can treat this like a fifo via array.pop()\\n if (msgs.length > 0) {\\n // extend the array\\n msgs.push(newMsg);\\n\\n // shift all the indexes up for pop()\\n for (uint i = 0; i < msgs.length - 1; i++) {\\n msgs[i + 1] = msgs[i];\\n }\\n\\n // put the newMsg at the bottom of the stack\\n msgs[0] = newMsg;\\n } else {\\n msgs.push(newMsg);\\n }\\n } else if (nextMsgBlocked) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n } else {\\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n }\\n }\\n }\\n\\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n return inboundNonce[_chainID][_path];\\n }\\n\\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n return outboundNonce[_chainID][_srcAddress];\\n }\\n\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n // Relayer Fee\\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n // LayerZero Fee\\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n // return the sum of fees\\n nativeFee = nativeFee + relayerFee + oracleFee;\\n }\\n\\n function getChainId() external view override returns (uint16) {\\n return mockChainId;\\n }\\n\\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n address dstAddress = sp.dstAddress;\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n }\\n\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n return sp.payloadHash != bytes32(0);\\n }\\n\\n function getSendLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function getReceiveLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function isSendingPayload() external view override returns (bool) {\\n return _send_entered_state == _ENTERED;\\n }\\n\\n function isReceivingPayload() external view override returns (bool) {\\n return _receive_entered_state == _ENTERED;\\n }\\n\\n function getConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n address, /*_ua*/\\n uint /*_configType*/\\n ) external pure override returns (bytes memory) {\\n return \\\"\\\";\\n }\\n\\n function getSendVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function getReceiveVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function setConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n uint, /*_configType*/\\n bytes memory /*_config*/\\n ) external override {}\\n\\n function setSendVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function setReceiveVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n // revert if no messages are cached. safeguard malicious UA behaviour\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n emit UaForceResumeReceive(_srcChainId, _path);\\n\\n // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n _clearMsgQue(_srcChainId, _path);\\n }\\n\\n // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n return msgsToDeliver[_srcChainId][_srcAddress].length;\\n }\\n\\n // used to simulate messages received get stored as a payload\\n function blockNextMsg() external {\\n nextMsgBlocked = true;\\n }\\n\\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n lzEndpointLookup[destAddr] = lzEndpointAddr;\\n }\\n\\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n relayerFeeConfig.baseGas = _baseGas;\\n relayerFeeConfig.gasPerByte = _gasPerByte;\\n }\\n\\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n protocolFeeConfig.zroFee = _zroFee;\\n protocolFeeConfig.nativeBP = _nativeBP;\\n }\\n\\n function setOracleFee(uint _oracleFee) external {\\n oracleFee = _oracleFee;\\n }\\n\\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n defaultAdapterParams = _adapterParams;\\n }\\n\\n // --------------------- Internal Functions ---------------------\\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n while (msgs.length > 0) {\\n QueuedPayload memory payload = msgs[msgs.length - 1];\\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n msgs.pop();\\n }\\n }\\n\\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\\n if (_payInZro) {\\n return protocolFeeConfig.zroFee;\\n } else {\\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n }\\n }\\n\\n function _getRelayerFee(\\n uint16, /* _dstChainId */\\n uint16, /* _outboundProofType */\\n address, /* _userApplication */\\n uint _payloadSize,\\n bytes memory _adapterParams\\n ) internal view returns (uint) {\\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n if (txType == 2) {\\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n totalRemoteToken += dstNativeAmt;\\n }\\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n totalRemoteToken += remoteGasTotal;\\n\\n // tokenConversionRate = dstPrice / localPrice\\n // basePrice = totalRemoteToken * tokenConversionRate\\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n return basePrice + _payloadSize * pricePerByte;\\n }\\n}\\n\",\"keccak256\":\"0xed3c937bc98dda9c5c4e05379b87629540e8fa628d0e62c4e3d01e25b47bbedf\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1154,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"lzEndpointLookup","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"},{"astId":1156,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"mockChainId","offset":0,"slot":"1","type":"t_uint16"},{"astId":1158,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nextMsgBlocked","offset":2,"slot":"1","type":"t_bool"},{"astId":1161,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"relayerFeeConfig","offset":0,"slot":"2","type":"t_struct(RelayerFeeConfig)1217_storage"},{"astId":1164,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"protocolFeeConfig","offset":0,"slot":"4","type":"t_struct(ProtocolFeeConfig)1206_storage"},{"astId":1166,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"oracleFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":1168,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"defaultAdapterParams","offset":0,"slot":"7","type":"t_bytes_storage"},{"astId":1174,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"inboundNonce","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))"},{"astId":1180,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"outboundNonce","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_mapping(t_address,t_uint64))"},{"astId":1187,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"storedPayload","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))"},{"astId":1195,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"msgsToDeliver","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))"},{"astId":1198,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_send_entered_state","offset":0,"slot":"12","type":"t_uint8"},{"astId":1201,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_receive_entered_state","offset":1,"slot":"12","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage":{"base":"t_struct(QueuedPayload)1231_storage","encoding":"dynamic_array","label":"struct LZEndpointMock.QueuedPayload[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_uint64)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])","numberOfBytes":"32","value":"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage"},"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.StoredPayload)","numberOfBytes":"32","value":"t_struct(StoredPayload)1224_storage"},"t_mapping(t_bytes_memory_ptr,t_uint64)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_uint16,t_mapping(t_address,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => uint64))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint64)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => uint64))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_uint64)"},"t_struct(ProtocolFeeConfig)1206_storage":{"encoding":"inplace","label":"struct LZEndpointMock.ProtocolFeeConfig","members":[{"astId":1203,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"zroFee","offset":0,"slot":"0","type":"t_uint256"},{"astId":1205,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nativeBP","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_struct(QueuedPayload)1231_storage":{"encoding":"inplace","label":"struct LZEndpointMock.QueuedPayload","members":[{"astId":1226,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":0,"slot":"0","type":"t_address"},{"astId":1228,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nonce","offset":20,"slot":"0","type":"t_uint64"},{"astId":1230,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"numberOfBytes":"64"},"t_struct(RelayerFeeConfig)1217_storage":{"encoding":"inplace","label":"struct LZEndpointMock.RelayerFeeConfig","members":[{"astId":1208,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstPriceRatio","offset":0,"slot":"0","type":"t_uint128"},{"astId":1210,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstGasPriceInWei","offset":16,"slot":"0","type":"t_uint128"},{"astId":1212,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstNativeAmtCap","offset":0,"slot":"1","type":"t_uint128"},{"astId":1214,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"baseGas","offset":16,"slot":"1","type":"t_uint64"},{"astId":1216,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"gasPerByte","offset":24,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_struct(StoredPayload)1224_storage":{"encoding":"inplace","label":"struct LZEndpointMock.StoredPayload","members":[{"astId":1219,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadLength","offset":0,"slot":"0","type":"t_uint64"},{"astId":1221,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":8,"slot":"0","type":"t_address"},{"astId":1223,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadHash","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"BytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c01b37cbd2e9bd6c98247907be889743b8c8fcb7c274624d7a76310c6b6bd0164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 ADD 0xB3 PUSH29 0xBD2E9BD6C98247907BE889743B8C8FCB7C274624D7A76310C6B6BD0164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"370:18108:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;370:18108:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c01b37cbd2e9bd6c98247907be889743b8c8fcb7c274624d7a76310c6b6bd0164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 ADD 0xB3 PUSH29 0xBD2E9BD6C98247907BE889743B8C8FCB7C274624D7A76310C6B6BD0164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"370:18108:7:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"concat(bytes memory,bytes memory)":"infinite","concatStorage(bytes storage pointer,bytes memory)":"infinite","equal(bytes memory,bytes memory)":"infinite","equalStorage(bytes storage pointer,bytes memory)":"infinite","slice(bytes memory,uint256,uint256)":"infinite","toAddress(bytes memory,uint256)":"infinite","toBytes32(bytes memory,uint256)":"infinite","toUint128(bytes memory,uint256)":"infinite","toUint16(bytes memory,uint256)":"infinite","toUint256(bytes memory,uint256)":"infinite","toUint32(bytes memory,uint256)":"infinite","toUint64(bytes memory,uint256)":"infinite","toUint8(bytes memory,uint256)":"infinite","toUint96(bytes memory,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"ExcessivelySafeCall":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e5af05bee3f9c673b3fd06a9db29ba2b01b924e99a9396efe99d79814b3753c164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 0xAF SDIV 0xBE 0xE3 0xF9 0xC6 PUSH20 0xB3FD06A9DB29BA2B01B924E99A9396EFE99D7981 0x4B CALLDATACOPY MSTORE8 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"72:5333:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72:5333:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e5af05bee3f9c673b3fd06a9db29ba2b01b924e99a9396efe99d79814b3753c164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 0xAF SDIV 0xBE 0xE3 0xF9 0xC6 PUSH20 0xB3FD06A9DB29BA2B01B924E99A9396EFE99D7981 0x4B CALLDATACOPY MSTORE8 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"72:5333:8:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"excessivelySafeCall(address,uint256,uint16,bytes memory)":"infinite","excessivelySafeStaticCall(address,uint256,uint16,bytes memory)":"infinite","swapSelector(bytes4,bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":\"ExcessivelySafeCall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.","kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":292,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":475,"id":null,"parameterSlots":2,"returnSlots":2},"extract_byte_array_length":{"entryPoint":581,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":270,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1985:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1658:325:25","statements":[{"nodeType":"YulAssignment","src":"1668:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1682:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1685:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1668:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1699:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1729:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"1735:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1725:3:25"},"nodeType":"YulFunctionCall","src":"1725:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1703:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1776:31:25","statements":[{"nodeType":"YulAssignment","src":"1778:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1792:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1800:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1788:3:25"},"nodeType":"YulFunctionCall","src":"1788:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1778:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1756:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:25"},"nodeType":"YulFunctionCall","src":"1749:26:25"},"nodeType":"YulIf","src":"1746:61:25"},{"body":{"nodeType":"YulBlock","src":"1866:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1887:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1894:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1899:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1890:3:25"},"nodeType":"YulFunctionCall","src":"1890:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:25"},"nodeType":"YulFunctionCall","src":"1880:31:25"},"nodeType":"YulExpressionStatement","src":"1880:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1934:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1924:6:25"},"nodeType":"YulFunctionCall","src":"1924:15:25"},"nodeType":"YulExpressionStatement","src":"1924:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1962:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1952:6:25"},"nodeType":"YulFunctionCall","src":"1952:15:25"},"nodeType":"YulExpressionStatement","src":"1952:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1822:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1845:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1842:2:25"},"nodeType":"YulFunctionCall","src":"1842:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1819:2:25"},"nodeType":"YulFunctionCall","src":"1819:38:25"},"nodeType":"YulIf","src":"1816:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1638:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1603:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000aef38038062000aef8339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000282565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b602082108114156200027c57634e487b7160e01b600052602260045260246000fd5b50919050565b61085d80620002926000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069a565b60405180910390f35b6100df6100da36600461070b565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610735565b61024a565b604051601281526020016100c3565b6100df61013136600461070b565b61026e565b6100f3610144366004610771565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461070b565b61029f565b6100df61018836600461070b565b61031f565b6100f361019b366004610793565b61032d565b6060600380546101af906107c6565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c6565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b9190610801565b610358565b6060600480546101af906107c6565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f0565b600060208083528351808285015260005b818110156106c7578581018301518582016040015282016106ab565b818111156106d9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461070657600080fd5b919050565b6000806040838503121561071e57600080fd5b610727836106ef565b946020939093013593505050565b60008060006060848603121561074a57600080fd5b610753846106ef565b9250610761602085016106ef565b9150604084013590509250925092565b60006020828403121561078357600080fd5b61078c826106ef565b9392505050565b600080604083850312156107a657600080fd5b6107af836106ef565b91506107bd602084016106ef565b90509250929050565b600181811c908216806107da57607f821691505b602082108114156107fb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561082257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220c93e0653d3466c26d2008803bbb9be73ca2adbd30ddd61dff70e9cba393ebf9464736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xAEF CODESIZE SUB DUP1 PUSH3 0xAEF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1DB JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x282 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x245 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x153 JUMPI PUSH3 0x153 PUSH3 0x10E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x17E JUMPI PUSH3 0x17E PUSH3 0x10E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1BF JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x1A0 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1D1 JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x215 DUP7 DUP4 DUP8 ADD PUSH3 0x124 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x22C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x23B DUP6 DUP3 DUP7 ADD PUSH3 0x124 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x25A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x27C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x85D DUP1 PUSH3 0x292 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x69A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x735 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x771 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x290 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x29F JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DB SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x358 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x258 DUP6 DUP3 DUP6 PUSH2 0x47C JUMP JUMPDEST PUSH2 0x263 DUP6 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x281 DUP4 DUP4 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x28B SWAP2 SWAP1 PUSH2 0x801 JUMP JUMPDEST PUSH2 0x358 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AD DUP3 DUP7 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x312 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x263 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x488 DUP5 DUP5 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F0 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x309 JUMP JUMPDEST PUSH2 0x4F0 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x634 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x6AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x727 DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x753 DUP5 PUSH2 0x6EF JUMP JUMPDEST SWAP3 POP PUSH2 0x761 PUSH1 0x20 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78C DUP3 PUSH2 0x6EF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7AF DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH2 0x7BD PUSH1 0x20 DUP5 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7DA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x7FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x822 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 RETURNDATACOPY MOD MSTORE8 0xD3 CHAINID PUSH13 0x26D2008803BBB9BE73CA2ADBD3 0xD 0xDD PUSH2 0xDFF7 0xE SWAP13 0xBA CODECOPY RETURNDATACOPY 0xBF SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"1401:11610:10:-:0;;;1976:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;1401:11610;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1401:11610:10;;;-1:-1:-1;1401:11610:10;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1603:380::-;1682:1;1678:12;;;;1725;;;1746:61;;1800:4;1792:6;1788:17;1778:27;;1746:61;1853:2;1845:6;1842:14;1822:18;1819:38;1816:161;;;1899:10;1894:3;1890:20;1887:1;1880:31;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1816:161;;1603:380;;;:::o;:::-;1401:11610:10;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":856,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1148,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1270,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":813,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":562,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":671,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":622,"id":3225,"parameterSlots":2,"returnSlots":1},"@name_3051":{"entryPoint":416,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":656,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":586,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":799,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1775,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1905,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1939,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1845,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1803,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1690,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2049,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":1990,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5806:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069a565b60405180910390f35b6100df6100da36600461070b565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610735565b61024a565b604051601281526020016100c3565b6100df61013136600461070b565b61026e565b6100f3610144366004610771565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461070b565b61029f565b6100df61018836600461070b565b61031f565b6100f361019b366004610793565b61032d565b6060600380546101af906107c6565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c6565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b9190610801565b610358565b6060600480546101af906107c6565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f0565b600060208083528351808285015260005b818110156106c7578581018301518582016040015282016106ab565b818111156106d9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461070657600080fd5b919050565b6000806040838503121561071e57600080fd5b610727836106ef565b946020939093013593505050565b60008060006060848603121561074a57600080fd5b610753846106ef565b9250610761602085016106ef565b9150604084013590509250925092565b60006020828403121561078357600080fd5b61078c826106ef565b9392505050565b600080604083850312156107a657600080fd5b6107af836106ef565b91506107bd602084016106ef565b90509250929050565b600181811c908216806107da57607f821691505b602082108114156107fb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561082257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220c93e0653d3466c26d2008803bbb9be73ca2adbd30ddd61dff70e9cba393ebf9464736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x69A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x735 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x771 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x290 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x29F JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DB SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x358 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x258 DUP6 DUP3 DUP6 PUSH2 0x47C JUMP JUMPDEST PUSH2 0x263 DUP6 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x281 DUP4 DUP4 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x28B SWAP2 SWAP1 PUSH2 0x801 JUMP JUMPDEST PUSH2 0x358 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AD DUP3 DUP7 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x312 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x263 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x488 DUP5 DUP5 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F0 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x309 JUMP JUMPDEST PUSH2 0x4F0 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x634 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x6AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x727 DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x753 DUP5 PUSH2 0x6EF JUMP JUMPDEST SWAP3 POP PUSH2 0x761 PUSH1 0x20 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78C DUP3 PUSH2 0x6EF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7AF DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH2 0x7BD PUSH1 0x20 DUP5 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7DA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x7FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x822 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 RETURNDATACOPY MOD MSTORE8 0xD3 CHAINID PUSH13 0x26D2008803BBB9BE73CA2ADBD3 0xD 0xDD PUSH2 0xDFF7 0xE SWAP13 0xBA CODECOPY RETURNDATACOPY 0xBF SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"1401:11610:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;3406:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;2365:102::-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;14:597:25;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"428200","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"26978","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"},"internal":{"_afterTokenTransfer(address,address,uint256)":"infinite","_approve(address,address,uint256)":"infinite","_beforeTokenTransfer(address,address,uint256)":"infinite","_burn(address,uint256)":"infinite","_mint(address,uint256)":"infinite","_spendAllowance(address,address,uint256)":"infinite","_transfer(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/OmniVotingEscrow.sol":{"OmniVotingEscrow":{"abi":[{"inputs":[{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_votingEscrowRemapper","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"dstChainId","type":"uint16"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"TotalSupplyToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"dstChainId","type":"uint16"},{"indexed":false,"internalType":"address","name":"localUser","type":"address"},{"indexed":false,"internalType":"address","name":"remoteUser","type":"address"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"userPoint","type":"tuple"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"UserBalToChain","type":"event"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendTotalSupply","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendUserBalance","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendTotalSupply","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendUserBalance","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingEscrowRemapper","outputs":[{"internalType":"contract IVotingEscrowRemapper","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_2907":{"entryPoint":null,"id":2907,"parameterSlots":0,"returnSlots":0},"@_3785":{"entryPoint":null,"id":3785,"parameterSlots":2,"returnSlots":0},"@_494":{"entryPoint":null,"id":494,"parameterSlots":1,"returnSlots":0},"@_935":{"entryPoint":null,"id":935,"parameterSlots":1,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2995":{"entryPoint":335,"id":2995,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":440,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory":{"entryPoint":503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_address":{"entryPoint":415,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1224:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:25"},"nodeType":"YulFunctionCall","src":"125:12:25"},"nodeType":"YulExpressionStatement","src":"125:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:25"},"nodeType":"YulFunctionCall","src":"104:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:25"},"nodeType":"YulFunctionCall","src":"100:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:25"},"nodeType":"YulFunctionCall","src":"89:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:25"},"nodeType":"YulFunctionCall","src":"79:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:25"},"nodeType":"YulFunctionCall","src":"72:50:25"},"nodeType":"YulIf","src":"69:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:25","type":""}],"src":"14:131:25"},{"body":{"nodeType":"YulBlock","src":"248:287:25","statements":[{"body":{"nodeType":"YulBlock","src":"294:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"303:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"306:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"296:6:25"},"nodeType":"YulFunctionCall","src":"296:12:25"},"nodeType":"YulExpressionStatement","src":"296:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"269:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"265:3:25"},"nodeType":"YulFunctionCall","src":"265:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"290:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"261:3:25"},"nodeType":"YulFunctionCall","src":"261:32:25"},"nodeType":"YulIf","src":"258:52:25"},{"nodeType":"YulVariableDeclaration","src":"319:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"338:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"332:5:25"},"nodeType":"YulFunctionCall","src":"332:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"323:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"382:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"357:24:25"},"nodeType":"YulFunctionCall","src":"357:31:25"},"nodeType":"YulExpressionStatement","src":"357:31:25"},{"nodeType":"YulAssignment","src":"397:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"407:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"397:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"421:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"446:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"457:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"442:3:25"},"nodeType":"YulFunctionCall","src":"442:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"436:5:25"},"nodeType":"YulFunctionCall","src":"436:25:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"425:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"495:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"470:24:25"},"nodeType":"YulFunctionCall","src":"470:33:25"},"nodeType":"YulExpressionStatement","src":"470:33:25"},{"nodeType":"YulAssignment","src":"512:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"522:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"512:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"206:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"217:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"229:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"237:6:25","type":""}],"src":"150:385:25"},{"body":{"nodeType":"YulBlock","src":"714:230:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"731:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"742:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"724:6:25"},"nodeType":"YulFunctionCall","src":"724:21:25"},"nodeType":"YulExpressionStatement","src":"724:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"776:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"781:2:25","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"754:6:25"},"nodeType":"YulFunctionCall","src":"754:30:25"},"nodeType":"YulExpressionStatement","src":"754:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"804:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"815:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"800:3:25"},"nodeType":"YulFunctionCall","src":"800:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f","kind":"string","nodeType":"YulLiteral","src":"820:34:25","type":"","value":"OmniVotingEscrow: remapper canno"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"793:6:25"},"nodeType":"YulFunctionCall","src":"793:62:25"},"nodeType":"YulExpressionStatement","src":"793:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"886:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"871:3:25"},"nodeType":"YulFunctionCall","src":"871:18:25"},{"hexValue":"7420626520307830","kind":"string","nodeType":"YulLiteral","src":"891:10:25","type":"","value":"t be 0x0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"864:6:25"},"nodeType":"YulFunctionCall","src":"864:38:25"},"nodeType":"YulExpressionStatement","src":"864:38:25"},{"nodeType":"YulAssignment","src":"911:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"934:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:25"},"nodeType":"YulFunctionCall","src":"919:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"911:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"691:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"705:4:25","type":""}],"src":"540:404:25"},{"body":{"nodeType":"YulBlock","src":"1052:170:25","statements":[{"body":{"nodeType":"YulBlock","src":"1098:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1107:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1110:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1100:6:25"},"nodeType":"YulFunctionCall","src":"1100:12:25"},"nodeType":"YulExpressionStatement","src":"1100:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1073:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1082:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1069:3:25"},"nodeType":"YulFunctionCall","src":"1069:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1094:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1065:3:25"},"nodeType":"YulFunctionCall","src":"1065:32:25"},"nodeType":"YulIf","src":"1062:52:25"},{"nodeType":"YulVariableDeclaration","src":"1123:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1142:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1136:5:25"},"nodeType":"YulFunctionCall","src":"1136:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1127:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1161:24:25"},"nodeType":"YulFunctionCall","src":"1161:31:25"},"nodeType":"YulExpressionStatement","src":"1161:31:25"},{"nodeType":"YulAssignment","src":"1201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"1211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1201:6:25"}]}]},"name":"abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1018:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1029:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1041:6:25","type":""}],"src":"949:273:25"}]},"contents":"{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"OmniVotingEscrow: remapper canno\")\n mstore(add(headStart, 96), \"t be 0x0\")\n tail := add(headStart, 128)\n }\n function abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e06040526005805463ffffffff1916620100001790553480156200002357600080fd5b5060405162002fef38038062002fef8339810160408190526200004691620001b8565b818062000053336200014f565b6001600160a01b03908116608052821615159050620000c95760405162461bcd60e51b815260206004820152602860248201527f4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f604482015267074206265203078360c41b606482015260840160405180910390fd5b6001600160a01b03811660c081905260408051630458184560e11b815290516308b0308a916004808201926020929091908290030181865afa15801562000114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013a9190620001f7565b6001600160a01b031660a052506200021e9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620001b557600080fd5b50565b60008060408385031215620001cc57600080fd5b8251620001d9816200019f565b6020840151909250620001ec816200019f565b809150509250929050565b6000602082840312156200020a57600080fd5b815162000217816200019f565b9392505050565b60805160a05160c051612d1c620002d360003960008181610269015261118901526000818161032b01528181610ad201528181610b7601528181610bf901528181610c6c01528181610d0501528181610eab01528181610f4601528181610fd80152818161104901526110ed0152600081816104f4015281816105ec0152818161083b015281816108c40152818161097401528181610e22015281816116ab01528181611adc0152611e100152612d1c6000f3fe6080604052600436106101b65760003560e01c80637533d788116100ec578063baf3292d1161008a578063df2a5b3b11610064578063df2a5b3b14610569578063eb8d72b714610589578063f2fde38b146105a9578063f5ecbdbc146105c957600080fd5b8063baf3292d14610516578063cbed8b9c14610536578063d1deba1f1461055657600080fd5b8063950c8a74116100c6578063950c8a74146104825780639f38369a146104a2578063a6c3d165146104c2578063b353aaa7146104e257600080fd5b80637533d788146103ff5780638cfd8f5c1461042c5780638da5cb5b1461046457600080fd5b806342d65a8d116101595780635b8c41e6116101335780635b8c41e61461034d57806365d092d0146103aa57806366ad5c8a146103ca578063715018a6146103ea57600080fd5b806342d65a8d146102e65780634a759489146103065780634f2bfe5b1461031957600080fd5b806316334c8f1161019557806316334c8f1461021d578063363bf0de146102575780633d8b38f6146102a3578063416b154a146102d357600080fd5b80621d3567146101bb57806307e0db17146101dd57806310ddb137146101fd575b600080fd5b3480156101c757600080fd5b506101db6101d636600461224e565b6105e9565b005b3480156101e957600080fd5b506101db6101f83660046122e1565b61081a565b34801561020957600080fd5b506101db6102183660046122e1565b6108a3565b34801561022957600080fd5b5061023d6102383660046122fc565b6108fb565b604080519283526020830191909152015b60405180910390f35b34801561026357600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024e565b3480156102af57600080fd5b506102c36102be366004612363565b610a01565b604051901515815260200161024e565b6101db6102e136600461248d565b610ace565b3480156102f257600080fd5b506101db610301366004612363565b610e03565b6101db6103143660046124ff565b610e89565b34801561032557600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b5061039c610368366004612584565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b60405190815260200161024e565b3480156103b657600080fd5b5061023d6103c53660046122fc565b6112a0565b3480156103d657600080fd5b506101db6103e536600461224e565b611303565b3480156103f657600080fd5b506101db6113df565b34801561040b57600080fd5b5061041f61041a3660046122e1565b6113f3565b60405161024e919061263d565b34801561043857600080fd5b5061039c610447366004612650565b600260209081526000928352604080842090915290825290205481565b34801561047057600080fd5b506000546001600160a01b031661028b565b34801561048e57600080fd5b5060035461028b906001600160a01b031681565b3480156104ae57600080fd5b5061041f6104bd3660046122e1565b61148d565b3480156104ce57600080fd5b506101db6104dd366004612363565b61159d565b3480156104ee57600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b506101db610531366004612683565b611630565b34801561054257600080fd5b506101db6105513660046126a0565b61168c565b6101db61056436600461224e565b611721565b34801561057557600080fd5b506101db61058436600461270e565b611926565b34801561059557600080fd5b506101db6105a4366004612363565b6119d8565b3480156105b557600080fd5b506101db6105c4366004612683565b611a32565b3480156105d557600080fd5b5061041f6105e436600461274a565b611aab565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461068490612797565b80601f01602080910402602001604051908101604052809291908181526020018280546106b090612797565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b50505050509050805186869050148015610718575060008151115b801561074057508051602082012060405161073690889088906127d2565b6040518091039020145b61079b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161065d565b6108118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b5c92505050565b50505050505050565b610822611c66565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050505050565b6108ab611c66565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161086e565b6000806000600560029054906101000a900461ffff1660405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525060405160200161094d92919061280e565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906109b3908a90309086908c908c908c9060040161284f565b6040805180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906128a5565b925092505094509492505050565b61ffff831660009081526001602052604081208054829190610a2290612797565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90612797565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b505050505090508383604051610ab29291906127d2565b60405180910390208180519060200120149150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be391906128f4565b9050610bf28160400151611cc0565b15610d7d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906128c9565b60405163d1febfb960e01b8152600481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1febfb9906024016080604051808303816000875af1158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906128f4565b90505b6000600560029054906101000a900461ffff1682604051602001610da292919061280e565b6040516020818303038152906040529050610dc1878288888834611cf1565b7fd76af77f4ffbd9969fdb15b1c1268d40cd4bf1093905e67639f369cb9f44c1728783604051610df292919061280e565b60405180910390a150505050505050565b610e0b611c66565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610e5b90869086908690600401612965565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610811573d6000803e3d6000fd5b60405163010ae75760e01b81526001600160a01b0386811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063010ae757906024016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906128c9565b6040516328d09d4760e01b81526001600160a01b038881166004830152602482018390529192506000917f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906044016080604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb391906128f4565b60405163adc6358960e01b81526001600160a01b0389811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063adc6358990602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128c9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a91906128f4565b6040516317b4eb8760e31b81526001600160a01b038c8116600483015261ffff8c1660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bda75c3890604401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612983565b905060006001600160a01b03821661120c578b61120e565b815b6005546040519192506000916112339161ffff1690849089908b9089906020016129a0565b60405160208183030381529060405290506112528c828d8d8d34611cf1565b7f3689d0fa90a175cc766502dc62c2abdee9ca4b276d4315adf98339a8354755808c8e848a886040516112899594939291906129e6565b60405180910390a150505050505050505050505050565b6005546040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052935190948594859461094d9461ffff9093169386938493909101612a16565b3330146113615760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161065d565b6113d78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611e8c92505050565b505050505050565b6113e7611c66565b6113f16000611ee4565b565b6001602052600090815260409020805461140c90612797565b80601f016020809104026020016040519081016040528092919081815260200182805461143890612797565b80156114855780601f1061145a57610100808354040283529160200191611485565b820191906000526020600020905b81548152906001019060200180831161146857829003601f168201915b505050505081565b61ffff81166000908152600160205260408120805460609291906114b090612797565b80601f01602080910402602001604051908101604052809291908181526020018280546114dc90612797565b80156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b505050505090508051600014156115825760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161065d565b610ac76000601483516115959190612a5d565b839190611f34565b6115a5611c66565b8181306040516020016115ba93929190612a74565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516115ef939192909101906120cb565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161162393929190612965565b60405180910390a1505050565b611638611c66565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b611694611c66565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116e89088908890889088908890600401612a9a565b600060405180830381600087803b15801561170257600080fd5b505af1158015611716573d6000803e3d6000fd5b505050505050505050565b61ffff8616600090815260046020526040808220905161174490889088906127d2565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806117c45760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161065d565b8083836040516117d59291906127d2565b6040518091039020146118345760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161065d565b61ffff8716600090815260046020526040808220905161185790899089906127d2565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526118ef918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611e8c92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051610df2959493929190612ad3565b61192e611c66565b600081116119765760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161065d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611623565b6119e0611c66565b61ffff831660009081526001602052604090206119fe90838361214f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161162393929190612965565b611a3a611c66565b6001600160a01b038116611a9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065d565b611aa881611ee4565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b539190810190612b0e565b95945050505050565b600080611bbf5a60966366ad5c8a60e01b89898989604051602401611b849493929190612b7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612041565b91509150816113d7578280519060200120600460008861ffff1661ffff16815260200190815260200160002086604051611bf99190612bb9565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611c569088908890889088908790612bd5565b60405180910390a1505050505050565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065d565b600042611cd062093a8084612c33565b611cdd9062093a80612c55565b611cea9062093a80612c74565b1092915050565b61ffff861660009081526001602052604081208054611d0f90612797565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3b90612797565b8015611d885780601f10611d5d57610100808354040283529160200191611d88565b820191906000526020600020905b815481529060010190602001808311611d6b57829003601f168201915b50505050509050805160001415611dfa5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161065d565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490611e51908b9086908c908c908c908c90600401612c8c565b6000604051808303818588803b158015611e6a57600080fd5b505af1158015611e7e573d6000803e3d6000fd5b505050505050505050505050565b60405162461bcd60e51b815260206004820152602760248201527f4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665604482015266206c7a4d73677360c81b606482015260840161065d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606081611f4281601f612c74565b1015611f815760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161065d565b611f8b8284612c74565b84511015611fcf5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161065d565b606082158015611fee5760405191506000825260208201604052612038565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561202757805183526020928301920161200f565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115612066576120666123ca565b6040519080825280601f01601f191660200182016040528015612090576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156120b2578692505b828152826000602083013e909890975095505050505050565b8280546120d790612797565b90600052602060002090601f0160209004810192826120f9576000855561213f565b82601f1061211257805160ff191683800117855561213f565b8280016001018555821561213f579182015b8281111561213f578251825591602001919060010190612124565b5061214b9291506121c3565b5090565b82805461215b90612797565b90600052602060002090601f01602090048101928261217d576000855561213f565b82601f106121965782800160ff1982351617855561213f565b8280016001018555821561213f579182015b8281111561213f5782358255916020019190600101906121a8565b5b8082111561214b57600081556001016121c4565b803561ffff811681146121ea57600080fd5b919050565b60008083601f84011261220157600080fd5b5081356001600160401b0381111561221857600080fd5b60208301915083602082850101111561223057600080fd5b9250929050565b80356001600160401b03811681146121ea57600080fd5b6000806000806000806080878903121561226757600080fd5b612270876121d8565b955060208701356001600160401b038082111561228c57600080fd5b6122988a838b016121ef565b90975095508591506122ac60408a01612237565b945060608901359150808211156122c257600080fd5b506122cf89828a016121ef565b979a9699509497509295939492505050565b6000602082840312156122f357600080fd5b610ac7826121d8565b6000806000806060858703121561231257600080fd5b61231b856121d8565b93506020850135801515811461233057600080fd5b925060408501356001600160401b0381111561234b57600080fd5b612357878288016121ef565b95989497509550505050565b60008060006040848603121561237857600080fd5b612381846121d8565b925060208401356001600160401b0381111561239c57600080fd5b6123a8868287016121ef565b9497909650939450505050565b6001600160a01b0381168114611aa857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612408576124086123ca565b604052919050565b60006001600160401b03821115612429576124296123ca565b50601f01601f191660200190565b600082601f83011261244857600080fd5b813561245b61245682612410565b6123e0565b81815284602083860101111561247057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156124a357600080fd5b6124ac856121d8565b935060208501356124bc816123b5565b925060408501356124cc816123b5565b915060608501356001600160401b038111156124e757600080fd5b6124f387828801612437565b91505092959194509250565b600080600080600060a0868803121561251757600080fd5b8535612522816123b5565b9450612530602087016121d8565b93506040860135612540816123b5565b92506060860135612550816123b5565b915060808601356001600160401b0381111561256b57600080fd5b61257788828901612437565b9150509295509295909350565b60008060006060848603121561259957600080fd5b6125a2846121d8565b925060208401356001600160401b038111156125bd57600080fd5b6125c986828701612437565b9250506125d860408501612237565b90509250925092565b60005b838110156125fc5781810151838201526020016125e4565b8381111561260b576000848401525b50505050565b600081518084526126298160208601602086016125e1565b601f01601f19169290920160200192915050565b602081526000610ac76020830184612611565b6000806040838503121561266357600080fd5b61266c836121d8565b915061267a602084016121d8565b90509250929050565b60006020828403121561269557600080fd5b8135610ac7816123b5565b6000806000806000608086880312156126b857600080fd5b6126c1866121d8565b94506126cf602087016121d8565b93506040860135925060608601356001600160401b038111156126f157600080fd5b6126fd888289016121ef565b969995985093965092949392505050565b60008060006060848603121561272357600080fd5b61272c846121d8565b925061273a602085016121d8565b9150604084013590509250925092565b6000806000806080858703121561276057600080fd5b612769856121d8565b9350612777602086016121d8565b92506040850135612787816123b5565b9396929550929360600135925050565b600181811c908216806127ab57607f821691505b602082108114156127cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b61ffff8316815260a08101610ac760208301846127e2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061287d90830187612611565b85151560608401528281036080840152612898818587612826565b9998505050505050505050565b600080604083850312156128b857600080fd5b505080516020909101519092909150565b6000602082840312156128db57600080fd5b5051919050565b8051600f81900b81146121ea57600080fd5b60006080828403121561290657600080fd5b604051608081018181106001600160401b0382111715612928576129286123ca565b604052612934836128e2565b8152612942602084016128e2565b602082015260408301516040820152606083015160608201528091505092915050565b61ffff84168152604060208201526000611b53604083018486612826565b60006020828403121561299557600080fd5b8151610ac7816123b5565b61ffff861681526001600160a01b03851660208201526040810184905261016081016129cf60608301856127e2565b6129dc60e08301846127e2565b9695505050505050565b61ffff861681526001600160a01b0385811660208301528416604082015261016081016129cf60608301856127e2565b61ffff861681526001600160a01b038516602082015260ff8416604082015261016081016129cf60608301856127e2565b634e487b7160e01b600052601160045260246000fd5b600082821015612a6f57612a6f612a47565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152612ac8608083018486612826565b979650505050505050565b61ffff86168152608060208201526000612af1608083018688612826565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215612b2057600080fd5b81516001600160401b03811115612b3657600080fd5b8201601f81018413612b4757600080fd5b8051612b5561245682612410565b818152856020838501011115612b6a57600080fd5b611b538260208301602086016125e1565b61ffff85168152608060208201526000612b986080830186612611565b6001600160401b03851660408401528281036060840152612ac88185612611565b60008251612bcb8184602087016125e1565b9190910192915050565b61ffff8616815260a060208201526000612bf260a0830187612611565b6001600160401b03861660408401528281036060840152612c138186612611565b90508281036080840152612c278185612611565b98975050505050505050565b600082612c5057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612c6f57612c6f612a47565b500290565b60008219821115612c8757612c87612a47565b500190565b61ffff8716815260c060208201526000612ca960c0830188612611565b8281036040840152612cbb8188612611565b6001600160a01b0387811660608601528616608085015283810360a08501529050612898818561261156fea2646970667358221220b85af53a2a319ccabd0aabf707afce404bbc10fcde62f9d2c0840fa8d9e9f31364736f6c634300080a0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE PUSH1 0x5 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH3 0x10000 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2FEF CODESIZE SUB DUP1 PUSH3 0x2FEF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x46 SWAP2 PUSH3 0x1B8 JUMP JUMPDEST DUP2 DUP1 PUSH3 0x53 CALLER PUSH3 0x14F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x80 MSTORE DUP3 AND ISZERO ISZERO SWAP1 POP PUSH3 0xC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2072656D61707065722063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x742062652030783 PUSH1 0xC4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xC0 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x4581845 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH4 0x8B0308A SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x114 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x13A SWAP2 SWAP1 PUSH3 0x1F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH3 0x21E SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x1D9 DUP2 PUSH3 0x19F JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x1EC DUP2 PUSH3 0x19F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x217 DUP2 PUSH3 0x19F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x2D1C PUSH3 0x2D3 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x269 ADD MSTORE PUSH2 0x1189 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x32B ADD MSTORE DUP2 DUP2 PUSH2 0xAD2 ADD MSTORE DUP2 DUP2 PUSH2 0xB76 ADD MSTORE DUP2 DUP2 PUSH2 0xBF9 ADD MSTORE DUP2 DUP2 PUSH2 0xC6C ADD MSTORE DUP2 DUP2 PUSH2 0xD05 ADD MSTORE DUP2 DUP2 PUSH2 0xEAB ADD MSTORE DUP2 DUP2 PUSH2 0xF46 ADD MSTORE DUP2 DUP2 PUSH2 0xFD8 ADD MSTORE DUP2 DUP2 PUSH2 0x1049 ADD MSTORE PUSH2 0x10ED ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4F4 ADD MSTORE DUP2 DUP2 PUSH2 0x5EC ADD MSTORE DUP2 DUP2 PUSH2 0x83B ADD MSTORE DUP2 DUP2 PUSH2 0x8C4 ADD MSTORE DUP2 DUP2 PUSH2 0x974 ADD MSTORE DUP2 DUP2 PUSH2 0xE22 ADD MSTORE DUP2 DUP2 PUSH2 0x16AB ADD MSTORE DUP2 DUP2 PUSH2 0x1ADC ADD MSTORE PUSH2 0x1E10 ADD MSTORE PUSH2 0x2D1C PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBAF3292D GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDF2A5B3B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x589 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x516 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x536 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x482 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x65D092D0 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x4A759489 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x4F2BFE5B EQ PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x16334C8F GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x16334C8F EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x363BF0DE EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x416B154A EQ PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x1FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x8A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0x2BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x248D JUMP JUMPDEST PUSH2 0xACE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x301 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xE03 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x24FF JUMP JUMPDEST PUSH2 0xE89 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x2584 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x12A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1303 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x13DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x263D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x2650 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x28B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x28B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x4BD CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x4DD CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x159D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x531 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x26A0 JUMP JUMPDEST PUSH2 0x168C JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1721 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x584 CALLDATASIZE PUSH1 0x4 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x1926 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x19D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1A32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x5E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x274A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x684 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x718 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x740 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x736 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x79B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x811 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1B5C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x822 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x89C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AB PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x86E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x94D SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP3 MSTORE SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x9B3 SWAP1 DUP11 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x284F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9F3 SWAP2 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xA22 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA4E SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA9B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA9B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA7E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xAB2 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB52 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBE3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP PUSH2 0xBF2 DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x1CC0 JUMP JUMPDEST ISZERO PUSH2 0xD7D JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2C4C5C1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCEC SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD7A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xDC1 DUP8 DUP3 DUP9 DUP9 DUP9 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0xD76AF77F4FFBD9969FDB15B1C1268D40CD4BF1093905E67639F369CB9F44C172 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE0B PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xE5B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x811 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10AE757 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x10AE757 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF1A SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28D09D47 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0x28D09D47 SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xADC63589 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xADC63589 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1043 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C9 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1136 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x115A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x17B4EB87 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xBDA75C38 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11F4 SWAP2 SWAP1 PUSH2 0x2983 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x120C JUMPI DUP12 PUSH2 0x120E JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x1233 SWAP2 PUSH2 0xFFFF AND SWAP1 DUP5 SWAP1 DUP10 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x29A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1252 DUP13 DUP3 DUP14 DUP14 DUP14 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0x3689D0FA90A175CC766502DC62C2ABDEE9CA4B276D4315ADF98339A835475580 DUP13 DUP15 DUP5 DUP11 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1289 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP4 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE DUP6 MLOAD SWAP4 DUP5 ADD DUP7 MSTORE DUP3 DUP5 MSTORE DUP4 DUP3 ADD DUP4 SWAP1 MSTORE DUP4 DUP7 ADD DUP4 SWAP1 MSTORE DUP4 ADD DUP3 SWAP1 MSTORE SWAP4 MLOAD SWAP1 SWAP5 DUP6 SWAP5 DUP6 SWAP5 PUSH2 0x94D SWAP5 PUSH2 0xFFFF SWAP1 SWAP4 AND SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP1 SWAP2 ADD PUSH2 0x2A16 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x13D7 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13E7 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0x13F1 PUSH1 0x0 PUSH2 0x1EE4 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x140C SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1438 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1485 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x145A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1485 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1468 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x14B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x14DC SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1529 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x14FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1529 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x150C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1582 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xAC7 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1595 SWAP2 SWAP1 PUSH2 0x2A5D JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x15A5 PUSH2 0x1C66 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15BA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x15EF SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20CB JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1638 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x1694 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x16E8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2A9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1744 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x17C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x17D5 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1834 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1857 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x18EF SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2AD3 JUMP JUMPDEST PUSH2 0x192E PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1623 JUMP JUMPDEST PUSH2 0x19E0 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FE SWAP1 DUP4 DUP4 PUSH2 0x214F JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH2 0x1A3A PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A9F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1AA8 DUP2 PUSH2 0x1EE4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1B53 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B0E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BBF GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1B84 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2041 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x13D7 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1BF9 SWAP2 SWAP1 PUSH2 0x2BB9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x1C56 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2BD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH2 0x1CD0 PUSH3 0x93A80 DUP5 PUSH2 0x2C33 JUMP JUMPDEST PUSH2 0x1CDD SWAP1 PUSH3 0x93A80 PUSH2 0x2C55 JUMP JUMPDEST PUSH2 0x1CEA SWAP1 PUSH3 0x93A80 PUSH2 0x2C74 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1D0F SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D3B SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D88 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D5D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D88 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D6B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x1E51 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2063616E6E6F742072656365697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x206C7A4D736773 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1F42 DUP2 PUSH1 0x1F PUSH2 0x2C74 JUMP JUMPDEST LT ISZERO PUSH2 0x1F81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1F8B DUP3 DUP5 PUSH2 0x2C74 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1FCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1FEE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2027 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x200F JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2066 JUMPI PUSH2 0x2066 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x20B2 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x20D7 SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x20F9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2112 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2124 JUMP JUMPDEST POP PUSH2 0x214B SWAP3 SWAP2 POP PUSH2 0x21C3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x215B SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x217D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2196 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x214B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21C4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2270 DUP8 PUSH2 0x21D8 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2298 DUP11 DUP4 DUP12 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x22AC PUSH1 0x40 DUP11 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x22C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22CF DUP10 DUP3 DUP11 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC7 DUP3 PUSH2 0x21D8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x231B DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x234B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2357 DUP8 DUP3 DUP9 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2381 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x239C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23A8 DUP7 DUP3 DUP8 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2408 JUMPI PUSH2 0x2408 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2429 JUMPI PUSH2 0x2429 PUSH2 0x23CA JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x245B PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST PUSH2 0x23E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x24A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24AC DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x24BC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x24CC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP8 DUP3 DUP9 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2522 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP5 POP PUSH2 0x2530 PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2540 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0x2550 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x256B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2577 DUP9 DUP3 DUP10 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25A2 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x25BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25C9 DUP7 DUP3 DUP8 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x25D8 PUSH1 0x40 DUP6 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25FC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25E4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x260B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2629 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x266C DUP4 PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH2 0x267A PUSH1 0x20 DUP5 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26C1 DUP7 PUSH2 0x21D8 JUMP JUMPDEST SWAP5 POP PUSH2 0x26CF PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26FD DUP9 DUP3 DUP10 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x272C DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH2 0x273A PUSH1 0x20 DUP6 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2760 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2769 DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2777 PUSH1 0x20 DUP7 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2787 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x27CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x287D SWAP1 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2898 DUP2 DUP6 DUP8 PUSH2 0x2826 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE PUSH2 0x2934 DUP4 PUSH2 0x28E2 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2942 PUSH1 0x20 DUP5 ADD PUSH2 0x28E2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1B53 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0x29DC PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2A6F JUMPI PUSH2 0x2A6F PUSH2 0x2A47 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2AC8 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AF1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2B47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2B55 PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2B6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B53 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B98 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2AC8 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2BCB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x25E1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BF2 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C13 DUP2 DUP7 PUSH2 0x2611 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C27 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2C50 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2C6F JUMPI PUSH2 0x2C6F PUSH2 0x2A47 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2C87 JUMPI PUSH2 0x2C87 PUSH2 0x2A47 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CA9 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x2611 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2CBB DUP2 DUP9 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP7 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2898 DUP2 DUP6 PUSH2 0x2611 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 GAS CREATE2 GASPRICE 0x2A BALANCE SWAP13 0xCA 0xBD EXP 0xAB 0xF7 SMOD 0xAF 0xCE BLOCKHASH 0x4B 0xBC LT 0xFC 0xDE PUSH3 0xF9D2C0 DUP5 0xF 0xA8 0xD9 0xE9 RETURN SGT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"299:4343:14:-:0;;;523:18;;;-1:-1:-1;;587:16:14;;;;;874:342;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;955:11;;936:32:9;719:10:13;936:18:9;:32::i;:::-;-1:-1:-1;;;;;980:42:4;;;;;986:37:14;::::1;::::0;::::1;::::0;-1:-1:-1;978:90:14::1;;;::::0;-1:-1:-1;;;978:90:14;;742:2:25;978:90:14::1;::::0;::::1;724:21:25::0;781:2;761:18;;;754:30;820:34;800:18;;;793:62;-1:-1:-1;;;871:18:25;;;864:38;919:19;;978:90:14::1;;;;;;;;-1:-1:-1::0;;;;;1079:67:14;::::1;;::::0;;;1171:38:::1;::::0;;-1:-1:-1;;;1171:38:14;;;;:36:::1;::::0;:38:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;1079:67;1171:38:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1156:53:14::1;;::::0;-1:-1:-1;299:4343:14;;-1:-1:-1;299:4343:14;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:131:25:-;-1:-1:-1;;;;;89:31:25;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:385::-;229:6;237;290:2;278:9;269:7;265:23;261:32;258:52;;;306:1;303;296:12;258:52;338:9;332:16;357:31;382:5;357:31;:::i;:::-;457:2;442:18;;436:25;407:5;;-1:-1:-1;470:33:25;436:25;470:33;:::i;:::-;522:7;512:17;;;150:385;;;;;:::o;949:273::-;1041:6;1094:2;1082:9;1073:7;1069:23;1065:32;1062:52;;;1110:1;1107;1100:12;1062:52;1142:9;1136:16;1161:31;1186:5;1161:31;:::i;:::-;1211:5;949:273;-1:-1:-1;;;949:273:25:o;:::-;299:4343:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_blockingLzReceive_1026":{"entryPoint":7004,"id":1026,"parameterSlots":4,"returnSlots":0},"@_checkOwner_2938":{"entryPoint":7270,"id":2938,"parameterSlots":0,"returnSlots":0},"@_hasLastCheckpointExpired_4093":{"entryPoint":7360,"id":4093,"parameterSlots":1,"returnSlots":1},"@_lzSend_607":{"entryPoint":7409,"id":607,"parameterSlots":6,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_nonblockingLzReceive_3802":{"entryPoint":7820,"id":3802,"parameterSlots":4,"returnSlots":0},"@_transferOwnership_2995":{"entryPoint":7908,"id":2995,"parameterSlots":1,"returnSlots":0},"@estimateSendTotalSupply_3894":{"entryPoint":2299,"id":3894,"parameterSlots":4,"returnSlots":2},"@estimateSendUserBalance_3854":{"entryPoint":4768,"id":3854,"parameterSlots":4,"returnSlots":2},"@excessivelySafeCall_2826":{"entryPoint":8257,"id":2826,"parameterSlots":4,"returnSlots":2},"@failedMessages_943":{"entryPoint":null,"id":943,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_763":{"entryPoint":3587,"id":763,"parameterSlots":3,"returnSlots":0},"@getConfig_691":{"entryPoint":6827,"id":691,"parameterSlots":4,"returnSlots":1},"@getTrustedRemoteAddress_843":{"entryPoint":5261,"id":843,"parameterSlots":1,"returnSlots":1},"@isTrustedRemote_916":{"entryPoint":2561,"id":916,"parameterSlots":3,"returnSlots":1},"@lzEndpoint_446":{"entryPoint":null,"id":446,"parameterSlots":0,"returnSlots":0},"@lzReceive_553":{"entryPoint":1513,"id":553,"parameterSlots":6,"returnSlots":0},"@minDstGasLookup_456":{"entryPoint":null,"id":456,"parameterSlots":0,"returnSlots":0},"@nonblockingLzReceive_1056":{"entryPoint":4867,"id":1056,"parameterSlots":6,"returnSlots":0},"@owner_2924":{"entryPoint":null,"id":2924,"parameterSlots":0,"returnSlots":1},"@precrime_458":{"entryPoint":null,"id":458,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_2952":{"entryPoint":5087,"id":2952,"parameterSlots":0,"returnSlots":0},"@retryMessage_1135":{"entryPoint":5921,"id":1135,"parameterSlots":6,"returnSlots":0},"@sendTotalSupply_4073":{"entryPoint":2766,"id":4073,"parameterSlots":4,"returnSlots":0},"@sendUserBalance_3998":{"entryPoint":3721,"id":3998,"parameterSlots":5,"returnSlots":0},"@setConfig_715":{"entryPoint":5772,"id":715,"parameterSlots":5,"returnSlots":0},"@setMinDstGas_892":{"entryPoint":6438,"id":892,"parameterSlots":3,"returnSlots":0},"@setPrecrime_859":{"entryPoint":5680,"id":859,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_745":{"entryPoint":2211,"id":745,"parameterSlots":1,"returnSlots":0},"@setSendVersion_730":{"entryPoint":2074,"id":730,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_812":{"entryPoint":5533,"id":812,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_784":{"entryPoint":6616,"id":784,"parameterSlots":3,"returnSlots":0},"@slice_2517":{"entryPoint":7988,"id":2517,"parameterSlots":3,"returnSlots":1},"@transferOwnership_2975":{"entryPoint":6706,"id":2975,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_450":{"entryPoint":5107,"id":450,"parameterSlots":0,"returnSlots":0},"@votingEscrowRemapper_3725":{"entryPoint":null,"id":3725,"parameterSlots":0,"returnSlots":0},"@votingEscrow_3722":{"entryPoint":null,"id":3722,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9271,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":8687,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_int128_fromMemory":{"entryPoint":10466,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9859,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":10627,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":9471,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":11022,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":10484,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16":{"entryPoint":8929,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":9357,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr":{"entryPoint":8956,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9059,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":8782,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":9604,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":9808,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10058,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":9998,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":9888,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":10441,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":10405,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":8664,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":8759,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9745,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":10278,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_Point":{"entryPoint":10210,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10194,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":10868,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":11193,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9789,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10726,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10319,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10774,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10656,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10597,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":10963,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11404,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11131,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11221,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10254,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10906,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":9184,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":9232,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11380,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11315,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11349,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":10845,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":9697,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":10135,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10823,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9162,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address_payable":{"entryPoint":9141,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:28353:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"62:111:25","statements":[{"nodeType":"YulAssignment","src":"72:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"94:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"81:12:25"},"nodeType":"YulFunctionCall","src":"81:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"72:5:25"}]},{"body":{"nodeType":"YulBlock","src":"151:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"160:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"153:6:25"},"nodeType":"YulFunctionCall","src":"153:12:25"},"nodeType":"YulExpressionStatement","src":"153:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"123:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"134:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"141:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"130:3:25"},"nodeType":"YulFunctionCall","src":"130:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"120:2:25"},"nodeType":"YulFunctionCall","src":"120:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"113:6:25"},"nodeType":"YulFunctionCall","src":"113:37:25"},"nodeType":"YulIf","src":"110:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"41:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"52:5:25","type":""}],"src":"14:159:25"},{"body":{"nodeType":"YulBlock","src":"250:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"299:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"308:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"311:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"301:6:25"},"nodeType":"YulFunctionCall","src":"301:12:25"},"nodeType":"YulExpressionStatement","src":"301:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"278:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"286:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:25"},"nodeType":"YulFunctionCall","src":"274:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"293:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"270:3:25"},"nodeType":"YulFunctionCall","src":"270:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"263:6:25"},"nodeType":"YulFunctionCall","src":"263:35:25"},"nodeType":"YulIf","src":"260:55:25"},{"nodeType":"YulAssignment","src":"324:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"324:6:25"}]},{"body":{"nodeType":"YulBlock","src":"397:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"406:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"409:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"399:6:25"},"nodeType":"YulFunctionCall","src":"399:12:25"},"nodeType":"YulExpressionStatement","src":"399:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"369:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"377:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"366:2:25"},"nodeType":"YulFunctionCall","src":"366:30:25"},"nodeType":"YulIf","src":"363:50:25"},{"nodeType":"YulAssignment","src":"422:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"438:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"446:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:25"},"nodeType":"YulFunctionCall","src":"434:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"422:8:25"}]},{"body":{"nodeType":"YulBlock","src":"503:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"512:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"515:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"505:6:25"},"nodeType":"YulFunctionCall","src":"505:12:25"},"nodeType":"YulExpressionStatement","src":"505:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"474:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"482:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"470:3:25"},"nodeType":"YulFunctionCall","src":"470:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"491:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"498:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"463:2:25"},"nodeType":"YulFunctionCall","src":"463:39:25"},"nodeType":"YulIf","src":"460:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"213:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"221:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"229:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"239:6:25","type":""}],"src":"178:347:25"},{"body":{"nodeType":"YulBlock","src":"578:123:25","statements":[{"nodeType":"YulAssignment","src":"588:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"610:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"597:12:25"},"nodeType":"YulFunctionCall","src":"597:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"588:5:25"}]},{"body":{"nodeType":"YulBlock","src":"679:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"688:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"691:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"681:6:25"},"nodeType":"YulFunctionCall","src":"681:12:25"},"nodeType":"YulExpressionStatement","src":"681:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"639:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"650:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"657:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"646:3:25"},"nodeType":"YulFunctionCall","src":"646:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"636:2:25"},"nodeType":"YulFunctionCall","src":"636:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"629:6:25"},"nodeType":"YulFunctionCall","src":"629:49:25"},"nodeType":"YulIf","src":"626:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"557:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"568:5:25","type":""}],"src":"530:171:25"},{"body":{"nodeType":"YulBlock","src":"863:705:25","statements":[{"body":{"nodeType":"YulBlock","src":"910:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"919:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"912:6:25"},"nodeType":"YulFunctionCall","src":"912:12:25"},"nodeType":"YulExpressionStatement","src":"912:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"884:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"893:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"880:3:25"},"nodeType":"YulFunctionCall","src":"880:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"905:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"876:3:25"},"nodeType":"YulFunctionCall","src":"876:33:25"},"nodeType":"YulIf","src":"873:53:25"},{"nodeType":"YulAssignment","src":"935:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"963:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"945:17:25"},"nodeType":"YulFunctionCall","src":"945:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"935:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"982:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1024:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1009:3:25"},"nodeType":"YulFunctionCall","src":"1009:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"996:12:25"},"nodeType":"YulFunctionCall","src":"996:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"986:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1037:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"1047:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1041:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1092:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1101:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1104:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:25"},"nodeType":"YulFunctionCall","src":"1094:12:25"},"nodeType":"YulExpressionStatement","src":"1094:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1080:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1088:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1077:2:25"},"nodeType":"YulFunctionCall","src":"1077:14:25"},"nodeType":"YulIf","src":"1074:34:25"},{"nodeType":"YulVariableDeclaration","src":"1117:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1173:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1184:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1169:3:25"},"nodeType":"YulFunctionCall","src":"1169:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1193:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1143:25:25"},"nodeType":"YulFunctionCall","src":"1143:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1121:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1131:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1210:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1220:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1210:6:25"}]},{"nodeType":"YulAssignment","src":"1237:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1247:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1237:6:25"}]},{"nodeType":"YulAssignment","src":"1264:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1296:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1307:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1292:3:25"},"nodeType":"YulFunctionCall","src":"1292:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"1274:17:25"},"nodeType":"YulFunctionCall","src":"1274:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1264:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1320:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1353:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1364:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1349:3:25"},"nodeType":"YulFunctionCall","src":"1349:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1336:12:25"},"nodeType":"YulFunctionCall","src":"1336:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1324:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1397:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1406:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1409:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1399:6:25"},"nodeType":"YulFunctionCall","src":"1399:12:25"},"nodeType":"YulExpressionStatement","src":"1399:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1383:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1393:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1380:2:25"},"nodeType":"YulFunctionCall","src":"1380:16:25"},"nodeType":"YulIf","src":"1377:36:25"},{"nodeType":"YulVariableDeclaration","src":"1422:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1478:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1489:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1474:3:25"},"nodeType":"YulFunctionCall","src":"1474:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1500:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1448:25:25"},"nodeType":"YulFunctionCall","src":"1448:60:25"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"1426:8:25","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"1436:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1517:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"1527:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1517:6:25"}]},{"nodeType":"YulAssignment","src":"1544:18:25","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"1554:8:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1544:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"789:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"800:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"812:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"820:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"828:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"836:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"844:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"852:6:25","type":""}],"src":"706:862:25"},{"body":{"nodeType":"YulBlock","src":"1642:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"1688:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1697:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1700:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1690:6:25"},"nodeType":"YulFunctionCall","src":"1690:12:25"},"nodeType":"YulExpressionStatement","src":"1690:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1663:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1672:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1659:3:25"},"nodeType":"YulFunctionCall","src":"1659:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1684:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1655:3:25"},"nodeType":"YulFunctionCall","src":"1655:32:25"},"nodeType":"YulIf","src":"1652:52:25"},{"nodeType":"YulAssignment","src":"1713:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1741:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1723:17:25"},"nodeType":"YulFunctionCall","src":"1723:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1713:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""}],"src":"1573:184:25"},{"body":{"nodeType":"YulBlock","src":"1881:523:25","statements":[{"body":{"nodeType":"YulBlock","src":"1927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1929:6:25"},"nodeType":"YulFunctionCall","src":"1929:12:25"},"nodeType":"YulExpressionStatement","src":"1929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1898:3:25"},"nodeType":"YulFunctionCall","src":"1898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1923:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1894:3:25"},"nodeType":"YulFunctionCall","src":"1894:32:25"},"nodeType":"YulIf","src":"1891:52:25"},{"nodeType":"YulAssignment","src":"1952:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1980:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1962:17:25"},"nodeType":"YulFunctionCall","src":"1962:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1952:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1999:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2029:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2040:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2025:3:25"},"nodeType":"YulFunctionCall","src":"2025:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2012:12:25"},"nodeType":"YulFunctionCall","src":"2012:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2003:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2097:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2106:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2109:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2099:6:25"},"nodeType":"YulFunctionCall","src":"2099:12:25"},"nodeType":"YulExpressionStatement","src":"2099:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2066:5:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2087:5:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2080:6:25"},"nodeType":"YulFunctionCall","src":"2080:13:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2073:6:25"},"nodeType":"YulFunctionCall","src":"2073:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2063:2:25"},"nodeType":"YulFunctionCall","src":"2063:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2056:6:25"},"nodeType":"YulFunctionCall","src":"2056:40:25"},"nodeType":"YulIf","src":"2053:60:25"},{"nodeType":"YulAssignment","src":"2122:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"2132:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2122:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2146:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2177:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2188:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2173:3:25"},"nodeType":"YulFunctionCall","src":"2173:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2160:12:25"},"nodeType":"YulFunctionCall","src":"2160:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2150:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2235:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2244:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2247:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2237:6:25"},"nodeType":"YulFunctionCall","src":"2237:12:25"},"nodeType":"YulExpressionStatement","src":"2237:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2207:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2215:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2204:2:25"},"nodeType":"YulFunctionCall","src":"2204:30:25"},"nodeType":"YulIf","src":"2201:50:25"},{"nodeType":"YulVariableDeclaration","src":"2260:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2316:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"2327:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2312:3:25"},"nodeType":"YulFunctionCall","src":"2312:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2336:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2286:25:25"},"nodeType":"YulFunctionCall","src":"2286:58:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2264:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2274:8:25","type":""}]},{"nodeType":"YulAssignment","src":"2353:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2363:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2353:6:25"}]},{"nodeType":"YulAssignment","src":"2380:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2390:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2380:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1823:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1834:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1846:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1854:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1862:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1870:6:25","type":""}],"src":"1762:642:25"},{"body":{"nodeType":"YulBlock","src":"2538:119:25","statements":[{"nodeType":"YulAssignment","src":"2548:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2560:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2571:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2556:3:25"},"nodeType":"YulFunctionCall","src":"2556:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2548:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2590:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2601:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2583:6:25"},"nodeType":"YulFunctionCall","src":"2583:25:25"},"nodeType":"YulExpressionStatement","src":"2583:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2628:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2639:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2624:3:25"},"nodeType":"YulFunctionCall","src":"2624:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"2644:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2617:6:25"},"nodeType":"YulFunctionCall","src":"2617:34:25"},"nodeType":"YulExpressionStatement","src":"2617:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2499:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2529:4:25","type":""}],"src":"2409:248:25"},{"body":{"nodeType":"YulBlock","src":"2793:102:25","statements":[{"nodeType":"YulAssignment","src":"2803:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2815:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2826:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2811:3:25"},"nodeType":"YulFunctionCall","src":"2811:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2803:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2845:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2860:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2876:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2881:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2872:3:25"},"nodeType":"YulFunctionCall","src":"2872:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"2885:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2868:3:25"},"nodeType":"YulFunctionCall","src":"2868:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2856:3:25"},"nodeType":"YulFunctionCall","src":"2856:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2838:6:25"},"nodeType":"YulFunctionCall","src":"2838:51:25"},"nodeType":"YulExpressionStatement","src":"2838:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2762:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2773:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2784:4:25","type":""}],"src":"2662:233:25"},{"body":{"nodeType":"YulBlock","src":"3005:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"3051:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3060:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3063:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3053:6:25"},"nodeType":"YulFunctionCall","src":"3053:12:25"},"nodeType":"YulExpressionStatement","src":"3053:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3026:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3035:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3022:3:25"},"nodeType":"YulFunctionCall","src":"3022:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3047:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3018:3:25"},"nodeType":"YulFunctionCall","src":"3018:32:25"},"nodeType":"YulIf","src":"3015:52:25"},{"nodeType":"YulAssignment","src":"3076:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3104:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3086:17:25"},"nodeType":"YulFunctionCall","src":"3086:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3076:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3123:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3154:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3165:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3150:3:25"},"nodeType":"YulFunctionCall","src":"3150:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3137:12:25"},"nodeType":"YulFunctionCall","src":"3137:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3127:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3212:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3221:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3224:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3214:6:25"},"nodeType":"YulFunctionCall","src":"3214:12:25"},"nodeType":"YulExpressionStatement","src":"3214:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3184:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3192:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3181:2:25"},"nodeType":"YulFunctionCall","src":"3181:30:25"},"nodeType":"YulIf","src":"3178:50:25"},{"nodeType":"YulVariableDeclaration","src":"3237:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3293:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3304:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3289:3:25"},"nodeType":"YulFunctionCall","src":"3289:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3313:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3263:25:25"},"nodeType":"YulFunctionCall","src":"3263:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"3241:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"3251:8:25","type":""}]},{"nodeType":"YulAssignment","src":"3330:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3340:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3330:6:25"}]},{"nodeType":"YulAssignment","src":"3357:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3367:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3357:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2955:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2966:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2978:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2986:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2994:6:25","type":""}],"src":"2900:481:25"},{"body":{"nodeType":"YulBlock","src":"3481:92:25","statements":[{"nodeType":"YulAssignment","src":"3491:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3503:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3514:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3499:3:25"},"nodeType":"YulFunctionCall","src":"3499:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3491:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3533:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3558:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3551:6:25"},"nodeType":"YulFunctionCall","src":"3551:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3544:6:25"},"nodeType":"YulFunctionCall","src":"3544:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3526:6:25"},"nodeType":"YulFunctionCall","src":"3526:41:25"},"nodeType":"YulExpressionStatement","src":"3526:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3450:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3461:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3472:4:25","type":""}],"src":"3386:187:25"},{"body":{"nodeType":"YulBlock","src":"3631:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"3695:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3704:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3707:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3697:6:25"},"nodeType":"YulFunctionCall","src":"3697:12:25"},"nodeType":"YulExpressionStatement","src":"3697:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3654:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3665:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3680:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3685:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3676:3:25"},"nodeType":"YulFunctionCall","src":"3676:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"3689:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3672:3:25"},"nodeType":"YulFunctionCall","src":"3672:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3661:3:25"},"nodeType":"YulFunctionCall","src":"3661:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3651:2:25"},"nodeType":"YulFunctionCall","src":"3651:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3644:6:25"},"nodeType":"YulFunctionCall","src":"3644:50:25"},"nodeType":"YulIf","src":"3641:70:25"}]},"name":"validator_revert_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3620:5:25","type":""}],"src":"3578:139:25"},{"body":{"nodeType":"YulBlock","src":"3754:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3771:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3778:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3783:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3774:3:25"},"nodeType":"YulFunctionCall","src":"3774:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3764:6:25"},"nodeType":"YulFunctionCall","src":"3764:31:25"},"nodeType":"YulExpressionStatement","src":"3764:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3811:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3814:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3804:6:25"},"nodeType":"YulFunctionCall","src":"3804:15:25"},"nodeType":"YulExpressionStatement","src":"3804:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3835:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3838:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3828:6:25"},"nodeType":"YulFunctionCall","src":"3828:15:25"},"nodeType":"YulExpressionStatement","src":"3828:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3722:127:25"},{"body":{"nodeType":"YulBlock","src":"3899:230:25","statements":[{"nodeType":"YulAssignment","src":"3909:19:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3925:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3919:5:25"},"nodeType":"YulFunctionCall","src":"3919:9:25"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3909:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3937:58:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3959:6:25"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"3975:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"3981:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3971:3:25"},"nodeType":"YulFunctionCall","src":"3971:13:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3990:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3986:3:25"},"nodeType":"YulFunctionCall","src":"3986:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3967:3:25"},"nodeType":"YulFunctionCall","src":"3967:27:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3955:3:25"},"nodeType":"YulFunctionCall","src":"3955:40:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3941:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4070:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4072:16:25"},"nodeType":"YulFunctionCall","src":"4072:18:25"},"nodeType":"YulExpressionStatement","src":"4072:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4013:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"4025:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4010:2:25"},"nodeType":"YulFunctionCall","src":"4010:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4049:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4061:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4046:2:25"},"nodeType":"YulFunctionCall","src":"4046:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4007:2:25"},"nodeType":"YulFunctionCall","src":"4007:62:25"},"nodeType":"YulIf","src":"4004:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4108:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4112:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4101:6:25"},"nodeType":"YulFunctionCall","src":"4101:22:25"},"nodeType":"YulExpressionStatement","src":"4101:22:25"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"3879:4:25","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3888:6:25","type":""}],"src":"3854:275:25"},{"body":{"nodeType":"YulBlock","src":"4191:129:25","statements":[{"body":{"nodeType":"YulBlock","src":"4235:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4237:16:25"},"nodeType":"YulFunctionCall","src":"4237:18:25"},"nodeType":"YulExpressionStatement","src":"4237:18:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4207:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4215:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4204:2:25"},"nodeType":"YulFunctionCall","src":"4204:30:25"},"nodeType":"YulIf","src":"4201:56:25"},{"nodeType":"YulAssignment","src":"4266:48:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4286:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4282:3:25"},"nodeType":"YulFunctionCall","src":"4282:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4303:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4299:3:25"},"nodeType":"YulFunctionCall","src":"4299:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4278:3:25"},"nodeType":"YulFunctionCall","src":"4278:29:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4274:3:25"},"nodeType":"YulFunctionCall","src":"4274:40:25"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"4266:4:25"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"4171:6:25","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"4182:4:25","type":""}],"src":"4134:186:25"},{"body":{"nodeType":"YulBlock","src":"4377:410:25","statements":[{"body":{"nodeType":"YulBlock","src":"4426:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4435:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4438:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4428:6:25"},"nodeType":"YulFunctionCall","src":"4428:12:25"},"nodeType":"YulExpressionStatement","src":"4428:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4405:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4413:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4401:3:25"},"nodeType":"YulFunctionCall","src":"4401:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"4420:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4397:3:25"},"nodeType":"YulFunctionCall","src":"4397:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4390:6:25"},"nodeType":"YulFunctionCall","src":"4390:35:25"},"nodeType":"YulIf","src":"4387:55:25"},{"nodeType":"YulVariableDeclaration","src":"4451:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4474:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4461:12:25"},"nodeType":"YulFunctionCall","src":"4461:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4455:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4490:63:25","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4549:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"4521:27:25"},"nodeType":"YulFunctionCall","src":"4521:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4505:15:25"},"nodeType":"YulFunctionCall","src":"4505:48:25"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"4494:7:25","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4569:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4578:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4562:6:25"},"nodeType":"YulFunctionCall","src":"4562:19:25"},"nodeType":"YulExpressionStatement","src":"4562:19:25"},{"body":{"nodeType":"YulBlock","src":"4629:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4638:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4641:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4631:6:25"},"nodeType":"YulFunctionCall","src":"4631:12:25"},"nodeType":"YulExpressionStatement","src":"4631:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4604:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4612:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4600:3:25"},"nodeType":"YulFunctionCall","src":"4600:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"4617:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4596:3:25"},"nodeType":"YulFunctionCall","src":"4596:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"4624:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4593:2:25"},"nodeType":"YulFunctionCall","src":"4593:35:25"},"nodeType":"YulIf","src":"4590:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4671:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"4680:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4667:3:25"},"nodeType":"YulFunctionCall","src":"4667:18:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4691:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4699:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4687:3:25"},"nodeType":"YulFunctionCall","src":"4687:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4706:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4654:12:25"},"nodeType":"YulFunctionCall","src":"4654:55:25"},"nodeType":"YulExpressionStatement","src":"4654:55:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4733:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4742:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4729:3:25"},"nodeType":"YulFunctionCall","src":"4729:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"4747:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4725:3:25"},"nodeType":"YulFunctionCall","src":"4725:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"4754:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4718:6:25"},"nodeType":"YulFunctionCall","src":"4718:38:25"},"nodeType":"YulExpressionStatement","src":"4718:38:25"},{"nodeType":"YulAssignment","src":"4765:16:25","value":{"name":"array_1","nodeType":"YulIdentifier","src":"4774:7:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"4765:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4351:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"4359:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"4367:5:25","type":""}],"src":"4325:462:25"},{"body":{"nodeType":"YulBlock","src":"4929:556:25","statements":[{"body":{"nodeType":"YulBlock","src":"4976:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4985:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4988:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4978:6:25"},"nodeType":"YulFunctionCall","src":"4978:12:25"},"nodeType":"YulExpressionStatement","src":"4978:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4950:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4959:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4946:3:25"},"nodeType":"YulFunctionCall","src":"4946:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4971:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4942:3:25"},"nodeType":"YulFunctionCall","src":"4942:33:25"},"nodeType":"YulIf","src":"4939:53:25"},{"nodeType":"YulAssignment","src":"5001:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5029:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"5011:17:25"},"nodeType":"YulFunctionCall","src":"5011:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5001:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5048:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5078:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5089:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5074:3:25"},"nodeType":"YulFunctionCall","src":"5074:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5061:12:25"},"nodeType":"YulFunctionCall","src":"5061:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5052:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5135:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5102:32:25"},"nodeType":"YulFunctionCall","src":"5102:39:25"},"nodeType":"YulExpressionStatement","src":"5102:39:25"},{"nodeType":"YulAssignment","src":"5150:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5160:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5150:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5174:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5206:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5217:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5202:3:25"},"nodeType":"YulFunctionCall","src":"5202:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5189:12:25"},"nodeType":"YulFunctionCall","src":"5189:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5178:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5263:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5230:32:25"},"nodeType":"YulFunctionCall","src":"5230:41:25"},"nodeType":"YulExpressionStatement","src":"5230:41:25"},{"nodeType":"YulAssignment","src":"5280:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"5290:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5280:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5306:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5337:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5348:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5333:3:25"},"nodeType":"YulFunctionCall","src":"5333:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5320:12:25"},"nodeType":"YulFunctionCall","src":"5320:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5310:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"5395:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5404:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5407:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5397:6:25"},"nodeType":"YulFunctionCall","src":"5397:12:25"},"nodeType":"YulExpressionStatement","src":"5397:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5367:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"5375:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5364:2:25"},"nodeType":"YulFunctionCall","src":"5364:30:25"},"nodeType":"YulIf","src":"5361:50:25"},{"nodeType":"YulAssignment","src":"5420:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5451:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"5462:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5447:3:25"},"nodeType":"YulFunctionCall","src":"5447:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5471:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"5430:16:25"},"nodeType":"YulFunctionCall","src":"5430:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5420:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4871:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4882:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4894:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4902:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4910:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4918:6:25","type":""}],"src":"4792:693:25"},{"body":{"nodeType":"YulBlock","src":"5644:689:25","statements":[{"body":{"nodeType":"YulBlock","src":"5691:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5700:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5703:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5693:6:25"},"nodeType":"YulFunctionCall","src":"5693:12:25"},"nodeType":"YulExpressionStatement","src":"5693:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5665:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5674:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5661:3:25"},"nodeType":"YulFunctionCall","src":"5661:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5686:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5657:3:25"},"nodeType":"YulFunctionCall","src":"5657:33:25"},"nodeType":"YulIf","src":"5654:53:25"},{"nodeType":"YulVariableDeclaration","src":"5716:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5729:12:25"},"nodeType":"YulFunctionCall","src":"5729:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5720:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5794:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5761:32:25"},"nodeType":"YulFunctionCall","src":"5761:39:25"},"nodeType":"YulExpressionStatement","src":"5761:39:25"},{"nodeType":"YulAssignment","src":"5809:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5819:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5809:6:25"}]},{"nodeType":"YulAssignment","src":"5833:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5865:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5876:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5861:3:25"},"nodeType":"YulFunctionCall","src":"5861:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"5843:17:25"},"nodeType":"YulFunctionCall","src":"5843:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5833:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5889:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5921:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5932:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5917:3:25"},"nodeType":"YulFunctionCall","src":"5917:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5904:12:25"},"nodeType":"YulFunctionCall","src":"5904:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5893:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5978:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5945:32:25"},"nodeType":"YulFunctionCall","src":"5945:41:25"},"nodeType":"YulExpressionStatement","src":"5945:41:25"},{"nodeType":"YulAssignment","src":"5995:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6005:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5995:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6021:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6053:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6064:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6049:3:25"},"nodeType":"YulFunctionCall","src":"6049:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6036:12:25"},"nodeType":"YulFunctionCall","src":"6036:32:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"6025:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"6110:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"6077:32:25"},"nodeType":"YulFunctionCall","src":"6077:41:25"},"nodeType":"YulExpressionStatement","src":"6077:41:25"},{"nodeType":"YulAssignment","src":"6127:17:25","value":{"name":"value_2","nodeType":"YulIdentifier","src":"6137:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6127:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6153:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6184:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6195:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6180:3:25"},"nodeType":"YulFunctionCall","src":"6180:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6167:12:25"},"nodeType":"YulFunctionCall","src":"6167:33:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6157:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6243:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6252:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6255:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6245:6:25"},"nodeType":"YulFunctionCall","src":"6245:12:25"},"nodeType":"YulExpressionStatement","src":"6245:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6215:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6212:2:25"},"nodeType":"YulFunctionCall","src":"6212:30:25"},"nodeType":"YulIf","src":"6209:50:25"},{"nodeType":"YulAssignment","src":"6268:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6299:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6310:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6295:3:25"},"nodeType":"YulFunctionCall","src":"6295:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6319:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6278:16:25"},"nodeType":"YulFunctionCall","src":"6278:49:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6268:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5578:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5589:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5601:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5617:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5625:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5633:6:25","type":""}],"src":"5490:843:25"},{"body":{"nodeType":"YulBlock","src":"6461:102:25","statements":[{"nodeType":"YulAssignment","src":"6471:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6483:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6494:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6479:3:25"},"nodeType":"YulFunctionCall","src":"6479:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6471:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6513:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6528:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6544:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6549:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6540:3:25"},"nodeType":"YulFunctionCall","src":"6540:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6553:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6536:3:25"},"nodeType":"YulFunctionCall","src":"6536:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6524:3:25"},"nodeType":"YulFunctionCall","src":"6524:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6506:6:25"},"nodeType":"YulFunctionCall","src":"6506:51:25"},"nodeType":"YulExpressionStatement","src":"6506:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6430:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6441:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6452:4:25","type":""}],"src":"6338:225:25"},{"body":{"nodeType":"YulBlock","src":"6679:353:25","statements":[{"body":{"nodeType":"YulBlock","src":"6725:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6734:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6737:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6727:6:25"},"nodeType":"YulFunctionCall","src":"6727:12:25"},"nodeType":"YulExpressionStatement","src":"6727:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6700:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"6709:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6696:3:25"},"nodeType":"YulFunctionCall","src":"6696:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"6721:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6692:3:25"},"nodeType":"YulFunctionCall","src":"6692:32:25"},"nodeType":"YulIf","src":"6689:52:25"},{"nodeType":"YulAssignment","src":"6750:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6778:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6760:17:25"},"nodeType":"YulFunctionCall","src":"6760:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6750:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6797:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6828:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6839:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6824:3:25"},"nodeType":"YulFunctionCall","src":"6824:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6811:12:25"},"nodeType":"YulFunctionCall","src":"6811:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6801:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6886:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6895:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6898:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6888:6:25"},"nodeType":"YulFunctionCall","src":"6888:12:25"},"nodeType":"YulExpressionStatement","src":"6888:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6858:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6866:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6855:2:25"},"nodeType":"YulFunctionCall","src":"6855:30:25"},"nodeType":"YulIf","src":"6852:50:25"},{"nodeType":"YulAssignment","src":"6911:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6942:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6953:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6938:3:25"},"nodeType":"YulFunctionCall","src":"6938:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6962:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6921:16:25"},"nodeType":"YulFunctionCall","src":"6921:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6911:6:25"}]},{"nodeType":"YulAssignment","src":"6979:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7011:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7022:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"6989:17:25"},"nodeType":"YulFunctionCall","src":"6989:37:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6979:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6629:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6640:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6652:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6660:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6668:6:25","type":""}],"src":"6568:464:25"},{"body":{"nodeType":"YulBlock","src":"7138:76:25","statements":[{"nodeType":"YulAssignment","src":"7148:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7160:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7171:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:25"},"nodeType":"YulFunctionCall","src":"7156:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7148:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7190:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"7201:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7183:6:25"},"nodeType":"YulFunctionCall","src":"7183:25:25"},"nodeType":"YulExpressionStatement","src":"7183:25:25"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7107:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7118:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7129:4:25","type":""}],"src":"7037:177:25"},{"body":{"nodeType":"YulBlock","src":"7272:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"7282:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"7291:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7286:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7351:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7376:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"7381:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7372:3:25"},"nodeType":"YulFunctionCall","src":"7372:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7395:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"7400:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7391:3:25"},"nodeType":"YulFunctionCall","src":"7391:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7385:5:25"},"nodeType":"YulFunctionCall","src":"7385:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7365:6:25"},"nodeType":"YulFunctionCall","src":"7365:39:25"},"nodeType":"YulExpressionStatement","src":"7365:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7312:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"7315:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7309:2:25"},"nodeType":"YulFunctionCall","src":"7309:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7323:19:25","statements":[{"nodeType":"YulAssignment","src":"7325:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7334:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"7337:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7330:3:25"},"nodeType":"YulFunctionCall","src":"7330:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7325:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"7305:3:25","statements":[]},"src":"7301:113:25"},{"body":{"nodeType":"YulBlock","src":"7440:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7453:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"7458:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7449:3:25"},"nodeType":"YulFunctionCall","src":"7449:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"7467:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7442:6:25"},"nodeType":"YulFunctionCall","src":"7442:27:25"},"nodeType":"YulExpressionStatement","src":"7442:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7429:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"7432:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7426:2:25"},"nodeType":"YulFunctionCall","src":"7426:13:25"},"nodeType":"YulIf","src":"7423:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"7250:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"7255:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"7260:6:25","type":""}],"src":"7219:258:25"},{"body":{"nodeType":"YulBlock","src":"7531:208:25","statements":[{"nodeType":"YulVariableDeclaration","src":"7541:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7561:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7555:5:25"},"nodeType":"YulFunctionCall","src":"7555:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7545:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7583:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"7588:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7576:6:25"},"nodeType":"YulFunctionCall","src":"7576:19:25"},"nodeType":"YulExpressionStatement","src":"7576:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7630:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"7637:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7626:3:25"},"nodeType":"YulFunctionCall","src":"7626:16:25"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7648:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"7653:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7644:3:25"},"nodeType":"YulFunctionCall","src":"7644:14:25"},{"name":"length","nodeType":"YulIdentifier","src":"7660:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7604:21:25"},"nodeType":"YulFunctionCall","src":"7604:63:25"},"nodeType":"YulExpressionStatement","src":"7604:63:25"},{"nodeType":"YulAssignment","src":"7676:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7691:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7704:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7712:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7700:3:25"},"nodeType":"YulFunctionCall","src":"7700:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7721:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7717:3:25"},"nodeType":"YulFunctionCall","src":"7717:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7696:3:25"},"nodeType":"YulFunctionCall","src":"7696:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7687:3:25"},"nodeType":"YulFunctionCall","src":"7687:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"7728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7683:3:25"},"nodeType":"YulFunctionCall","src":"7683:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7676:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7508:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7515:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7523:3:25","type":""}],"src":"7482:257:25"},{"body":{"nodeType":"YulBlock","src":"7863:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7880:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7891:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7873:6:25"},"nodeType":"YulFunctionCall","src":"7873:21:25"},"nodeType":"YulExpressionStatement","src":"7873:21:25"},{"nodeType":"YulAssignment","src":"7903:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7928:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7951:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7936:3:25"},"nodeType":"YulFunctionCall","src":"7936:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7911:16:25"},"nodeType":"YulFunctionCall","src":"7911:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7903:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7832:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7843:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7854:4:25","type":""}],"src":"7744:217:25"},{"body":{"nodeType":"YulBlock","src":"8051:171:25","statements":[{"body":{"nodeType":"YulBlock","src":"8097:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8106:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8109:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8099:6:25"},"nodeType":"YulFunctionCall","src":"8099:12:25"},"nodeType":"YulExpressionStatement","src":"8099:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8072:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8081:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8068:3:25"},"nodeType":"YulFunctionCall","src":"8068:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8093:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8064:3:25"},"nodeType":"YulFunctionCall","src":"8064:32:25"},"nodeType":"YulIf","src":"8061:52:25"},{"nodeType":"YulAssignment","src":"8122:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8150:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"8132:17:25"},"nodeType":"YulFunctionCall","src":"8132:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8122:6:25"}]},{"nodeType":"YulAssignment","src":"8169:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8201:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8212:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8197:3:25"},"nodeType":"YulFunctionCall","src":"8197:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"8179:17:25"},"nodeType":"YulFunctionCall","src":"8179:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8169:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8009:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8020:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8032:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8040:6:25","type":""}],"src":"7966:256:25"},{"body":{"nodeType":"YulBlock","src":"8328:76:25","statements":[{"nodeType":"YulAssignment","src":"8338:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8350:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8361:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8346:3:25"},"nodeType":"YulFunctionCall","src":"8346:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8338:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8380:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8391:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8373:6:25"},"nodeType":"YulFunctionCall","src":"8373:25:25"},"nodeType":"YulExpressionStatement","src":"8373:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8297:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8308:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8319:4:25","type":""}],"src":"8227:177:25"},{"body":{"nodeType":"YulBlock","src":"8510:102:25","statements":[{"nodeType":"YulAssignment","src":"8520:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8543:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8528:3:25"},"nodeType":"YulFunctionCall","src":"8528:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8520:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8562:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8577:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8593:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8598:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8589:3:25"},"nodeType":"YulFunctionCall","src":"8589:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"8602:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8585:3:25"},"nodeType":"YulFunctionCall","src":"8585:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8573:3:25"},"nodeType":"YulFunctionCall","src":"8573:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8555:6:25"},"nodeType":"YulFunctionCall","src":"8555:51:25"},"nodeType":"YulExpressionStatement","src":"8555:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8479:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8490:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8501:4:25","type":""}],"src":"8409:203:25"},{"body":{"nodeType":"YulBlock","src":"8744:102:25","statements":[{"nodeType":"YulAssignment","src":"8754:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8777:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8762:3:25"},"nodeType":"YulFunctionCall","src":"8762:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8754:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8796:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8811:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8827:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8832:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8823:3:25"},"nodeType":"YulFunctionCall","src":"8823:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"8836:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8819:3:25"},"nodeType":"YulFunctionCall","src":"8819:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8807:3:25"},"nodeType":"YulFunctionCall","src":"8807:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8789:6:25"},"nodeType":"YulFunctionCall","src":"8789:51:25"},"nodeType":"YulExpressionStatement","src":"8789:51:25"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8713:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8724:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8735:4:25","type":""}],"src":"8617:229:25"},{"body":{"nodeType":"YulBlock","src":"8921:185:25","statements":[{"body":{"nodeType":"YulBlock","src":"8967:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8976:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8979:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8969:6:25"},"nodeType":"YulFunctionCall","src":"8969:12:25"},"nodeType":"YulExpressionStatement","src":"8969:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8938:3:25"},"nodeType":"YulFunctionCall","src":"8938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8963:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8934:3:25"},"nodeType":"YulFunctionCall","src":"8934:32:25"},"nodeType":"YulIf","src":"8931:52:25"},{"nodeType":"YulVariableDeclaration","src":"8992:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9018:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9005:12:25"},"nodeType":"YulFunctionCall","src":"9005:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8996:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9070:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"9037:32:25"},"nodeType":"YulFunctionCall","src":"9037:39:25"},"nodeType":"YulExpressionStatement","src":"9037:39:25"},{"nodeType":"YulAssignment","src":"9085:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"9095:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9085:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8887:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8898:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8910:6:25","type":""}],"src":"8851:255:25"},{"body":{"nodeType":"YulBlock","src":"9249:484:25","statements":[{"body":{"nodeType":"YulBlock","src":"9296:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9305:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9308:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9298:6:25"},"nodeType":"YulFunctionCall","src":"9298:12:25"},"nodeType":"YulExpressionStatement","src":"9298:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9270:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9279:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9266:3:25"},"nodeType":"YulFunctionCall","src":"9266:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9291:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9262:3:25"},"nodeType":"YulFunctionCall","src":"9262:33:25"},"nodeType":"YulIf","src":"9259:53:25"},{"nodeType":"YulAssignment","src":"9321:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9349:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9331:17:25"},"nodeType":"YulFunctionCall","src":"9331:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9321:6:25"}]},{"nodeType":"YulAssignment","src":"9368:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9411:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9396:3:25"},"nodeType":"YulFunctionCall","src":"9396:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9378:17:25"},"nodeType":"YulFunctionCall","src":"9378:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9368:6:25"}]},{"nodeType":"YulAssignment","src":"9424:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9451:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9462:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9447:3:25"},"nodeType":"YulFunctionCall","src":"9447:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9434:12:25"},"nodeType":"YulFunctionCall","src":"9434:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9424:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9475:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9506:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9517:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9502:3:25"},"nodeType":"YulFunctionCall","src":"9502:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9489:12:25"},"nodeType":"YulFunctionCall","src":"9489:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9479:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9564:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9576:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9566:6:25"},"nodeType":"YulFunctionCall","src":"9566:12:25"},"nodeType":"YulExpressionStatement","src":"9566:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9536:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"9544:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9533:2:25"},"nodeType":"YulFunctionCall","src":"9533:30:25"},"nodeType":"YulIf","src":"9530:50:25"},{"nodeType":"YulVariableDeclaration","src":"9589:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9645:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9656:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9641:3:25"},"nodeType":"YulFunctionCall","src":"9641:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9665:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9615:25:25"},"nodeType":"YulFunctionCall","src":"9615:58:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9593:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9603:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9682:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9692:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9682:6:25"}]},{"nodeType":"YulAssignment","src":"9709:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9719:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9709:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9183:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9194:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9206:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9214:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9222:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9230:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9238:6:25","type":""}],"src":"9111:622:25"},{"body":{"nodeType":"YulBlock","src":"9840:222:25","statements":[{"body":{"nodeType":"YulBlock","src":"9886:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9895:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9888:6:25"},"nodeType":"YulFunctionCall","src":"9888:12:25"},"nodeType":"YulExpressionStatement","src":"9888:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9861:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9870:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9857:3:25"},"nodeType":"YulFunctionCall","src":"9857:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9882:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9853:3:25"},"nodeType":"YulFunctionCall","src":"9853:32:25"},"nodeType":"YulIf","src":"9850:52:25"},{"nodeType":"YulAssignment","src":"9911:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9939:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9921:17:25"},"nodeType":"YulFunctionCall","src":"9921:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9911:6:25"}]},{"nodeType":"YulAssignment","src":"9958:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9990:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10001:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9986:3:25"},"nodeType":"YulFunctionCall","src":"9986:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9968:17:25"},"nodeType":"YulFunctionCall","src":"9968:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9958:6:25"}]},{"nodeType":"YulAssignment","src":"10014:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10041:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10052:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10037:3:25"},"nodeType":"YulFunctionCall","src":"10037:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10024:12:25"},"nodeType":"YulFunctionCall","src":"10024:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10014:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9790:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9801:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9813:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9821:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9829:6:25","type":""}],"src":"9738:324:25"},{"body":{"nodeType":"YulBlock","src":"10186:349:25","statements":[{"body":{"nodeType":"YulBlock","src":"10233:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10242:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10245:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10235:6:25"},"nodeType":"YulFunctionCall","src":"10235:12:25"},"nodeType":"YulExpressionStatement","src":"10235:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10207:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10216:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10203:3:25"},"nodeType":"YulFunctionCall","src":"10203:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10228:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10199:3:25"},"nodeType":"YulFunctionCall","src":"10199:33:25"},"nodeType":"YulIf","src":"10196:53:25"},{"nodeType":"YulAssignment","src":"10258:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10286:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10268:17:25"},"nodeType":"YulFunctionCall","src":"10268:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10258:6:25"}]},{"nodeType":"YulAssignment","src":"10305:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10337:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10348:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10333:3:25"},"nodeType":"YulFunctionCall","src":"10333:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10315:17:25"},"nodeType":"YulFunctionCall","src":"10315:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10305:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10361:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10391:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10402:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10387:3:25"},"nodeType":"YulFunctionCall","src":"10387:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10374:12:25"},"nodeType":"YulFunctionCall","src":"10374:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10365:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10448:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"10415:32:25"},"nodeType":"YulFunctionCall","src":"10415:39:25"},"nodeType":"YulExpressionStatement","src":"10415:39:25"},{"nodeType":"YulAssignment","src":"10463:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10473:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10463:6:25"}]},{"nodeType":"YulAssignment","src":"10487:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10514:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10525:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10510:3:25"},"nodeType":"YulFunctionCall","src":"10510:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10497:12:25"},"nodeType":"YulFunctionCall","src":"10497:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10487:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10128:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10139:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10151:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10159:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10167:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10175:6:25","type":""}],"src":"10067:468:25"},{"body":{"nodeType":"YulBlock","src":"10714:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10731:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10742:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10724:6:25"},"nodeType":"YulFunctionCall","src":"10724:21:25"},"nodeType":"YulExpressionStatement","src":"10724:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10776:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10761:3:25"},"nodeType":"YulFunctionCall","src":"10761:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"10781:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10754:6:25"},"nodeType":"YulFunctionCall","src":"10754:30:25"},"nodeType":"YulExpressionStatement","src":"10754:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10804:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10815:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10800:3:25"},"nodeType":"YulFunctionCall","src":"10800:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"10820:32:25","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10793:6:25"},"nodeType":"YulFunctionCall","src":"10793:60:25"},"nodeType":"YulExpressionStatement","src":"10793:60:25"},{"nodeType":"YulAssignment","src":"10862:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10874:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10885:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10870:3:25"},"nodeType":"YulFunctionCall","src":"10870:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10862:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10691:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10705:4:25","type":""}],"src":"10540:354:25"},{"body":{"nodeType":"YulBlock","src":"10954:325:25","statements":[{"nodeType":"YulAssignment","src":"10964:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10978:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"10981:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10974:3:25"},"nodeType":"YulFunctionCall","src":"10974:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10964:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10995:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"11025:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"11031:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11021:3:25"},"nodeType":"YulFunctionCall","src":"11021:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"10999:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11072:31:25","statements":[{"nodeType":"YulAssignment","src":"11074:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11088:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11096:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11084:3:25"},"nodeType":"YulFunctionCall","src":"11084:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"11074:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"11052:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11045:6:25"},"nodeType":"YulFunctionCall","src":"11045:26:25"},"nodeType":"YulIf","src":"11042:61:25"},{"body":{"nodeType":"YulBlock","src":"11162:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11183:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11190:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"11195:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11186:3:25"},"nodeType":"YulFunctionCall","src":"11186:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11176:6:25"},"nodeType":"YulFunctionCall","src":"11176:31:25"},"nodeType":"YulExpressionStatement","src":"11176:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11227:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11230:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11220:6:25"},"nodeType":"YulFunctionCall","src":"11220:15:25"},"nodeType":"YulExpressionStatement","src":"11220:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11255:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11258:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11248:6:25"},"nodeType":"YulFunctionCall","src":"11248:15:25"},"nodeType":"YulExpressionStatement","src":"11248:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"11118:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11141:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11149:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11138:2:25"},"nodeType":"YulFunctionCall","src":"11138:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11115:2:25"},"nodeType":"YulFunctionCall","src":"11115:38:25"},"nodeType":"YulIf","src":"11112:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10934:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10943:6:25","type":""}],"src":"10899:380:25"},{"body":{"nodeType":"YulBlock","src":"11431:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11454:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"11459:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"11467:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11441:12:25"},"nodeType":"YulFunctionCall","src":"11441:33:25"},"nodeType":"YulExpressionStatement","src":"11441:33:25"},{"nodeType":"YulVariableDeclaration","src":"11483:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11497:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"11502:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11493:3:25"},"nodeType":"YulFunctionCall","src":"11493:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11487:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11525:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"11529:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11518:6:25"},"nodeType":"YulFunctionCall","src":"11518:13:25"},"nodeType":"YulExpressionStatement","src":"11518:13:25"},{"nodeType":"YulAssignment","src":"11540:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"11547:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11540:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11399:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11404:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11412:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11423:3:25","type":""}],"src":"11284:271:25"},{"body":{"nodeType":"YulBlock","src":"11734:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11751:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11762:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11744:6:25"},"nodeType":"YulFunctionCall","src":"11744:21:25"},"nodeType":"YulExpressionStatement","src":"11744:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11785:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11796:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11781:3:25"},"nodeType":"YulFunctionCall","src":"11781:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11801:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11774:6:25"},"nodeType":"YulFunctionCall","src":"11774:30:25"},"nodeType":"YulExpressionStatement","src":"11774:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11824:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11835:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11820:3:25"},"nodeType":"YulFunctionCall","src":"11820:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nodeType":"YulLiteral","src":"11840:34:25","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11813:6:25"},"nodeType":"YulFunctionCall","src":"11813:62:25"},"nodeType":"YulExpressionStatement","src":"11813:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11906:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11891:3:25"},"nodeType":"YulFunctionCall","src":"11891:18:25"},{"hexValue":"6e7472616374","kind":"string","nodeType":"YulLiteral","src":"11911:8:25","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11884:6:25"},"nodeType":"YulFunctionCall","src":"11884:36:25"},"nodeType":"YulExpressionStatement","src":"11884:36:25"},{"nodeType":"YulAssignment","src":"11929:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11937:3:25"},"nodeType":"YulFunctionCall","src":"11937:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11929:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11711:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11725:4:25","type":""}],"src":"11560:402:25"},{"body":{"nodeType":"YulBlock","src":"12066:89:25","statements":[{"nodeType":"YulAssignment","src":"12076:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12088:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12099:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12084:3:25"},"nodeType":"YulFunctionCall","src":"12084:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12076:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12118:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12133:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"12141:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12129:3:25"},"nodeType":"YulFunctionCall","src":"12129:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12111:6:25"},"nodeType":"YulFunctionCall","src":"12111:38:25"},"nodeType":"YulExpressionStatement","src":"12111:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12035:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12046:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12057:4:25","type":""}],"src":"11967:188:25"},{"body":{"nodeType":"YulBlock","src":"12209:241:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12226:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12242:2:25","type":"","value":"15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12252:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12246:5:25"},"nodeType":"YulFunctionCall","src":"12246:12:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"12231:10:25"},"nodeType":"YulFunctionCall","src":"12231:28:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12219:6:25"},"nodeType":"YulFunctionCall","src":"12219:41:25"},"nodeType":"YulExpressionStatement","src":"12219:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12280:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12285:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12276:3:25"},"nodeType":"YulFunctionCall","src":"12276:14:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12303:2:25","type":"","value":"15"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12317:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12324:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12313:3:25"},"nodeType":"YulFunctionCall","src":"12313:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12307:5:25"},"nodeType":"YulFunctionCall","src":"12307:23:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"12292:10:25"},"nodeType":"YulFunctionCall","src":"12292:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12269:6:25"},"nodeType":"YulFunctionCall","src":"12269:63:25"},"nodeType":"YulExpressionStatement","src":"12269:63:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12352:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12357:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12348:3:25"},"nodeType":"YulFunctionCall","src":"12348:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12374:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12381:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12370:3:25"},"nodeType":"YulFunctionCall","src":"12370:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12364:5:25"},"nodeType":"YulFunctionCall","src":"12364:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12341:6:25"},"nodeType":"YulFunctionCall","src":"12341:47:25"},"nodeType":"YulExpressionStatement","src":"12341:47:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12408:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12413:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12404:3:25"},"nodeType":"YulFunctionCall","src":"12404:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12430:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12437:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12426:3:25"},"nodeType":"YulFunctionCall","src":"12426:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12420:5:25"},"nodeType":"YulFunctionCall","src":"12420:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12397:6:25"},"nodeType":"YulFunctionCall","src":"12397:47:25"},"nodeType":"YulExpressionStatement","src":"12397:47:25"}]},"name":"abi_encode_struct_Point","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12193:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12200:3:25","type":""}],"src":"12160:290:25"},{"body":{"nodeType":"YulBlock","src":"12628:150:25","statements":[{"nodeType":"YulAssignment","src":"12638:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12650:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12661:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12646:3:25"},"nodeType":"YulFunctionCall","src":"12646:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12638:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12681:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12696:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"12704:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12692:3:25"},"nodeType":"YulFunctionCall","src":"12692:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12674:6:25"},"nodeType":"YulFunctionCall","src":"12674:38:25"},"nodeType":"YulExpressionStatement","src":"12674:38:25"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12745:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12757:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12768:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12753:3:25"},"nodeType":"YulFunctionCall","src":"12753:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"12721:23:25"},"nodeType":"YulFunctionCall","src":"12721:51:25"},"nodeType":"YulExpressionStatement","src":"12721:51:25"}]},"name":"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12589:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12600:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12608:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12619:4:25","type":""}],"src":"12455:323:25"},{"body":{"nodeType":"YulBlock","src":"12849:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12866:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12871:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12859:6:25"},"nodeType":"YulFunctionCall","src":"12859:19:25"},"nodeType":"YulExpressionStatement","src":"12859:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12904:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12909:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12900:3:25"},"nodeType":"YulFunctionCall","src":"12900:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"12916:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"12923:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"12887:12:25"},"nodeType":"YulFunctionCall","src":"12887:43:25"},"nodeType":"YulExpressionStatement","src":"12887:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12954:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12959:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12950:3:25"},"nodeType":"YulFunctionCall","src":"12950:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"12968:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12946:3:25"},"nodeType":"YulFunctionCall","src":"12946:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"12975:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12939:6:25"},"nodeType":"YulFunctionCall","src":"12939:38:25"},"nodeType":"YulExpressionStatement","src":"12939:38:25"},{"nodeType":"YulAssignment","src":"12986:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13001:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13014:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13022:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13010:3:25"},"nodeType":"YulFunctionCall","src":"13010:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13031:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13027:3:25"},"nodeType":"YulFunctionCall","src":"13027:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13006:3:25"},"nodeType":"YulFunctionCall","src":"13006:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12997:3:25"},"nodeType":"YulFunctionCall","src":"12997:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"13038:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12993:3:25"},"nodeType":"YulFunctionCall","src":"12993:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12986:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"12818:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"12825:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12833:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12841:3:25","type":""}],"src":"12783:266:25"},{"body":{"nodeType":"YulBlock","src":"13305:416:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13322:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13337:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13345:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13333:3:25"},"nodeType":"YulFunctionCall","src":"13333:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13315:6:25"},"nodeType":"YulFunctionCall","src":"13315:38:25"},"nodeType":"YulExpressionStatement","src":"13315:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13373:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13384:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13369:3:25"},"nodeType":"YulFunctionCall","src":"13369:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13393:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13409:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13414:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13405:3:25"},"nodeType":"YulFunctionCall","src":"13405:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"13418:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13401:3:25"},"nodeType":"YulFunctionCall","src":"13401:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13389:3:25"},"nodeType":"YulFunctionCall","src":"13389:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13362:6:25"},"nodeType":"YulFunctionCall","src":"13362:60:25"},"nodeType":"YulExpressionStatement","src":"13362:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13442:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13453:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13438:3:25"},"nodeType":"YulFunctionCall","src":"13438:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13458:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13431:6:25"},"nodeType":"YulFunctionCall","src":"13431:31:25"},"nodeType":"YulExpressionStatement","src":"13431:31:25"},{"nodeType":"YulVariableDeclaration","src":"13471:59:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13502:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13514:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13525:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13510:3:25"},"nodeType":"YulFunctionCall","src":"13510:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13485:16:25"},"nodeType":"YulFunctionCall","src":"13485:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"13475:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13550:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13561:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13546:3:25"},"nodeType":"YulFunctionCall","src":"13546:18:25"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13580:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13573:6:25"},"nodeType":"YulFunctionCall","src":"13573:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13566:6:25"},"nodeType":"YulFunctionCall","src":"13566:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13539:6:25"},"nodeType":"YulFunctionCall","src":"13539:50:25"},"nodeType":"YulExpressionStatement","src":"13539:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13609:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13620:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13605:3:25"},"nodeType":"YulFunctionCall","src":"13605:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13630:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13638:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13626:3:25"},"nodeType":"YulFunctionCall","src":"13626:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13598:6:25"},"nodeType":"YulFunctionCall","src":"13598:51:25"},"nodeType":"YulExpressionStatement","src":"13598:51:25"},{"nodeType":"YulAssignment","src":"13658:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"13692:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"13700:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"13708:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13666:25:25"},"nodeType":"YulFunctionCall","src":"13666:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13658:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13234:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13245:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13253:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13261:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13269:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13277:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13285:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13296:4:25","type":""}],"src":"13054:667:25"},{"body":{"nodeType":"YulBlock","src":"13824:147:25","statements":[{"body":{"nodeType":"YulBlock","src":"13870:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13879:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13882:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13872:6:25"},"nodeType":"YulFunctionCall","src":"13872:12:25"},"nodeType":"YulExpressionStatement","src":"13872:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13845:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13854:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13841:3:25"},"nodeType":"YulFunctionCall","src":"13841:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13866:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13837:3:25"},"nodeType":"YulFunctionCall","src":"13837:32:25"},"nodeType":"YulIf","src":"13834:52:25"},{"nodeType":"YulAssignment","src":"13895:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13911:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13905:5:25"},"nodeType":"YulFunctionCall","src":"13905:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13895:6:25"}]},{"nodeType":"YulAssignment","src":"13930:35:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13950:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13961:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13946:3:25"},"nodeType":"YulFunctionCall","src":"13946:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13940:5:25"},"nodeType":"YulFunctionCall","src":"13940:25:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13930:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13782:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13793:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13805:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13813:6:25","type":""}],"src":"13726:245:25"},{"body":{"nodeType":"YulBlock","src":"14057:103:25","statements":[{"body":{"nodeType":"YulBlock","src":"14103:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14112:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14115:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14105:6:25"},"nodeType":"YulFunctionCall","src":"14105:12:25"},"nodeType":"YulExpressionStatement","src":"14105:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14078:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"14087:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14074:3:25"},"nodeType":"YulFunctionCall","src":"14074:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"14099:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14070:3:25"},"nodeType":"YulFunctionCall","src":"14070:32:25"},"nodeType":"YulIf","src":"14067:52:25"},{"nodeType":"YulAssignment","src":"14128:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14144:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14138:5:25"},"nodeType":"YulFunctionCall","src":"14138:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14128:6:25"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14023:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14034:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14046:6:25","type":""}],"src":"13976:184:25"},{"body":{"nodeType":"YulBlock","src":"14224:107:25","statements":[{"nodeType":"YulAssignment","src":"14234:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14249:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14243:5:25"},"nodeType":"YulFunctionCall","src":"14243:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14234:5:25"}]},{"body":{"nodeType":"YulBlock","src":"14309:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14318:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14321:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14311:6:25"},"nodeType":"YulFunctionCall","src":"14311:12:25"},"nodeType":"YulExpressionStatement","src":"14311:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14278:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:2:25","type":"","value":"15"},{"name":"value","nodeType":"YulIdentifier","src":"14300:5:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"14285:10:25"},"nodeType":"YulFunctionCall","src":"14285:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14275:2:25"},"nodeType":"YulFunctionCall","src":"14275:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14268:6:25"},"nodeType":"YulFunctionCall","src":"14268:40:25"},"nodeType":"YulIf","src":"14265:60:25"}]},"name":"abi_decode_int128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"14203:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"14214:5:25","type":""}],"src":"14165:166:25"},{"body":{"nodeType":"YulBlock","src":"14440:561:25","statements":[{"body":{"nodeType":"YulBlock","src":"14487:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14496:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14499:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14489:6:25"},"nodeType":"YulFunctionCall","src":"14489:12:25"},"nodeType":"YulExpressionStatement","src":"14489:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14461:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"14470:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14457:3:25"},"nodeType":"YulFunctionCall","src":"14457:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"14482:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14453:3:25"},"nodeType":"YulFunctionCall","src":"14453:33:25"},"nodeType":"YulIf","src":"14450:53:25"},{"nodeType":"YulVariableDeclaration","src":"14512:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14532:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14526:5:25"},"nodeType":"YulFunctionCall","src":"14526:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"14516:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14544:34:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14566:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14574:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14562:3:25"},"nodeType":"YulFunctionCall","src":"14562:16:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"14548:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14653:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"14655:16:25"},"nodeType":"YulFunctionCall","src":"14655:18:25"},"nodeType":"YulExpressionStatement","src":"14655:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14596:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"14608:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14593:2:25"},"nodeType":"YulFunctionCall","src":"14593:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14632:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"14644:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14629:2:25"},"nodeType":"YulFunctionCall","src":"14629:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"14590:2:25"},"nodeType":"YulFunctionCall","src":"14590:62:25"},"nodeType":"YulIf","src":"14587:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14695:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:22:25"},"nodeType":"YulExpressionStatement","src":"14684:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14722:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14759:9:25"}],"functionName":{"name":"abi_decode_int128_fromMemory","nodeType":"YulIdentifier","src":"14730:28:25"},"nodeType":"YulFunctionCall","src":"14730:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14715:6:25"},"nodeType":"YulFunctionCall","src":"14715:55:25"},"nodeType":"YulExpressionStatement","src":"14715:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14790:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14798:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14786:3:25"},"nodeType":"YulFunctionCall","src":"14786:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14836:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14847:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14832:3:25"},"nodeType":"YulFunctionCall","src":"14832:18:25"}],"functionName":{"name":"abi_decode_int128_fromMemory","nodeType":"YulIdentifier","src":"14803:28:25"},"nodeType":"YulFunctionCall","src":"14803:48:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14779:6:25"},"nodeType":"YulFunctionCall","src":"14779:73:25"},"nodeType":"YulExpressionStatement","src":"14779:73:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14872:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14880:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14868:3:25"},"nodeType":"YulFunctionCall","src":"14868:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14906:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14891:3:25"},"nodeType":"YulFunctionCall","src":"14891:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14885:5:25"},"nodeType":"YulFunctionCall","src":"14885:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14861:6:25"},"nodeType":"YulFunctionCall","src":"14861:50:25"},"nodeType":"YulExpressionStatement","src":"14861:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14931:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14939:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14927:3:25"},"nodeType":"YulFunctionCall","src":"14927:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14954:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14965:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14950:3:25"},"nodeType":"YulFunctionCall","src":"14950:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14944:5:25"},"nodeType":"YulFunctionCall","src":"14944:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14920:6:25"},"nodeType":"YulFunctionCall","src":"14920:50:25"},"nodeType":"YulExpressionStatement","src":"14920:50:25"},{"nodeType":"YulAssignment","src":"14979:16:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"14989:6:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14979:6:25"}]}]},"name":"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14406:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14417:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14429:6:25","type":""}],"src":"14336:665:25"},{"body":{"nodeType":"YulBlock","src":"15161:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15178:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15193:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15201:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15189:3:25"},"nodeType":"YulFunctionCall","src":"15189:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15171:6:25"},"nodeType":"YulFunctionCall","src":"15171:38:25"},"nodeType":"YulExpressionStatement","src":"15171:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15229:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15240:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15225:3:25"},"nodeType":"YulFunctionCall","src":"15225:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15245:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15218:6:25"},"nodeType":"YulFunctionCall","src":"15218:30:25"},"nodeType":"YulExpressionStatement","src":"15218:30:25"},{"nodeType":"YulAssignment","src":"15257:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15291:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15299:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15311:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15322:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15307:3:25"},"nodeType":"YulFunctionCall","src":"15307:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15265:25:25"},"nodeType":"YulFunctionCall","src":"15265:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15257:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15114:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15125:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15133:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15141:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15152:4:25","type":""}],"src":"15006:326:25"},{"body":{"nodeType":"YulBlock","src":"15466:145:25","statements":[{"nodeType":"YulAssignment","src":"15476:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15488:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15499:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15484:3:25"},"nodeType":"YulFunctionCall","src":"15484:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15476:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15518:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15533:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15549:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15554:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15545:3:25"},"nodeType":"YulFunctionCall","src":"15545:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"15558:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15541:3:25"},"nodeType":"YulFunctionCall","src":"15541:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15529:3:25"},"nodeType":"YulFunctionCall","src":"15529:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15511:6:25"},"nodeType":"YulFunctionCall","src":"15511:51:25"},"nodeType":"YulExpressionStatement","src":"15511:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15582:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15593:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15578:3:25"},"nodeType":"YulFunctionCall","src":"15578:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"15598:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15571:6:25"},"nodeType":"YulFunctionCall","src":"15571:34:25"},"nodeType":"YulExpressionStatement","src":"15571:34:25"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15427:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15438:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15446:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15457:4:25","type":""}],"src":"15337:274:25"},{"body":{"nodeType":"YulBlock","src":"15743:158:25","statements":[{"nodeType":"YulAssignment","src":"15753:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15776:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15761:3:25"},"nodeType":"YulFunctionCall","src":"15761:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15753:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15795:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15810:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15826:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15831:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15822:3:25"},"nodeType":"YulFunctionCall","src":"15822:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"15835:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15818:3:25"},"nodeType":"YulFunctionCall","src":"15818:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15806:3:25"},"nodeType":"YulFunctionCall","src":"15806:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15788:6:25"},"nodeType":"YulFunctionCall","src":"15788:51:25"},"nodeType":"YulExpressionStatement","src":"15788:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15859:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15870:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15855:3:25"},"nodeType":"YulFunctionCall","src":"15855:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15879:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15887:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15875:3:25"},"nodeType":"YulFunctionCall","src":"15875:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15848:6:25"},"nodeType":"YulFunctionCall","src":"15848:47:25"},"nodeType":"YulExpressionStatement","src":"15848:47:25"}]},"name":"abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15704:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15715:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15723:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15734:4:25","type":""}],"src":"15616:285:25"},{"body":{"nodeType":"YulBlock","src":"15987:178:25","statements":[{"body":{"nodeType":"YulBlock","src":"16033:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16042:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16045:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16035:6:25"},"nodeType":"YulFunctionCall","src":"16035:12:25"},"nodeType":"YulExpressionStatement","src":"16035:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16008:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"16017:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16004:3:25"},"nodeType":"YulFunctionCall","src":"16004:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"16029:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16000:3:25"},"nodeType":"YulFunctionCall","src":"16000:32:25"},"nodeType":"YulIf","src":"15997:52:25"},{"nodeType":"YulVariableDeclaration","src":"16058:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16077:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16071:5:25"},"nodeType":"YulFunctionCall","src":"16071:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16062:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16129:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"16096:32:25"},"nodeType":"YulFunctionCall","src":"16096:39:25"},"nodeType":"YulExpressionStatement","src":"16096:39:25"},{"nodeType":"YulAssignment","src":"16144:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"16154:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16144:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15953:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15964:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15976:6:25","type":""}],"src":"15906:259:25"},{"body":{"nodeType":"YulBlock","src":"16473:323:25","statements":[{"nodeType":"YulAssignment","src":"16483:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16506:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16491:3:25"},"nodeType":"YulFunctionCall","src":"16491:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16483:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16526:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16541:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16549:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16537:3:25"},"nodeType":"YulFunctionCall","src":"16537:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16519:6:25"},"nodeType":"YulFunctionCall","src":"16519:38:25"},"nodeType":"YulExpressionStatement","src":"16519:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16577:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16588:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16573:3:25"},"nodeType":"YulFunctionCall","src":"16573:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16597:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16613:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16618:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16609:3:25"},"nodeType":"YulFunctionCall","src":"16609:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"16622:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16605:3:25"},"nodeType":"YulFunctionCall","src":"16605:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16593:3:25"},"nodeType":"YulFunctionCall","src":"16593:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16566:6:25"},"nodeType":"YulFunctionCall","src":"16566:60:25"},"nodeType":"YulExpressionStatement","src":"16566:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16646:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16657:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16642:3:25"},"nodeType":"YulFunctionCall","src":"16642:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16662:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16635:6:25"},"nodeType":"YulFunctionCall","src":"16635:34:25"},"nodeType":"YulExpressionStatement","src":"16635:34:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16702:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16714:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16725:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16710:3:25"},"nodeType":"YulFunctionCall","src":"16710:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"16678:23:25"},"nodeType":"YulFunctionCall","src":"16678:51:25"},"nodeType":"YulExpressionStatement","src":"16678:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"16762:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16774:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16785:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16770:3:25"},"nodeType":"YulFunctionCall","src":"16770:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"16738:23:25"},"nodeType":"YulFunctionCall","src":"16738:52:25"},"nodeType":"YulExpressionStatement","src":"16738:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16410:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16421:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16429:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16437:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16445:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16453:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16464:4:25","type":""}],"src":"16170:626:25"},{"body":{"nodeType":"YulBlock","src":"17104:353:25","statements":[{"nodeType":"YulAssignment","src":"17114:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17126:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17137:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17122:3:25"},"nodeType":"YulFunctionCall","src":"17122:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17114:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17157:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17172:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17180:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17168:3:25"},"nodeType":"YulFunctionCall","src":"17168:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17150:6:25"},"nodeType":"YulFunctionCall","src":"17150:38:25"},"nodeType":"YulExpressionStatement","src":"17150:38:25"},{"nodeType":"YulVariableDeclaration","src":"17197:29:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17215:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17220:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17211:3:25"},"nodeType":"YulFunctionCall","src":"17211:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17224:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17207:3:25"},"nodeType":"YulFunctionCall","src":"17207:19:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17201:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17246:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17257:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17242:3:25"},"nodeType":"YulFunctionCall","src":"17242:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17266:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"17274:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17262:3:25"},"nodeType":"YulFunctionCall","src":"17262:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17235:6:25"},"nodeType":"YulFunctionCall","src":"17235:43:25"},"nodeType":"YulExpressionStatement","src":"17235:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17298:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17309:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17294:3:25"},"nodeType":"YulFunctionCall","src":"17294:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17318:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"17326:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17314:3:25"},"nodeType":"YulFunctionCall","src":"17314:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17287:6:25"},"nodeType":"YulFunctionCall","src":"17287:43:25"},"nodeType":"YulExpressionStatement","src":"17287:43:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17363:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17375:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17386:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17371:3:25"},"nodeType":"YulFunctionCall","src":"17371:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17339:23:25"},"nodeType":"YulFunctionCall","src":"17339:51:25"},"nodeType":"YulExpressionStatement","src":"17339:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17423:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17435:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17446:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17431:3:25"},"nodeType":"YulFunctionCall","src":"17431:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17399:23:25"},"nodeType":"YulFunctionCall","src":"17399:52:25"},"nodeType":"YulExpressionStatement","src":"17399:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17041:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17052:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17060:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17068:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17076:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17084:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17095:4:25","type":""}],"src":"16801:656:25"},{"body":{"nodeType":"YulBlock","src":"17771:334:25","statements":[{"nodeType":"YulAssignment","src":"17781:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17804:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17789:3:25"},"nodeType":"YulFunctionCall","src":"17789:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17781:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17824:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17839:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17847:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17835:3:25"},"nodeType":"YulFunctionCall","src":"17835:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17817:6:25"},"nodeType":"YulFunctionCall","src":"17817:38:25"},"nodeType":"YulExpressionStatement","src":"17817:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17886:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17871:3:25"},"nodeType":"YulFunctionCall","src":"17871:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17895:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17911:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17916:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17907:3:25"},"nodeType":"YulFunctionCall","src":"17907:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17920:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17903:3:25"},"nodeType":"YulFunctionCall","src":"17903:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17891:3:25"},"nodeType":"YulFunctionCall","src":"17891:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17864:6:25"},"nodeType":"YulFunctionCall","src":"17864:60:25"},"nodeType":"YulExpressionStatement","src":"17864:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17944:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17955:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17940:3:25"},"nodeType":"YulFunctionCall","src":"17940:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17964:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17972:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17960:3:25"},"nodeType":"YulFunctionCall","src":"17960:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17933:6:25"},"nodeType":"YulFunctionCall","src":"17933:45:25"},"nodeType":"YulExpressionStatement","src":"17933:45:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18011:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18023:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18034:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18019:3:25"},"nodeType":"YulFunctionCall","src":"18019:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17987:23:25"},"nodeType":"YulFunctionCall","src":"17987:51:25"},"nodeType":"YulExpressionStatement","src":"17987:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"18071:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18083:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18094:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18079:3:25"},"nodeType":"YulFunctionCall","src":"18079:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"18047:23:25"},"nodeType":"YulFunctionCall","src":"18047:52:25"},"nodeType":"YulExpressionStatement","src":"18047:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17708:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17719:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17727:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17735:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17743:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17751:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17762:4:25","type":""}],"src":"17462:643:25"},{"body":{"nodeType":"YulBlock","src":"18284:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18301:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18312:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18294:6:25"},"nodeType":"YulFunctionCall","src":"18294:21:25"},"nodeType":"YulExpressionStatement","src":"18294:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18335:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18346:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18331:3:25"},"nodeType":"YulFunctionCall","src":"18331:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18351:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18324:6:25"},"nodeType":"YulFunctionCall","src":"18324:30:25"},"nodeType":"YulExpressionStatement","src":"18324:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18374:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18385:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18370:3:25"},"nodeType":"YulFunctionCall","src":"18370:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nodeType":"YulLiteral","src":"18390:34:25","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18363:6:25"},"nodeType":"YulFunctionCall","src":"18363:62:25"},"nodeType":"YulExpressionStatement","src":"18363:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18445:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18456:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18441:3:25"},"nodeType":"YulFunctionCall","src":"18441:18:25"},{"hexValue":"204c7a417070","kind":"string","nodeType":"YulLiteral","src":"18461:8:25","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18434:6:25"},"nodeType":"YulFunctionCall","src":"18434:36:25"},"nodeType":"YulExpressionStatement","src":"18434:36:25"},{"nodeType":"YulAssignment","src":"18479:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18491:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18502:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18487:3:25"},"nodeType":"YulFunctionCall","src":"18487:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18479:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18261:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18275:4:25","type":""}],"src":"18110:402:25"},{"body":{"nodeType":"YulBlock","src":"18691:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18708:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18719:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18701:6:25"},"nodeType":"YulFunctionCall","src":"18701:21:25"},"nodeType":"YulExpressionStatement","src":"18701:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18738:3:25"},"nodeType":"YulFunctionCall","src":"18738:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18758:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18731:6:25"},"nodeType":"YulFunctionCall","src":"18731:30:25"},"nodeType":"YulExpressionStatement","src":"18731:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18781:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18792:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18777:3:25"},"nodeType":"YulFunctionCall","src":"18777:18:25"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nodeType":"YulLiteral","src":"18797:31:25","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18770:6:25"},"nodeType":"YulFunctionCall","src":"18770:59:25"},"nodeType":"YulExpressionStatement","src":"18770:59:25"},{"nodeType":"YulAssignment","src":"18838:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18850:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18861:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18846:3:25"},"nodeType":"YulFunctionCall","src":"18846:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18838:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18668:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18682:4:25","type":""}],"src":"18517:353:25"},{"body":{"nodeType":"YulBlock","src":"18907:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18924:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18931:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18936:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18927:3:25"},"nodeType":"YulFunctionCall","src":"18927:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18917:6:25"},"nodeType":"YulFunctionCall","src":"18917:31:25"},"nodeType":"YulExpressionStatement","src":"18917:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18964:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18967:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18957:6:25"},"nodeType":"YulFunctionCall","src":"18957:15:25"},"nodeType":"YulExpressionStatement","src":"18957:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18988:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18991:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18981:6:25"},"nodeType":"YulFunctionCall","src":"18981:15:25"},"nodeType":"YulExpressionStatement","src":"18981:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"18875:127:25"},{"body":{"nodeType":"YulBlock","src":"19056:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"19078:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19080:16:25"},"nodeType":"YulFunctionCall","src":"19080:18:25"},"nodeType":"YulExpressionStatement","src":"19080:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19072:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"19075:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19069:2:25"},"nodeType":"YulFunctionCall","src":"19069:8:25"},"nodeType":"YulIf","src":"19066:34:25"},{"nodeType":"YulAssignment","src":"19109:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19121:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"19124:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19117:3:25"},"nodeType":"YulFunctionCall","src":"19117:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19109:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19038:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"19041:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19047:4:25","type":""}],"src":"19007:125:25"},{"body":{"nodeType":"YulBlock","src":"19312:207:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19335:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"19340:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"19348:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"19322:12:25"},"nodeType":"YulFunctionCall","src":"19322:33:25"},"nodeType":"YulExpressionStatement","src":"19322:33:25"},{"nodeType":"YulVariableDeclaration","src":"19364:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19378:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"19383:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19374:3:25"},"nodeType":"YulFunctionCall","src":"19374:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19368:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19406:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"19410:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19399:6:25"},"nodeType":"YulFunctionCall","src":"19399:13:25"},"nodeType":"YulExpressionStatement","src":"19399:13:25"},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19428:2:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19440:2:25","type":"","value":"96"},{"name":"value2","nodeType":"YulIdentifier","src":"19444:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19457:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19453:3:25"},"nodeType":"YulFunctionCall","src":"19453:31:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19432:3:25"},"nodeType":"YulFunctionCall","src":"19432:53:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19421:6:25"},"nodeType":"YulFunctionCall","src":"19421:65:25"},"nodeType":"YulExpressionStatement","src":"19421:65:25"},{"nodeType":"YulAssignment","src":"19495:18:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19506:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"19510:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19502:3:25"},"nodeType":"YulFunctionCall","src":"19502:11:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19495:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19272:3:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19277:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19285:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19293:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19304:3:25","type":""}],"src":"19137:382:25"},{"body":{"nodeType":"YulBlock","src":"19733:289:25","statements":[{"nodeType":"YulVariableDeclaration","src":"19743:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"19753:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19747:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19775:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19790:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"19798:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19786:3:25"},"nodeType":"YulFunctionCall","src":"19786:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19768:6:25"},"nodeType":"YulFunctionCall","src":"19768:34:25"},"nodeType":"YulExpressionStatement","src":"19768:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19822:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19833:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19818:3:25"},"nodeType":"YulFunctionCall","src":"19818:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19842:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"19850:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19838:3:25"},"nodeType":"YulFunctionCall","src":"19838:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19811:6:25"},"nodeType":"YulFunctionCall","src":"19811:43:25"},"nodeType":"YulExpressionStatement","src":"19811:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19874:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19885:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19870:3:25"},"nodeType":"YulFunctionCall","src":"19870:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19890:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19863:6:25"},"nodeType":"YulFunctionCall","src":"19863:34:25"},"nodeType":"YulExpressionStatement","src":"19863:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19917:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19928:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19913:3:25"},"nodeType":"YulFunctionCall","src":"19913:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19933:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19906:6:25"},"nodeType":"YulFunctionCall","src":"19906:31:25"},"nodeType":"YulExpressionStatement","src":"19906:31:25"},{"nodeType":"YulAssignment","src":"19946:70:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19980:6:25"},{"name":"value4","nodeType":"YulIdentifier","src":"19988:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20011:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19996:3:25"},"nodeType":"YulFunctionCall","src":"19996:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19954:25:25"},"nodeType":"YulFunctionCall","src":"19954:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19946:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19670:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19681:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19689:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19697:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19705:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19713:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19724:4:25","type":""}],"src":"19524:498:25"},{"body":{"nodeType":"YulBlock","src":"20201:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20218:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20229:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20211:6:25"},"nodeType":"YulFunctionCall","src":"20211:21:25"},"nodeType":"YulExpressionStatement","src":"20211:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20252:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20263:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20248:3:25"},"nodeType":"YulFunctionCall","src":"20248:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20268:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20241:6:25"},"nodeType":"YulFunctionCall","src":"20241:30:25"},"nodeType":"YulExpressionStatement","src":"20241:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20291:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20302:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20287:3:25"},"nodeType":"YulFunctionCall","src":"20287:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nodeType":"YulLiteral","src":"20307:34:25","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20280:6:25"},"nodeType":"YulFunctionCall","src":"20280:62:25"},"nodeType":"YulExpressionStatement","src":"20280:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20362:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20373:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20358:3:25"},"nodeType":"YulFunctionCall","src":"20358:18:25"},{"hexValue":"616765","kind":"string","nodeType":"YulLiteral","src":"20378:5:25","type":"","value":"age"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20351:6:25"},"nodeType":"YulFunctionCall","src":"20351:33:25"},"nodeType":"YulExpressionStatement","src":"20351:33:25"},{"nodeType":"YulAssignment","src":"20393:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20405:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20416:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20401:3:25"},"nodeType":"YulFunctionCall","src":"20401:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20393:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20178:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20192:4:25","type":""}],"src":"20027:399:25"},{"body":{"nodeType":"YulBlock","src":"20605:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20622:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20633:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20615:6:25"},"nodeType":"YulFunctionCall","src":"20615:21:25"},"nodeType":"YulExpressionStatement","src":"20615:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20656:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20667:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20652:3:25"},"nodeType":"YulFunctionCall","src":"20652:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20672:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20645:6:25"},"nodeType":"YulFunctionCall","src":"20645:30:25"},"nodeType":"YulExpressionStatement","src":"20645:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20695:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20706:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20691:3:25"},"nodeType":"YulFunctionCall","src":"20691:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nodeType":"YulLiteral","src":"20711:34:25","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20684:6:25"},"nodeType":"YulFunctionCall","src":"20684:62:25"},"nodeType":"YulExpressionStatement","src":"20684:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20777:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20762:3:25"},"nodeType":"YulFunctionCall","src":"20762:18:25"},{"hexValue":"64","kind":"string","nodeType":"YulLiteral","src":"20782:3:25","type":"","value":"d"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20755:6:25"},"nodeType":"YulFunctionCall","src":"20755:31:25"},"nodeType":"YulExpressionStatement","src":"20755:31:25"},{"nodeType":"YulAssignment","src":"20795:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20818:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20803:3:25"},"nodeType":"YulFunctionCall","src":"20803:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20795:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20582:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20596:4:25","type":""}],"src":"20431:397:25"},{"body":{"nodeType":"YulBlock","src":"21042:284:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21059:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21074:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21082:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21070:3:25"},"nodeType":"YulFunctionCall","src":"21070:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21052:6:25"},"nodeType":"YulFunctionCall","src":"21052:38:25"},"nodeType":"YulExpressionStatement","src":"21052:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21110:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21121:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21106:3:25"},"nodeType":"YulFunctionCall","src":"21106:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21126:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21099:6:25"},"nodeType":"YulFunctionCall","src":"21099:31:25"},"nodeType":"YulExpressionStatement","src":"21099:31:25"},{"nodeType":"YulAssignment","src":"21139:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21173:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"21181:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21193:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21204:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21189:3:25"},"nodeType":"YulFunctionCall","src":"21189:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"21147:25:25"},"nodeType":"YulFunctionCall","src":"21147:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21139:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21229:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21240:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21225:3:25"},"nodeType":"YulFunctionCall","src":"21225:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"21249:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21257:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21245:3:25"},"nodeType":"YulFunctionCall","src":"21245:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21218:6:25"},"nodeType":"YulFunctionCall","src":"21218:59:25"},"nodeType":"YulExpressionStatement","src":"21218:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21297:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21308:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21293:3:25"},"nodeType":"YulFunctionCall","src":"21293:18:25"},{"name":"value4","nodeType":"YulIdentifier","src":"21313:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21286:6:25"},"nodeType":"YulFunctionCall","src":"21286:34:25"},"nodeType":"YulExpressionStatement","src":"21286:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20979:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"20990:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20998:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21006:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21014:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21022:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21033:4:25","type":""}],"src":"20833:493:25"},{"body":{"nodeType":"YulBlock","src":"21505:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21533:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21515:6:25"},"nodeType":"YulFunctionCall","src":"21515:21:25"},"nodeType":"YulExpressionStatement","src":"21515:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21556:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21567:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21552:3:25"},"nodeType":"YulFunctionCall","src":"21552:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21572:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21545:6:25"},"nodeType":"YulFunctionCall","src":"21545:30:25"},"nodeType":"YulExpressionStatement","src":"21545:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21595:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21606:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21591:3:25"},"nodeType":"YulFunctionCall","src":"21591:18:25"},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","kind":"string","nodeType":"YulLiteral","src":"21611:23:25","type":"","value":"LzApp: invalid minGas"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21584:6:25"},"nodeType":"YulFunctionCall","src":"21584:51:25"},"nodeType":"YulExpressionStatement","src":"21584:51:25"},{"nodeType":"YulAssignment","src":"21644:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21656:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21667:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21652:3:25"},"nodeType":"YulFunctionCall","src":"21652:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21644:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21482:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21496:4:25","type":""}],"src":"21331:345:25"},{"body":{"nodeType":"YulBlock","src":"21834:205:25","statements":[{"nodeType":"YulAssignment","src":"21844:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21867:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21852:3:25"},"nodeType":"YulFunctionCall","src":"21852:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21844:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"21879:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"21889:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21883:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21911:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21926:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"21934:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21922:3:25"},"nodeType":"YulFunctionCall","src":"21922:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21904:6:25"},"nodeType":"YulFunctionCall","src":"21904:34:25"},"nodeType":"YulExpressionStatement","src":"21904:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21958:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21969:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21954:3:25"},"nodeType":"YulFunctionCall","src":"21954:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21978:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"21986:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21974:3:25"},"nodeType":"YulFunctionCall","src":"21974:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21947:6:25"},"nodeType":"YulFunctionCall","src":"21947:43:25"},"nodeType":"YulExpressionStatement","src":"21947:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22010:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22021:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22006:3:25"},"nodeType":"YulFunctionCall","src":"22006:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"22026:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21999:6:25"},"nodeType":"YulFunctionCall","src":"21999:34:25"},"nodeType":"YulExpressionStatement","src":"21999:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21787:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21798:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21806:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21814:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21825:4:25","type":""}],"src":"21681:358:25"},{"body":{"nodeType":"YulBlock","src":"22218:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22235:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22246:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22228:6:25"},"nodeType":"YulFunctionCall","src":"22228:21:25"},"nodeType":"YulExpressionStatement","src":"22228:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22265:3:25"},"nodeType":"YulFunctionCall","src":"22265:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22285:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22258:6:25"},"nodeType":"YulFunctionCall","src":"22258:30:25"},"nodeType":"YulExpressionStatement","src":"22258:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22308:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22319:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22304:3:25"},"nodeType":"YulFunctionCall","src":"22304:18:25"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"22324:34:25","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22297:6:25"},"nodeType":"YulFunctionCall","src":"22297:62:25"},"nodeType":"YulExpressionStatement","src":"22297:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22390:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22375:3:25"},"nodeType":"YulFunctionCall","src":"22375:18:25"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"22395:8:25","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22368:6:25"},"nodeType":"YulFunctionCall","src":"22368:36:25"},"nodeType":"YulExpressionStatement","src":"22368:36:25"},{"nodeType":"YulAssignment","src":"22413:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22436:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22421:3:25"},"nodeType":"YulFunctionCall","src":"22421:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22413:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22195:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22209:4:25","type":""}],"src":"22044:402:25"},{"body":{"nodeType":"YulBlock","src":"22632:275:25","statements":[{"nodeType":"YulAssignment","src":"22642:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22654:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22665:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22650:3:25"},"nodeType":"YulFunctionCall","src":"22650:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22642:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"22678:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"22688:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22682:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22710:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22725:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22733:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22721:3:25"},"nodeType":"YulFunctionCall","src":"22721:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22703:6:25"},"nodeType":"YulFunctionCall","src":"22703:34:25"},"nodeType":"YulExpressionStatement","src":"22703:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22757:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22768:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22753:3:25"},"nodeType":"YulFunctionCall","src":"22753:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22777:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22785:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22773:3:25"},"nodeType":"YulFunctionCall","src":"22773:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22746:6:25"},"nodeType":"YulFunctionCall","src":"22746:43:25"},"nodeType":"YulExpressionStatement","src":"22746:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22809:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22820:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22805:3:25"},"nodeType":"YulFunctionCall","src":"22805:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22829:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22845:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22850:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22841:3:25"},"nodeType":"YulFunctionCall","src":"22841:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22854:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22837:3:25"},"nodeType":"YulFunctionCall","src":"22837:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22825:3:25"},"nodeType":"YulFunctionCall","src":"22825:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22798:6:25"},"nodeType":"YulFunctionCall","src":"22798:60:25"},"nodeType":"YulExpressionStatement","src":"22798:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22878:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22889:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22874:3:25"},"nodeType":"YulFunctionCall","src":"22874:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"22894:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22867:6:25"},"nodeType":"YulFunctionCall","src":"22867:34:25"},"nodeType":"YulExpressionStatement","src":"22867:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22577:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22588:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22596:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22604:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22612:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22623:4:25","type":""}],"src":"22451:456:25"},{"body":{"nodeType":"YulBlock","src":"23002:544:25","statements":[{"body":{"nodeType":"YulBlock","src":"23048:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23057:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23060:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23050:6:25"},"nodeType":"YulFunctionCall","src":"23050:12:25"},"nodeType":"YulExpressionStatement","src":"23050:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"23023:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23032:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23019:3:25"},"nodeType":"YulFunctionCall","src":"23019:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"23044:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23015:3:25"},"nodeType":"YulFunctionCall","src":"23015:32:25"},"nodeType":"YulIf","src":"23012:52:25"},{"nodeType":"YulVariableDeclaration","src":"23073:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23093:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23087:5:25"},"nodeType":"YulFunctionCall","src":"23087:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"23077:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"23146:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23155:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23158:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23148:6:25"},"nodeType":"YulFunctionCall","src":"23148:12:25"},"nodeType":"YulExpressionStatement","src":"23148:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"23118:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23126:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23115:2:25"},"nodeType":"YulFunctionCall","src":"23115:30:25"},"nodeType":"YulIf","src":"23112:50:25"},{"nodeType":"YulVariableDeclaration","src":"23171:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23185:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"23196:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23181:3:25"},"nodeType":"YulFunctionCall","src":"23181:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"23175:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"23251:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23260:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23263:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23253:6:25"},"nodeType":"YulFunctionCall","src":"23253:12:25"},"nodeType":"YulExpressionStatement","src":"23253:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23230:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"23234:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23226:3:25"},"nodeType":"YulFunctionCall","src":"23226:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23241:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23222:3:25"},"nodeType":"YulFunctionCall","src":"23222:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23215:6:25"},"nodeType":"YulFunctionCall","src":"23215:35:25"},"nodeType":"YulIf","src":"23212:55:25"},{"nodeType":"YulVariableDeclaration","src":"23276:19:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23292:2:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23286:5:25"},"nodeType":"YulFunctionCall","src":"23286:9:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"23280:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23304:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"23361:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"23333:27:25"},"nodeType":"YulFunctionCall","src":"23333:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"23317:15:25"},"nodeType":"YulFunctionCall","src":"23317:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"23308:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"23381:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23388:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23374:6:25"},"nodeType":"YulFunctionCall","src":"23374:17:25"},"nodeType":"YulExpressionStatement","src":"23374:17:25"},{"body":{"nodeType":"YulBlock","src":"23437:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23446:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23449:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23439:6:25"},"nodeType":"YulFunctionCall","src":"23439:12:25"},"nodeType":"YulExpressionStatement","src":"23439:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23414:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23418:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"23423:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23406:3:25"},"nodeType":"YulFunctionCall","src":"23406:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23428:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23403:2:25"},"nodeType":"YulFunctionCall","src":"23403:33:25"},"nodeType":"YulIf","src":"23400:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23488:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"23492:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23484:3:25"},"nodeType":"YulFunctionCall","src":"23484:11:25"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"23501:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23508:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23497:3:25"},"nodeType":"YulFunctionCall","src":"23497:14:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23513:2:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"23462:21:25"},"nodeType":"YulFunctionCall","src":"23462:54:25"},"nodeType":"YulExpressionStatement","src":"23462:54:25"},{"nodeType":"YulAssignment","src":"23525:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"23535:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"23525:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22968:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"22979:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"22991:6:25","type":""}],"src":"22912:634:25"},{"body":{"nodeType":"YulBlock","src":"23768:338:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23785:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23800:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23808:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23796:3:25"},"nodeType":"YulFunctionCall","src":"23796:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23778:6:25"},"nodeType":"YulFunctionCall","src":"23778:38:25"},"nodeType":"YulExpressionStatement","src":"23778:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23836:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23847:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23832:3:25"},"nodeType":"YulFunctionCall","src":"23832:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23852:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23825:6:25"},"nodeType":"YulFunctionCall","src":"23825:31:25"},"nodeType":"YulExpressionStatement","src":"23825:31:25"},{"nodeType":"YulVariableDeclaration","src":"23865:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23896:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23908:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23919:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23904:3:25"},"nodeType":"YulFunctionCall","src":"23904:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23879:16:25"},"nodeType":"YulFunctionCall","src":"23879:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"23869:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23944:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23955:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23940:3:25"},"nodeType":"YulFunctionCall","src":"23940:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23964:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23972:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23960:3:25"},"nodeType":"YulFunctionCall","src":"23960:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23933:6:25"},"nodeType":"YulFunctionCall","src":"23933:59:25"},"nodeType":"YulExpressionStatement","src":"23933:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24012:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24023:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24008:3:25"},"nodeType":"YulFunctionCall","src":"24008:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"24032:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24040:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24028:3:25"},"nodeType":"YulFunctionCall","src":"24028:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24001:6:25"},"nodeType":"YulFunctionCall","src":"24001:50:25"},"nodeType":"YulExpressionStatement","src":"24001:50:25"},{"nodeType":"YulAssignment","src":"24060:40:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"24085:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"24093:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24068:16:25"},"nodeType":"YulFunctionCall","src":"24068:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24060:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23713:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23724:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23732:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23740:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23748:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23759:4:25","type":""}],"src":"23551:555:25"},{"body":{"nodeType":"YulBlock","src":"24248:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24258:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24278:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24272:5:25"},"nodeType":"YulFunctionCall","src":"24272:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"24262:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24320:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24328:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24316:3:25"},"nodeType":"YulFunctionCall","src":"24316:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"24335:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"24340:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"24294:21:25"},"nodeType":"YulFunctionCall","src":"24294:53:25"},"nodeType":"YulExpressionStatement","src":"24294:53:25"},{"nodeType":"YulAssignment","src":"24356:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"24367:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"24372:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24363:3:25"},"nodeType":"YulFunctionCall","src":"24363:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"24356:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"24224:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24229:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"24240:3:25","type":""}],"src":"24111:274:25"},{"body":{"nodeType":"YulBlock","src":"24653:453:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24670:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24693:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24681:3:25"},"nodeType":"YulFunctionCall","src":"24681:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24663:6:25"},"nodeType":"YulFunctionCall","src":"24663:38:25"},"nodeType":"YulExpressionStatement","src":"24663:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24721:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24732:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24717:3:25"},"nodeType":"YulFunctionCall","src":"24717:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"24737:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24710:6:25"},"nodeType":"YulFunctionCall","src":"24710:31:25"},"nodeType":"YulExpressionStatement","src":"24710:31:25"},{"nodeType":"YulVariableDeclaration","src":"24750:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24781:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24804:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24789:3:25"},"nodeType":"YulFunctionCall","src":"24789:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24764:16:25"},"nodeType":"YulFunctionCall","src":"24764:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"24754:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24840:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"24849:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24857:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24845:3:25"},"nodeType":"YulFunctionCall","src":"24845:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24818:6:25"},"nodeType":"YulFunctionCall","src":"24818:59:25"},"nodeType":"YulExpressionStatement","src":"24818:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24897:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24908:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24893:3:25"},"nodeType":"YulFunctionCall","src":"24893:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"24917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24913:3:25"},"nodeType":"YulFunctionCall","src":"24913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24886:6:25"},"nodeType":"YulFunctionCall","src":"24886:50:25"},"nodeType":"YulExpressionStatement","src":"24886:50:25"},{"nodeType":"YulVariableDeclaration","src":"24945:46:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"24976:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"24984:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24959:16:25"},"nodeType":"YulFunctionCall","src":"24959:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"24949:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25011:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25022:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25007:3:25"},"nodeType":"YulFunctionCall","src":"25007:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"25032:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25040:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25028:3:25"},"nodeType":"YulFunctionCall","src":"25028:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25000:6:25"},"nodeType":"YulFunctionCall","src":"25000:51:25"},"nodeType":"YulExpressionStatement","src":"25000:51:25"},{"nodeType":"YulAssignment","src":"25060:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25085:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"25093:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25068:16:25"},"nodeType":"YulFunctionCall","src":"25068:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25060:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24590:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"24601:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"24609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"24617:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24625:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24633:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24644:4:25","type":""}],"src":"24390:716:25"},{"body":{"nodeType":"YulBlock","src":"25285:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25302:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25313:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25295:6:25"},"nodeType":"YulFunctionCall","src":"25295:21:25"},"nodeType":"YulExpressionStatement","src":"25295:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25336:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25347:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25332:3:25"},"nodeType":"YulFunctionCall","src":"25332:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25352:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25325:6:25"},"nodeType":"YulFunctionCall","src":"25325:30:25"},"nodeType":"YulExpressionStatement","src":"25325:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25375:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25386:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25371:3:25"},"nodeType":"YulFunctionCall","src":"25371:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"25391:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25364:6:25"},"nodeType":"YulFunctionCall","src":"25364:62:25"},"nodeType":"YulExpressionStatement","src":"25364:62:25"},{"nodeType":"YulAssignment","src":"25435:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25447:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25458:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25443:3:25"},"nodeType":"YulFunctionCall","src":"25443:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25435:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25262:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25276:4:25","type":""}],"src":"25111:356:25"},{"body":{"nodeType":"YulBlock","src":"25518:171:25","statements":[{"body":{"nodeType":"YulBlock","src":"25549:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25570:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25577:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25582:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25573:3:25"},"nodeType":"YulFunctionCall","src":"25573:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25563:6:25"},"nodeType":"YulFunctionCall","src":"25563:31:25"},"nodeType":"YulExpressionStatement","src":"25563:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25614:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25617:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25607:6:25"},"nodeType":"YulFunctionCall","src":"25607:15:25"},"nodeType":"YulExpressionStatement","src":"25607:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25642:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25645:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25635:6:25"},"nodeType":"YulFunctionCall","src":"25635:15:25"},"nodeType":"YulExpressionStatement","src":"25635:15:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25538:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25531:6:25"},"nodeType":"YulFunctionCall","src":"25531:9:25"},"nodeType":"YulIf","src":"25528:132:25"},{"nodeType":"YulAssignment","src":"25669:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25678:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25681:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25674:3:25"},"nodeType":"YulFunctionCall","src":"25674:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"25669:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25503:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25506:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"25512:1:25","type":""}],"src":"25472:217:25"},{"body":{"nodeType":"YulBlock","src":"25746:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"25805:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25807:16:25"},"nodeType":"YulFunctionCall","src":"25807:18:25"},"nodeType":"YulExpressionStatement","src":"25807:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25777:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25770:6:25"},"nodeType":"YulFunctionCall","src":"25770:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25763:6:25"},"nodeType":"YulFunctionCall","src":"25763:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25785:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25796:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"25800:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25788:3:25"},"nodeType":"YulFunctionCall","src":"25788:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25782:2:25"},"nodeType":"YulFunctionCall","src":"25782:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25759:3:25"},"nodeType":"YulFunctionCall","src":"25759:45:25"},"nodeType":"YulIf","src":"25756:71:25"},{"nodeType":"YulAssignment","src":"25836:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25854:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"25847:3:25"},"nodeType":"YulFunctionCall","src":"25847:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"25836:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25725:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25728:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"25734:7:25","type":""}],"src":"25694:168:25"},{"body":{"nodeType":"YulBlock","src":"25915:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"25942:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25944:16:25"},"nodeType":"YulFunctionCall","src":"25944:18:25"},"nodeType":"YulExpressionStatement","src":"25944:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25931:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25938:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25934:3:25"},"nodeType":"YulFunctionCall","src":"25934:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25928:2:25"},"nodeType":"YulFunctionCall","src":"25928:13:25"},"nodeType":"YulIf","src":"25925:39:25"},{"nodeType":"YulAssignment","src":"25973:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25984:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25987:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25980:3:25"},"nodeType":"YulFunctionCall","src":"25980:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"25973:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25898:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25901:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"25907:3:25","type":""}],"src":"25867:128:25"},{"body":{"nodeType":"YulBlock","src":"26174:238:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26191:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26202:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26184:6:25"},"nodeType":"YulFunctionCall","src":"26184:21:25"},"nodeType":"YulExpressionStatement","src":"26184:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26236:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26221:3:25"},"nodeType":"YulFunctionCall","src":"26221:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26241:2:25","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26214:6:25"},"nodeType":"YulFunctionCall","src":"26214:30:25"},"nodeType":"YulExpressionStatement","src":"26214:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26264:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26275:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26260:3:25"},"nodeType":"YulFunctionCall","src":"26260:18:25"},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f7420","kind":"string","nodeType":"YulLiteral","src":"26280:34:25","type":"","value":"LzApp: destination chain is not "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26253:6:25"},"nodeType":"YulFunctionCall","src":"26253:62:25"},"nodeType":"YulExpressionStatement","src":"26253:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26335:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26346:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26331:3:25"},"nodeType":"YulFunctionCall","src":"26331:18:25"},{"hexValue":"61207472757374656420736f75726365","kind":"string","nodeType":"YulLiteral","src":"26351:18:25","type":"","value":"a trusted source"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26324:6:25"},"nodeType":"YulFunctionCall","src":"26324:46:25"},"nodeType":"YulExpressionStatement","src":"26324:46:25"},{"nodeType":"YulAssignment","src":"26379:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26391:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26402:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26387:3:25"},"nodeType":"YulFunctionCall","src":"26387:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26379:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26151:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26165:4:25","type":""}],"src":"26000:412:25"},{"body":{"nodeType":"YulBlock","src":"26726:528:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26743:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26758:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"26766:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26754:3:25"},"nodeType":"YulFunctionCall","src":"26754:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26736:6:25"},"nodeType":"YulFunctionCall","src":"26736:38:25"},"nodeType":"YulExpressionStatement","src":"26736:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26805:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26790:3:25"},"nodeType":"YulFunctionCall","src":"26790:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26810:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26783:6:25"},"nodeType":"YulFunctionCall","src":"26783:31:25"},"nodeType":"YulExpressionStatement","src":"26783:31:25"},{"nodeType":"YulVariableDeclaration","src":"26823:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"26854:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26866:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26877:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26862:3:25"},"nodeType":"YulFunctionCall","src":"26862:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"26837:16:25"},"nodeType":"YulFunctionCall","src":"26837:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"26827:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26902:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26913:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26898:3:25"},"nodeType":"YulFunctionCall","src":"26898:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"26922:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"26930:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26918:3:25"},"nodeType":"YulFunctionCall","src":"26918:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26891:6:25"},"nodeType":"YulFunctionCall","src":"26891:50:25"},"nodeType":"YulExpressionStatement","src":"26891:50:25"},{"nodeType":"YulVariableDeclaration","src":"26950:46:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"26981:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"26989:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"26964:16:25"},"nodeType":"YulFunctionCall","src":"26964:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"26954:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27005:29:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27023:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"27028:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27019:3:25"},"nodeType":"YulFunctionCall","src":"27019:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"27032:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27015:3:25"},"nodeType":"YulFunctionCall","src":"27015:19:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"27009:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27054:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27065:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27050:3:25"},"nodeType":"YulFunctionCall","src":"27050:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"27074:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"27082:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27070:3:25"},"nodeType":"YulFunctionCall","src":"27070:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27043:6:25"},"nodeType":"YulFunctionCall","src":"27043:43:25"},"nodeType":"YulExpressionStatement","src":"27043:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27106:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27117:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27102:3:25"},"nodeType":"YulFunctionCall","src":"27102:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"27127:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"27135:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27123:3:25"},"nodeType":"YulFunctionCall","src":"27123:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27095:6:25"},"nodeType":"YulFunctionCall","src":"27095:44:25"},"nodeType":"YulExpressionStatement","src":"27095:44:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27170:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27155:3:25"},"nodeType":"YulFunctionCall","src":"27155:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"27180:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"27188:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27176:3:25"},"nodeType":"YulFunctionCall","src":"27176:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27148:6:25"},"nodeType":"YulFunctionCall","src":"27148:51:25"},"nodeType":"YulExpressionStatement","src":"27148:51:25"},{"nodeType":"YulAssignment","src":"27208:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"27233:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"27241:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"27216:16:25"},"nodeType":"YulFunctionCall","src":"27216:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27208:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26655:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"26666:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"26674:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"26682:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"26690:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26698:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26706:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26717:4:25","type":""}],"src":"26417:837:25"},{"body":{"nodeType":"YulBlock","src":"27433:229:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27461:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27443:6:25"},"nodeType":"YulFunctionCall","src":"27443:21:25"},"nodeType":"YulExpressionStatement","src":"27443:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27484:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27495:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27480:3:25"},"nodeType":"YulFunctionCall","src":"27480:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"27500:2:25","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27473:6:25"},"nodeType":"YulFunctionCall","src":"27473:30:25"},"nodeType":"YulExpressionStatement","src":"27473:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27523:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27534:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27519:3:25"},"nodeType":"YulFunctionCall","src":"27519:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665","kind":"string","nodeType":"YulLiteral","src":"27539:34:25","type":"","value":"OmniVotingEscrow: cannot receive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27512:6:25"},"nodeType":"YulFunctionCall","src":"27512:62:25"},"nodeType":"YulExpressionStatement","src":"27512:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27594:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27605:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27590:3:25"},"nodeType":"YulFunctionCall","src":"27590:18:25"},{"hexValue":"206c7a4d736773","kind":"string","nodeType":"YulLiteral","src":"27610:9:25","type":"","value":" lzMsgs"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27583:6:25"},"nodeType":"YulFunctionCall","src":"27583:37:25"},"nodeType":"YulExpressionStatement","src":"27583:37:25"},{"nodeType":"YulAssignment","src":"27629:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27641:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27652:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27637:3:25"},"nodeType":"YulFunctionCall","src":"27637:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27629:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27410:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27424:4:25","type":""}],"src":"27259:403:25"},{"body":{"nodeType":"YulBlock","src":"27841:164:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27858:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27869:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27851:6:25"},"nodeType":"YulFunctionCall","src":"27851:21:25"},"nodeType":"YulExpressionStatement","src":"27851:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27888:3:25"},"nodeType":"YulFunctionCall","src":"27888:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"27908:2:25","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27881:6:25"},"nodeType":"YulFunctionCall","src":"27881:30:25"},"nodeType":"YulExpressionStatement","src":"27881:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27931:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27942:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27927:3:25"},"nodeType":"YulFunctionCall","src":"27927:18:25"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"27947:16:25","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27920:6:25"},"nodeType":"YulFunctionCall","src":"27920:44:25"},"nodeType":"YulExpressionStatement","src":"27920:44:25"},{"nodeType":"YulAssignment","src":"27973:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27985:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27996:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27981:3:25"},"nodeType":"YulFunctionCall","src":"27981:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27973:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27818:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27832:4:25","type":""}],"src":"27667:338:25"},{"body":{"nodeType":"YulBlock","src":"28184:167:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28201:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28212:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28194:6:25"},"nodeType":"YulFunctionCall","src":"28194:21:25"},"nodeType":"YulExpressionStatement","src":"28194:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28235:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28246:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28231:3:25"},"nodeType":"YulFunctionCall","src":"28231:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"28251:2:25","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28224:6:25"},"nodeType":"YulFunctionCall","src":"28224:30:25"},"nodeType":"YulExpressionStatement","src":"28224:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28274:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28285:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28270:3:25"},"nodeType":"YulFunctionCall","src":"28270:18:25"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nodeType":"YulLiteral","src":"28290:19:25","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28263:6:25"},"nodeType":"YulFunctionCall","src":"28263:47:25"},"nodeType":"YulExpressionStatement","src":"28263:47:25"},{"nodeType":"YulAssignment","src":"28319:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28331:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28342:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28327:3:25"},"nodeType":"YulFunctionCall","src":"28327:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28319:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28161:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28175:4:25","type":""}],"src":"28010:341:25"}]},"contents":"{\n { }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n value3 := abi_decode_uint64(add(headStart, 64))\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(0, 0) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value1 := value\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function validator_revert_address_payable(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address_payable(value)\n value1 := value\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address_payable(value_1)\n value2 := value_1\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n value1 := abi_decode_uint16(add(headStart, 32))\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address_payable(value_1)\n value2 := value_1\n let value_2 := calldataload(add(headStart, 96))\n validator_revert_address_payable(value_2)\n value3 := value_2\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := abi_decode_uint64(add(headStart, 64))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address_payable(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LzApp: invalid endpoint caller\")\n tail := add(headStart, 96)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LzApp: invalid source sending co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_encode_struct_Point(value, pos)\n {\n mstore(pos, signextend(15, mload(value)))\n mstore(add(pos, 0x20), signextend(15, mload(add(value, 0x20))))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n }\n function abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, and(value0, 0xffff))\n abi_encode_struct_Point(value1, add(headStart, 32))\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), 160)\n let tail_1 := abi_encode_bytes(value2, add(headStart, 160))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_decode_int128_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, signextend(15, value))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 128)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, abi_decode_int128_fromMemory(headStart))\n mstore(add(memPtr, 32), abi_decode_int128_fromMemory(add(headStart, 32)))\n mstore(add(memPtr, 64), mload(add(headStart, 64)))\n mstore(add(memPtr, 96), mload(add(headStart, 96)))\n value0 := memPtr\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffff))\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, 0xff))\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"NonblockingLzApp: caller must be\")\n mstore(add(headStart, 96), \" LzApp\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LzApp: no trusted path record\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n mstore(_1, and(shl(96, value2), not(0xffffffffffffffffffffffff)))\n end := add(_1, 20)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"NonblockingLzApp: no stored mess\")\n mstore(add(headStart, 96), \"age\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"NonblockingLzApp: invalid payloa\")\n mstore(add(headStart, 96), \"d\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), value4)\n }\n function abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"LzApp: invalid minGas\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value3, tail_1)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value3, tail_1)\n mstore(add(headStart, 128), sub(tail_2, headStart))\n tail := abi_encode_bytes(value4, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"LzApp: destination chain is not \")\n mstore(add(headStart, 96), \"a trusted source\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value2, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value5, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"OmniVotingEscrow: cannot receive\")\n mstore(add(headStart, 96), \" lzMsgs\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"slice_overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"slice_outOfBounds\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"446":[{"length":32,"start":1268},{"length":32,"start":1516},{"length":32,"start":2107},{"length":32,"start":2244},{"length":32,"start":2420},{"length":32,"start":3618},{"length":32,"start":5803},{"length":32,"start":6876},{"length":32,"start":7696}],"3722":[{"length":32,"start":811},{"length":32,"start":2770},{"length":32,"start":2934},{"length":32,"start":3065},{"length":32,"start":3180},{"length":32,"start":3333},{"length":32,"start":3755},{"length":32,"start":3910},{"length":32,"start":4056},{"length":32,"start":4169},{"length":32,"start":4333}],"3725":[{"length":32,"start":617},{"length":32,"start":4489}]},"linkReferences":{},"object":"6080604052600436106101b65760003560e01c80637533d788116100ec578063baf3292d1161008a578063df2a5b3b11610064578063df2a5b3b14610569578063eb8d72b714610589578063f2fde38b146105a9578063f5ecbdbc146105c957600080fd5b8063baf3292d14610516578063cbed8b9c14610536578063d1deba1f1461055657600080fd5b8063950c8a74116100c6578063950c8a74146104825780639f38369a146104a2578063a6c3d165146104c2578063b353aaa7146104e257600080fd5b80637533d788146103ff5780638cfd8f5c1461042c5780638da5cb5b1461046457600080fd5b806342d65a8d116101595780635b8c41e6116101335780635b8c41e61461034d57806365d092d0146103aa57806366ad5c8a146103ca578063715018a6146103ea57600080fd5b806342d65a8d146102e65780634a759489146103065780634f2bfe5b1461031957600080fd5b806316334c8f1161019557806316334c8f1461021d578063363bf0de146102575780633d8b38f6146102a3578063416b154a146102d357600080fd5b80621d3567146101bb57806307e0db17146101dd57806310ddb137146101fd575b600080fd5b3480156101c757600080fd5b506101db6101d636600461224e565b6105e9565b005b3480156101e957600080fd5b506101db6101f83660046122e1565b61081a565b34801561020957600080fd5b506101db6102183660046122e1565b6108a3565b34801561022957600080fd5b5061023d6102383660046122fc565b6108fb565b604080519283526020830191909152015b60405180910390f35b34801561026357600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024e565b3480156102af57600080fd5b506102c36102be366004612363565b610a01565b604051901515815260200161024e565b6101db6102e136600461248d565b610ace565b3480156102f257600080fd5b506101db610301366004612363565b610e03565b6101db6103143660046124ff565b610e89565b34801561032557600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b5061039c610368366004612584565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b60405190815260200161024e565b3480156103b657600080fd5b5061023d6103c53660046122fc565b6112a0565b3480156103d657600080fd5b506101db6103e536600461224e565b611303565b3480156103f657600080fd5b506101db6113df565b34801561040b57600080fd5b5061041f61041a3660046122e1565b6113f3565b60405161024e919061263d565b34801561043857600080fd5b5061039c610447366004612650565b600260209081526000928352604080842090915290825290205481565b34801561047057600080fd5b506000546001600160a01b031661028b565b34801561048e57600080fd5b5060035461028b906001600160a01b031681565b3480156104ae57600080fd5b5061041f6104bd3660046122e1565b61148d565b3480156104ce57600080fd5b506101db6104dd366004612363565b61159d565b3480156104ee57600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b506101db610531366004612683565b611630565b34801561054257600080fd5b506101db6105513660046126a0565b61168c565b6101db61056436600461224e565b611721565b34801561057557600080fd5b506101db61058436600461270e565b611926565b34801561059557600080fd5b506101db6105a4366004612363565b6119d8565b3480156105b557600080fd5b506101db6105c4366004612683565b611a32565b3480156105d557600080fd5b5061041f6105e436600461274a565b611aab565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461068490612797565b80601f01602080910402602001604051908101604052809291908181526020018280546106b090612797565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b50505050509050805186869050148015610718575060008151115b801561074057508051602082012060405161073690889088906127d2565b6040518091039020145b61079b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161065d565b6108118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b5c92505050565b50505050505050565b610822611c66565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050505050565b6108ab611c66565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161086e565b6000806000600560029054906101000a900461ffff1660405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525060405160200161094d92919061280e565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906109b3908a90309086908c908c908c9060040161284f565b6040805180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906128a5565b925092505094509492505050565b61ffff831660009081526001602052604081208054829190610a2290612797565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90612797565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b505050505090508383604051610ab29291906127d2565b60405180910390208180519060200120149150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be391906128f4565b9050610bf28160400151611cc0565b15610d7d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906128c9565b60405163d1febfb960e01b8152600481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1febfb9906024016080604051808303816000875af1158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906128f4565b90505b6000600560029054906101000a900461ffff1682604051602001610da292919061280e565b6040516020818303038152906040529050610dc1878288888834611cf1565b7fd76af77f4ffbd9969fdb15b1c1268d40cd4bf1093905e67639f369cb9f44c1728783604051610df292919061280e565b60405180910390a150505050505050565b610e0b611c66565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610e5b90869086908690600401612965565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610811573d6000803e3d6000fd5b60405163010ae75760e01b81526001600160a01b0386811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063010ae757906024016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906128c9565b6040516328d09d4760e01b81526001600160a01b038881166004830152602482018390529192506000917f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906044016080604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb391906128f4565b60405163adc6358960e01b81526001600160a01b0389811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063adc6358990602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128c9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a91906128f4565b6040516317b4eb8760e31b81526001600160a01b038c8116600483015261ffff8c1660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bda75c3890604401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612983565b905060006001600160a01b03821661120c578b61120e565b815b6005546040519192506000916112339161ffff1690849089908b9089906020016129a0565b60405160208183030381529060405290506112528c828d8d8d34611cf1565b7f3689d0fa90a175cc766502dc62c2abdee9ca4b276d4315adf98339a8354755808c8e848a886040516112899594939291906129e6565b60405180910390a150505050505050505050505050565b6005546040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052935190948594859461094d9461ffff9093169386938493909101612a16565b3330146113615760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161065d565b6113d78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611e8c92505050565b505050505050565b6113e7611c66565b6113f16000611ee4565b565b6001602052600090815260409020805461140c90612797565b80601f016020809104026020016040519081016040528092919081815260200182805461143890612797565b80156114855780601f1061145a57610100808354040283529160200191611485565b820191906000526020600020905b81548152906001019060200180831161146857829003601f168201915b505050505081565b61ffff81166000908152600160205260408120805460609291906114b090612797565b80601f01602080910402602001604051908101604052809291908181526020018280546114dc90612797565b80156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b505050505090508051600014156115825760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161065d565b610ac76000601483516115959190612a5d565b839190611f34565b6115a5611c66565b8181306040516020016115ba93929190612a74565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516115ef939192909101906120cb565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161162393929190612965565b60405180910390a1505050565b611638611c66565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b611694611c66565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116e89088908890889088908890600401612a9a565b600060405180830381600087803b15801561170257600080fd5b505af1158015611716573d6000803e3d6000fd5b505050505050505050565b61ffff8616600090815260046020526040808220905161174490889088906127d2565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806117c45760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161065d565b8083836040516117d59291906127d2565b6040518091039020146118345760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161065d565b61ffff8716600090815260046020526040808220905161185790899089906127d2565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526118ef918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611e8c92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051610df2959493929190612ad3565b61192e611c66565b600081116119765760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161065d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611623565b6119e0611c66565b61ffff831660009081526001602052604090206119fe90838361214f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161162393929190612965565b611a3a611c66565b6001600160a01b038116611a9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065d565b611aa881611ee4565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b539190810190612b0e565b95945050505050565b600080611bbf5a60966366ad5c8a60e01b89898989604051602401611b849493929190612b7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612041565b91509150816113d7578280519060200120600460008861ffff1661ffff16815260200190815260200160002086604051611bf99190612bb9565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611c569088908890889088908790612bd5565b60405180910390a1505050505050565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065d565b600042611cd062093a8084612c33565b611cdd9062093a80612c55565b611cea9062093a80612c74565b1092915050565b61ffff861660009081526001602052604081208054611d0f90612797565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3b90612797565b8015611d885780601f10611d5d57610100808354040283529160200191611d88565b820191906000526020600020905b815481529060010190602001808311611d6b57829003601f168201915b50505050509050805160001415611dfa5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161065d565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490611e51908b9086908c908c908c908c90600401612c8c565b6000604051808303818588803b158015611e6a57600080fd5b505af1158015611e7e573d6000803e3d6000fd5b505050505050505050505050565b60405162461bcd60e51b815260206004820152602760248201527f4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665604482015266206c7a4d73677360c81b606482015260840161065d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606081611f4281601f612c74565b1015611f815760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161065d565b611f8b8284612c74565b84511015611fcf5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161065d565b606082158015611fee5760405191506000825260208201604052612038565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561202757805183526020928301920161200f565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115612066576120666123ca565b6040519080825280601f01601f191660200182016040528015612090576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156120b2578692505b828152826000602083013e909890975095505050505050565b8280546120d790612797565b90600052602060002090601f0160209004810192826120f9576000855561213f565b82601f1061211257805160ff191683800117855561213f565b8280016001018555821561213f579182015b8281111561213f578251825591602001919060010190612124565b5061214b9291506121c3565b5090565b82805461215b90612797565b90600052602060002090601f01602090048101928261217d576000855561213f565b82601f106121965782800160ff1982351617855561213f565b8280016001018555821561213f579182015b8281111561213f5782358255916020019190600101906121a8565b5b8082111561214b57600081556001016121c4565b803561ffff811681146121ea57600080fd5b919050565b60008083601f84011261220157600080fd5b5081356001600160401b0381111561221857600080fd5b60208301915083602082850101111561223057600080fd5b9250929050565b80356001600160401b03811681146121ea57600080fd5b6000806000806000806080878903121561226757600080fd5b612270876121d8565b955060208701356001600160401b038082111561228c57600080fd5b6122988a838b016121ef565b90975095508591506122ac60408a01612237565b945060608901359150808211156122c257600080fd5b506122cf89828a016121ef565b979a9699509497509295939492505050565b6000602082840312156122f357600080fd5b610ac7826121d8565b6000806000806060858703121561231257600080fd5b61231b856121d8565b93506020850135801515811461233057600080fd5b925060408501356001600160401b0381111561234b57600080fd5b612357878288016121ef565b95989497509550505050565b60008060006040848603121561237857600080fd5b612381846121d8565b925060208401356001600160401b0381111561239c57600080fd5b6123a8868287016121ef565b9497909650939450505050565b6001600160a01b0381168114611aa857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612408576124086123ca565b604052919050565b60006001600160401b03821115612429576124296123ca565b50601f01601f191660200190565b600082601f83011261244857600080fd5b813561245b61245682612410565b6123e0565b81815284602083860101111561247057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156124a357600080fd5b6124ac856121d8565b935060208501356124bc816123b5565b925060408501356124cc816123b5565b915060608501356001600160401b038111156124e757600080fd5b6124f387828801612437565b91505092959194509250565b600080600080600060a0868803121561251757600080fd5b8535612522816123b5565b9450612530602087016121d8565b93506040860135612540816123b5565b92506060860135612550816123b5565b915060808601356001600160401b0381111561256b57600080fd5b61257788828901612437565b9150509295509295909350565b60008060006060848603121561259957600080fd5b6125a2846121d8565b925060208401356001600160401b038111156125bd57600080fd5b6125c986828701612437565b9250506125d860408501612237565b90509250925092565b60005b838110156125fc5781810151838201526020016125e4565b8381111561260b576000848401525b50505050565b600081518084526126298160208601602086016125e1565b601f01601f19169290920160200192915050565b602081526000610ac76020830184612611565b6000806040838503121561266357600080fd5b61266c836121d8565b915061267a602084016121d8565b90509250929050565b60006020828403121561269557600080fd5b8135610ac7816123b5565b6000806000806000608086880312156126b857600080fd5b6126c1866121d8565b94506126cf602087016121d8565b93506040860135925060608601356001600160401b038111156126f157600080fd5b6126fd888289016121ef565b969995985093965092949392505050565b60008060006060848603121561272357600080fd5b61272c846121d8565b925061273a602085016121d8565b9150604084013590509250925092565b6000806000806080858703121561276057600080fd5b612769856121d8565b9350612777602086016121d8565b92506040850135612787816123b5565b9396929550929360600135925050565b600181811c908216806127ab57607f821691505b602082108114156127cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b61ffff8316815260a08101610ac760208301846127e2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061287d90830187612611565b85151560608401528281036080840152612898818587612826565b9998505050505050505050565b600080604083850312156128b857600080fd5b505080516020909101519092909150565b6000602082840312156128db57600080fd5b5051919050565b8051600f81900b81146121ea57600080fd5b60006080828403121561290657600080fd5b604051608081018181106001600160401b0382111715612928576129286123ca565b604052612934836128e2565b8152612942602084016128e2565b602082015260408301516040820152606083015160608201528091505092915050565b61ffff84168152604060208201526000611b53604083018486612826565b60006020828403121561299557600080fd5b8151610ac7816123b5565b61ffff861681526001600160a01b03851660208201526040810184905261016081016129cf60608301856127e2565b6129dc60e08301846127e2565b9695505050505050565b61ffff861681526001600160a01b0385811660208301528416604082015261016081016129cf60608301856127e2565b61ffff861681526001600160a01b038516602082015260ff8416604082015261016081016129cf60608301856127e2565b634e487b7160e01b600052601160045260246000fd5b600082821015612a6f57612a6f612a47565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152612ac8608083018486612826565b979650505050505050565b61ffff86168152608060208201526000612af1608083018688612826565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215612b2057600080fd5b81516001600160401b03811115612b3657600080fd5b8201601f81018413612b4757600080fd5b8051612b5561245682612410565b818152856020838501011115612b6a57600080fd5b611b538260208301602086016125e1565b61ffff85168152608060208201526000612b986080830186612611565b6001600160401b03851660408401528281036060840152612ac88185612611565b60008251612bcb8184602087016125e1565b9190910192915050565b61ffff8616815260a060208201526000612bf260a0830187612611565b6001600160401b03861660408401528281036060840152612c138186612611565b90508281036080840152612c278185612611565b98975050505050505050565b600082612c5057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612c6f57612c6f612a47565b500290565b60008219821115612c8757612c87612a47565b500190565b61ffff8716815260c060208201526000612ca960c0830188612611565b8281036040840152612cbb8188612611565b6001600160a01b0387811660608601528616608085015283810360a08501529050612898818561261156fea2646970667358221220b85af53a2a319ccabd0aabf707afce404bbc10fcde62f9d2c0840fa8d9e9f31364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBAF3292D GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDF2A5B3B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x589 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x516 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x536 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x482 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x65D092D0 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x4A759489 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x4F2BFE5B EQ PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x16334C8F GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x16334C8F EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x363BF0DE EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x416B154A EQ PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x1FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x8A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0x2BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x248D JUMP JUMPDEST PUSH2 0xACE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x301 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xE03 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x24FF JUMP JUMPDEST PUSH2 0xE89 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x2584 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x12A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1303 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x13DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x263D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x2650 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x28B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x28B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x4BD CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x4DD CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x159D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x531 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x26A0 JUMP JUMPDEST PUSH2 0x168C JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1721 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x584 CALLDATASIZE PUSH1 0x4 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x1926 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x19D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1A32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x5E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x274A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x684 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x718 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x740 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x736 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x79B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x811 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1B5C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x822 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x89C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AB PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x86E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x94D SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP3 MSTORE SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x9B3 SWAP1 DUP11 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x284F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9F3 SWAP2 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xA22 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA4E SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA9B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA9B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA7E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xAB2 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB52 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBE3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP PUSH2 0xBF2 DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x1CC0 JUMP JUMPDEST ISZERO PUSH2 0xD7D JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2C4C5C1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCEC SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD7A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xDC1 DUP8 DUP3 DUP9 DUP9 DUP9 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0xD76AF77F4FFBD9969FDB15B1C1268D40CD4BF1093905E67639F369CB9F44C172 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE0B PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xE5B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x811 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10AE757 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x10AE757 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF1A SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28D09D47 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0x28D09D47 SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xADC63589 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xADC63589 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1043 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C9 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1136 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x115A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x17B4EB87 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xBDA75C38 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11F4 SWAP2 SWAP1 PUSH2 0x2983 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x120C JUMPI DUP12 PUSH2 0x120E JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x1233 SWAP2 PUSH2 0xFFFF AND SWAP1 DUP5 SWAP1 DUP10 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x29A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1252 DUP13 DUP3 DUP14 DUP14 DUP14 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0x3689D0FA90A175CC766502DC62C2ABDEE9CA4B276D4315ADF98339A835475580 DUP13 DUP15 DUP5 DUP11 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1289 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP4 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE DUP6 MLOAD SWAP4 DUP5 ADD DUP7 MSTORE DUP3 DUP5 MSTORE DUP4 DUP3 ADD DUP4 SWAP1 MSTORE DUP4 DUP7 ADD DUP4 SWAP1 MSTORE DUP4 ADD DUP3 SWAP1 MSTORE SWAP4 MLOAD SWAP1 SWAP5 DUP6 SWAP5 DUP6 SWAP5 PUSH2 0x94D SWAP5 PUSH2 0xFFFF SWAP1 SWAP4 AND SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP1 SWAP2 ADD PUSH2 0x2A16 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x13D7 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13E7 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0x13F1 PUSH1 0x0 PUSH2 0x1EE4 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x140C SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1438 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1485 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x145A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1485 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1468 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x14B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x14DC SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1529 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x14FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1529 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x150C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1582 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xAC7 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1595 SWAP2 SWAP1 PUSH2 0x2A5D JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x15A5 PUSH2 0x1C66 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15BA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x15EF SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20CB JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1638 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x1694 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x16E8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2A9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1744 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x17C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x17D5 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1834 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1857 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x18EF SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2AD3 JUMP JUMPDEST PUSH2 0x192E PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1623 JUMP JUMPDEST PUSH2 0x19E0 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FE SWAP1 DUP4 DUP4 PUSH2 0x214F JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH2 0x1A3A PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A9F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1AA8 DUP2 PUSH2 0x1EE4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1B53 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B0E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BBF GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1B84 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2041 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x13D7 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1BF9 SWAP2 SWAP1 PUSH2 0x2BB9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x1C56 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2BD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH2 0x1CD0 PUSH3 0x93A80 DUP5 PUSH2 0x2C33 JUMP JUMPDEST PUSH2 0x1CDD SWAP1 PUSH3 0x93A80 PUSH2 0x2C55 JUMP JUMPDEST PUSH2 0x1CEA SWAP1 PUSH3 0x93A80 PUSH2 0x2C74 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1D0F SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D3B SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D88 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D5D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D88 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D6B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x1E51 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2063616E6E6F742072656365697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x206C7A4D736773 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1F42 DUP2 PUSH1 0x1F PUSH2 0x2C74 JUMP JUMPDEST LT ISZERO PUSH2 0x1F81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1F8B DUP3 DUP5 PUSH2 0x2C74 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1FCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1FEE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2027 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x200F JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2066 JUMPI PUSH2 0x2066 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x20B2 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x20D7 SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x20F9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2112 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2124 JUMP JUMPDEST POP PUSH2 0x214B SWAP3 SWAP2 POP PUSH2 0x21C3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x215B SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x217D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2196 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x214B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21C4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2270 DUP8 PUSH2 0x21D8 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2298 DUP11 DUP4 DUP12 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x22AC PUSH1 0x40 DUP11 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x22C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22CF DUP10 DUP3 DUP11 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC7 DUP3 PUSH2 0x21D8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x231B DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x234B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2357 DUP8 DUP3 DUP9 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2381 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x239C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23A8 DUP7 DUP3 DUP8 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2408 JUMPI PUSH2 0x2408 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2429 JUMPI PUSH2 0x2429 PUSH2 0x23CA JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x245B PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST PUSH2 0x23E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x24A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24AC DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x24BC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x24CC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP8 DUP3 DUP9 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2522 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP5 POP PUSH2 0x2530 PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2540 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0x2550 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x256B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2577 DUP9 DUP3 DUP10 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25A2 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x25BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25C9 DUP7 DUP3 DUP8 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x25D8 PUSH1 0x40 DUP6 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25FC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25E4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x260B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2629 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x266C DUP4 PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH2 0x267A PUSH1 0x20 DUP5 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26C1 DUP7 PUSH2 0x21D8 JUMP JUMPDEST SWAP5 POP PUSH2 0x26CF PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26FD DUP9 DUP3 DUP10 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x272C DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH2 0x273A PUSH1 0x20 DUP6 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2760 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2769 DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2777 PUSH1 0x20 DUP7 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2787 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x27CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x287D SWAP1 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2898 DUP2 DUP6 DUP8 PUSH2 0x2826 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE PUSH2 0x2934 DUP4 PUSH2 0x28E2 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2942 PUSH1 0x20 DUP5 ADD PUSH2 0x28E2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1B53 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0x29DC PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2A6F JUMPI PUSH2 0x2A6F PUSH2 0x2A47 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2AC8 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AF1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2B47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2B55 PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2B6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B53 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B98 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2AC8 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2BCB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x25E1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BF2 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C13 DUP2 DUP7 PUSH2 0x2611 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C27 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2C50 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2C6F JUMPI PUSH2 0x2C6F PUSH2 0x2A47 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2C87 JUMPI PUSH2 0x2C87 PUSH2 0x2A47 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CA9 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x2611 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2CBB DUP2 DUP9 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP7 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2898 DUP2 DUP6 PUSH2 0x2611 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 GAS CREATE2 GASPRICE 0x2A BALANCE SWAP13 0xCA 0xBD EXP 0xAB 0xF7 SMOD 0xAF 0xCE BLOCKHASH 0x4B 0xBC LT 0xFC 0xDE PUSH3 0xF9D2C0 DUP5 0xF 0xA8 0xD9 0xE9 RETURN SGT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"299:4343:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:753:4;;;;;;;;;;-1:-1:-1;1035:753:4;;;;;:::i;:::-;;:::i;:::-;;3834:121;;;;;;;;;;-1:-1:-1;3834:121:4;;;;;:::i;:::-;;:::i;3961:127::-;;;;;;;;;;-1:-1:-1;3961:127:4;;;;;:::i;:::-;;:::i;1891:344:14:-;;;;;;;;;;-1:-1:-1;1891:344:14;;;;;:::i;:::-;;:::i;:::-;;;;2583:25:25;;;2639:2;2624:18;;2617:34;;;;2556:18;1891:344:14;;;;;;;;419:59;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2856:32:25;;;2838:51;;2826:2;2811:18;419:59:14;2662:233:25;5744:247:4;;;;;;;;;;-1:-1:-1;5744:247:4;;;;;:::i;:::-;;:::i;:::-;;;3551:14:25;;3544:22;3526:41;;3514:2;3499:18;5744:247:4;3386:187:25;3333:994:14;;;;;;:::i;:::-;;:::i;4094:176:4:-;;;;;;;;;;-1:-1:-1;4094:176:4;;;;;:::i;:::-;;:::i;2241:1086:14:-;;;;;;:::i;:::-;;:::i;370:43::-;;;;;;;;;;;;;;;617:85:5;;;;;;;;;;-1:-1:-1;617:85:5;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7183:25:25;;;7171:2;7156:18;617:85:5;7037:177:25;1489:396:14;;;;;;;;;;-1:-1:-1;1489:396:14;;;;;:::i;:::-;;:::i;1577:342:5:-;;;;;;;;;;-1:-1:-1;1577:342:5;;;;;:::i;:::-;;:::i;1831:101:9:-;;;;;;;;;;;;;:::i;520:51:4:-;;;;;;;;;;-1:-1:-1;520:51:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;577:65::-;;;;;;;;;;-1:-1:-1;577:65:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:9;;;;;;;;;;-1:-1:-1;1247:7:9;1273:6;-1:-1:-1;;;;;1273:6:9;1201:85;;648:23:4;;;;;;;;;;-1:-1:-1;648:23:4;;;;-1:-1:-1;;;;;648:23:4;;;4898:326;;;;;;;;;;-1:-1:-1;4898:326:4;;;;;:::i;:::-;;:::i;4614:278::-;;;;;;;;;;-1:-1:-1;4614:278:4;;;;;:::i;:::-;;:::i;468:46::-;;;;;;;;;;;;;;;5230:133;;;;;;;;;;-1:-1:-1;5230:133:4;;;;;:::i;:::-;;:::i;3626:202::-;;;;;;;;;;-1:-1:-1;3626:202:4;;;;;:::i;:::-;;:::i;2100:757:5:-;;;;;;:::i;:::-;;:::i;5369:280:4:-;;;;;;;;;;-1:-1:-1;5369:280:4;;;;;:::i;:::-;;:::i;4413:195::-;;;;;;;;;;-1:-1:-1;4413:195:4;;;;;:::i;:::-;;:::i;2081:198:9:-;;;;;;;;;;-1:-1:-1;2081:198:9;;;;;:::i;:::-;;:::i;3358:209:4:-;;;;;;;;;;-1:-1:-1;3358:209:4;;;;;:::i;:::-;;:::i;1035:753::-;719:10:13;1273::4;-1:-1:-1;;;;;1249:35:4;;1241:78;;;;-1:-1:-1;;;1241:78:4;;10742:2:25;1241:78:4;;;10724:21:25;10781:2;10761:18;;;10754:30;10820:32;10800:18;;;10793:60;10870:18;;1241:78:4;;;;;;;;;1359:32;;;1330:26;1359:32;;;:19;:32;;;;;1330:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:13;:20;1541:11;;:18;;:42;:70;;;;;1610:1;1587:13;:20;:24;1541:70;:124;;;;-1:-1:-1;1641:24:4;;;;;;1615:22;;;;1625:11;;;;1615:22;:::i;:::-;;;;;;;;:50;1541:124;1533:175;;;;-1:-1:-1;;;1533:175:4;;11762:2:25;1533:175:4;;;11744:21:25;11801:2;11781:18;;;11774:30;11840:34;11820:18;;;11813:62;-1:-1:-1;;;11891:18:25;;;11884:36;11937:19;;1533:175:4;11560:402:25;1533:175:4;1719:62;1738:11;1751;;1719:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1719:62:4;;;;;;;;;;;;;;;;;;;;;;1764:6;;-1:-1:-1;1719:62:4;-1:-1:-1;1772:8:4;;;;;;1719:62;;1772:8;;;;1719:62;;;;;;;;;-1:-1:-1;1719:18:4;;-1:-1:-1;;;1719:62:4:i;:::-;1166:622;1035:753;;;;;;:::o;3834:121::-;1094:13:9;:11;:13::i;:::-;3913:35:4::1;::::0;-1:-1:-1;;;3913:35:4;;12141:6:25;12129:19;;3913:35:4::1;::::0;::::1;12111:38:25::0;3913:10:4::1;-1:-1:-1::0;;;;;3913:25:4::1;::::0;::::1;::::0;12084:18:25;;3913:35:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3834:121:::0;:::o;3961:127::-;1094:13:9;:11;:13::i;:::-;4043:38:4::1;::::0;-1:-1:-1;;;4043:38:4;;12141:6:25;12129:19;;4043:38:4::1;::::0;::::1;12111::25::0;4043:10:4::1;-1:-1:-1::0;;;;;4043:28:4::1;::::0;::::1;::::0;12084:18:25;;4043:38:4::1;11967:188:25::0;1891:344:14;2010:14;2026:11;2049:22;2085:5;;;;;;;;;;;2092:31;;;;;;;;2112:1;2092:31;;;;;;2115:1;2092:31;;;;;;2118:1;2092:31;;;;2121:1;2092:31;;;2074:50;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2074:50:14;;;;;;;;;;-1:-1:-1;;;2141:87:14;;2074:50;-1:-1:-1;;;;;;2141:10:14;:23;;;;:87;;2165:11;;2186:4;;2074:50;;2204:7;;2213:14;;;;2141:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2134:94;;;;;1891:344;;;;;;;:::o;5744:247:4:-;5885:32;;;5840:4;5885:32;;;:19;:32;;;;;5856:61;;5840:4;;5885:32;5856:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5972:11;;5962:22;;;;;;;:::i;:::-;;;;;;;;5944:13;5934:24;;;;;;:50;5927:57;;;5744:247;;;;;;:::o;3333:994:14:-;3492:21;3516:12;-1:-1:-1;;;;;3516:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3583:44;;-1:-1:-1;;;3583:44:14;;;;;7183:25:25;;;3492:44:14;;-1:-1:-1;3546:34:14;;-1:-1:-1;;;;;3583:12:14;:26;;;;7156:18:25;;3583:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3546:81;;3856:37;3882:7;:10;;;3856:25;:37::i;:::-;3852:248;;;3909:12;-1:-1:-1;;;;;3909:23:14;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4001:12;-1:-1:-1;;;;;4001:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4045:44;;-1:-1:-1;;;4045:44:14;;;;;7183:25:25;;;3982:39:14;;-1:-1:-1;4045:12:14;-1:-1:-1;;;;;4045:26:14;;;;7156:18:25;;4045:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4035:54;;3852:248;4110:22;4146:5;;;;;;;;;;;4153:7;4135:26;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4110:51;;4171:94;4179:11;4192:9;4203:14;4219:18;4239:14;4255:9;4171:7;:94::i;:::-;4280:40;4299:11;4312:7;4280:40;;;;;;;:::i;:::-;;;;;;;;3482:845;;;3333:994;;;;:::o;4094:176:4:-;1094:13:9;:11;:13::i;:::-;4208:55:4::1;::::0;-1:-1:-1;;;4208:55:4;;-1:-1:-1;;;;;4208:10:4::1;:29;::::0;::::1;::::0;:55:::1;::::0;4238:11;;4251;;;;4208:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;2241:1086:14::0;2437:41;;-1:-1:-1;;;2437:41:14;;-1:-1:-1;;;;;2856:32:25;;;2437:41:14;;;2838:51:25;2420:14:14;;2437:12;:29;;;;;;2811:18:25;;2437:41:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2524:54;;-1:-1:-1;;;2524:54:14;;-1:-1:-1;;;;;15529:32:25;;;2524:54:14;;;15511:51:25;15578:18;;;15571:34;;;2420:58:14;;-1:-1:-1;2488:33:14;;2524:12;:31;;;;15484:18:25;;2524:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2606:36;;-1:-1:-1;;;2606:36:14;;-1:-1:-1;;;;;2856:32:25;;;2606:36:14;;;2838:51:25;2488:90:14;;-1:-1:-1;2589:14:14;;2606:12;:24;;;;2811:18:25;;2606:36:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2589:53;;2714:21;2738:12;-1:-1:-1;;;;;2738:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2805:44;;-1:-1:-1;;;2805:44:14;;;;;7183:25:25;;;2714:44:14;;-1:-1:-1;2768:34:14;;-1:-1:-1;;;;;2805:12:14;:26;;;;7156:18:25;;2805:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2886:59;;-1:-1:-1;;;2886:59:14;;-1:-1:-1;;;;;15806:32:25;;;2886:59:14;;;15788:51:25;15887:6;15875:19;;15855:18;;;15848:47;2768:81:14;;-1:-1:-1;2860:23:14;;2886:20;:34;;;;15761:18:25;;2886:59:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2860:85;-1:-1:-1;2955:18:14;-1:-1:-1;;;;;2976:31:14;;:62;;3028:10;2976:62;;;3010:15;2976:62;3085:7;;3074:59;;2955:83;;-1:-1:-1;3049:22:14;;3074:59;;3085:7;;;2955:83;;3106:9;;3117:6;;3125:7;;3074:59;;;:::i;:::-;;;;;;;;;;;;;3049:84;;3143:94;3151:11;3164:9;3175:14;3191:18;3211:14;3227:9;3143:7;:94::i;:::-;3252:68;3267:11;3280:10;3292;3304:6;3312:7;3252:68;;;;;;;;;;:::i;:::-;;;;;;;;2410:917;;;;;;;;2241:1086;;;;;:::o;1489:396::-;1683:7;;1709:31;;;;;;;;;1608:14;1709:31;;;;;;;;;;;;;;;;;;;;;;;1742;;;;;;;;;;;;;;;;;;;;;;;;;;;1672:102;;1608:14;;;;;;1672:102;;1683:7;;;;;1608:14;;;;1742:31;;1672:102;;:::i;1577:342:5:-;719:10:13;1789:4:5;1765:29;1757:80;;;;-1:-1:-1;;;1757:80:5;;18312:2:25;1757:80:5;;;18294:21:25;18351:2;18331:18;;;18324:30;18390:34;18370:18;;;18363:62;-1:-1:-1;;;18441:18:25;;;18434:36;18487:19;;1757:80:5;18110:402:25;1757:80:5;1847:65;1869:11;1882;;1847:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1847:65:5;;;;;;;;;;;;;;;;;;;;;;1895:6;;-1:-1:-1;1847:65:5;-1:-1:-1;1903:8:5;;;;;;1847:65;;1903:8;;;;1847:65;;;;;;;;;-1:-1:-1;1847:21:5;;-1:-1:-1;;;1847:65:5:i;:::-;1577:342;;;;;;:::o;1831:101:9:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;520:51:4:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4898:326::-;5021:35;;;5001:17;5021:35;;;:19;:35;;;;;5001:55;;4977:12;;5001:17;5021:35;5001:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5074:4;:11;5089:1;5074:16;;5066:58;;;;-1:-1:-1;;;5066:58:4;;18719:2:25;5066:58:4;;;18701:21:25;18758:2;18738:18;;;18731:30;18797:31;18777:18;;;18770:59;18846:18;;5066:58:4;18517:353:25;5066:58:4;5141:31;5152:1;5169:2;5155:4;:11;:16;;;;:::i;:::-;5141:4;;:31;:10;:31::i;4614:278::-;1094:13:9;:11;:13::i;:::-;4785:14:4::1;;4809:4;4768:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4768:47:4;;::::1;::::0;;;;;;4730:35:::1;::::0;::::1;;::::0;;;:19:::1;4768:47;4730:35:::0;;;;;;:85;;::::1;::::0;:35;;:85;;::::1;::::0;::::1;:::i;:::-;;4830:55;4854:14;4870;;4830:55;;;;;;;;:::i;:::-;;;;;;;;4614:278:::0;;;:::o;5230:133::-;1094:13:9;:11;:13::i;:::-;5299:8:4::1;:20:::0;;-1:-1:-1;;;;;;5299:20:4::1;-1:-1:-1::0;;;;;5299:20:4;::::1;::::0;;::::1;::::0;;;5334:22:::1;::::0;2838:51:25;;;5334:22:4::1;::::0;2826:2:25;2811:18;5334:22:4::1;;;;;;;5230:133:::0;:::o;3626:202::-;1094:13:9;:11;:13::i;:::-;3759:62:4::1;::::0;-1:-1:-1;;;3759:62:4;;-1:-1:-1;;;;;3759:10:4::1;:20;::::0;::::1;::::0;:62:::1;::::0;3780:8;;3790;;3800:11;;3813:7;;;;3759:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3626:202:::0;;;;;:::o;2100:757:5:-;2309:27;;;2287:19;2309:27;;;:14;:27;;;;;;:40;;;;2337:11;;;;2309:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2309:48:5;;;;;;;;;;;;-1:-1:-1;2309:48:5;2367:73;;;;-1:-1:-1;;;2367:73:5;;20229:2:25;2367:73:5;;;20211:21:25;20268:2;20248:18;;;20241:30;20307:34;20287:18;;;20280:62;-1:-1:-1;;;20358:18:25;;;20351:33;20401:19;;2367:73:5;20027:399:25;2367:73:5;2481:11;2468:8;;2458:19;;;;;;;:::i;:::-;;;;;;;;:34;2450:80;;;;-1:-1:-1;;;2450:80:5;;20633:2:25;2450:80:5;;;20615:21:25;20672:2;20652:18;;;20645:30;20711:34;20691:18;;;20684:62;-1:-1:-1;;;20762:18:25;;;20755:31;20803:19;;2450:80:5;20431:397:25;2450:80:5;2576:27;;;2635:1;2576:27;;;:14;:27;;;;;;:40;;;;2604:11;;;;2576:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2576:48:5;;;;;;;;;;;;:61;;;;2704:65;;;;;;;;;;;;;;;;;;;2726:11;;2739;;2704:65;;;;;;2739:11;2704:65;;2739:11;2704:65;;;;;;;;;-1:-1:-1;;2704:65:5;;;;;;;;;;;;;;;;;;;;;;2752:6;;-1:-1:-1;2704:65:5;-1:-1:-1;2760:8:5;;;;;;2704:65;;2760:8;;;;2704:65;;;;;;;;;-1:-1:-1;2704:21:5;;-1:-1:-1;;;2704:65:5:i;:::-;2784:66;2804:11;2817;;2830:6;2838:11;2784:66;;;;;;;;;;:::i;5369:280:4:-;1094:13:9;:11;:13::i;:::-;5492:1:4::1;5482:7;:11;5474:45;;;::::0;-1:-1:-1;;;5474:45:4;;21533:2:25;5474:45:4::1;::::0;::::1;21515:21:25::0;21572:2;21552:18;;;21545:30;-1:-1:-1;;;21591:18:25;;;21584:51;21652:18;;5474:45:4::1;21331:345:25::0;5474:45:4::1;5529:28;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;;;:51;;;5595:47;;21904:34:25;;;21954:18;;21947:43;;;;22006:18;;;21999:34;;;5595:47:4::1;::::0;21867:2:25;21852:18;5595:47:4::1;21681:358:25::0;4413:195:4;1094:13:9;:11;:13::i;:::-;4510:32:4::1;::::0;::::1;;::::0;;;:19:::1;:32;::::0;;;;:40:::1;::::0;4545:5;;4510:40:::1;:::i;:::-;;4565:36;4582:11;4595:5;;4565:36;;;;;;;;:::i;2081:198:9:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:9;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:9;;22246:2:25;2161:73:9::1;::::0;::::1;22228:21:25::0;22285:2;22265:18;;;22258:30;22324:34;22304:18;;;22297:62;-1:-1:-1;;;22375:18:25;;;22368:36;22421:19;;2161:73:9::1;22044:402:25::0;2161:73:9::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3358:209:4:-;3492:68;;-1:-1:-1;;;3492:68:4;;22688:6:25;22721:15;;;3492:68:4;;;22703:34:25;22773:15;;22753:18;;;22746:43;3541:4:4;22805:18:25;;;22798:60;22874:18;;;22867:34;;;3461:12:4;;3492:10;-1:-1:-1;;;;;3492:20:4;;;;22650:19:25;;3492:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3492:68:4;;;;;;;;;;;;:::i;:::-;3485:75;3358:209;-1:-1:-1;;;;;3358:209:4:o;980:591:5:-;1129:12;1143:19;1166:153;1200:9;1211:3;1239:34;;;1275:11;1288;1301:6;1309:8;1216:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1216:102:5;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:102:5;-1:-1:-1;;;;;;1216:102:5;;;;;;;;;;1174:4;;1166:153;;:33;:153::i;:::-;1128:191;;;;1377:7;1372:193;;1461:8;1451:19;;;;;;1400:14;:27;1415:11;1400:27;;;;;;;;;;;;;;;1428:11;1400:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1400:48:5;;;;;;;;;:70;;;;1489:65;;;;1503:11;;1516;;1441:6;;1537:8;;1547:6;;1489:65;:::i;:::-;;;;;;;;1118:453;;980:591;;;;:::o;1359:130:9:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:9;719:10:13;1422:23:9;1414:68;;;;-1:-1:-1;;;1414:68:9;;25313:2:25;1414:68:9;;;25295:21:25;;;25332:18;;;25325:30;25391:34;25371:18;;;25364:62;25443:18;;1414:68:9;25111:356:25;4333:307:14;4421:4;4618:15;4561:33;4587:7;4561:23;:33;:::i;:::-;4560:45;;4598:7;4560:45;:::i;:::-;:55;;4608:7;4560:55;:::i;:::-;:73;;4333:307;-1:-1:-1;;4333:307:14:o;2072:491:4:-;2294:32;;;2265:26;2294:32;;;:19;:32;;;;;2265:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2344:13;:20;2368:1;2344:25;;2336:86;;;;-1:-1:-1;;;2336:86:4;;26202:2:25;2336:86:4;;;26184:21:25;26241:2;26221:18;;;26214:30;26280:34;26260:18;;;26253:62;-1:-1:-1;;;26331:18:25;;;26324:46;26387:19;;2336:86:4;26000:412:25;2336:86:4;2432:124;;-1:-1:-1;;;2432:124:4;;-1:-1:-1;;;;;2432:10:4;:15;;;;2455:10;;2432:124;;2467:11;;2480:13;;2495:8;;2505:14;;2521:18;;2541:14;;2432:124;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:308;2072:491;;;;;;:::o;1222:261:14:-;1427:49;;-1:-1:-1;;;1427:49:14;;27461:2:25;1427:49:14;;;27443:21:25;27500:2;27480:18;;;27473:30;27539:34;27519:18;;;27512:62;-1:-1:-1;;;27590:18:25;;;27583:37;27637:19;;1427:49:14;27259:403:25;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;8865:2712:7:-;8999:12;9051:7;9035:12;9051:7;9045:2;9035:12;:::i;:::-;:23;;9027:50;;;;-1:-1:-1;;;9027:50:7;;27869:2:25;9027:50:7;;;27851:21:25;27908:2;27888:18;;;27881:30;-1:-1:-1;;;27927:18:25;;;27920:44;27981:18;;9027:50:7;27667:338:25;9027:50:7;9112:16;9121:7;9112:6;:16;:::i;:::-;9095:6;:13;:33;;9087:63;;;;-1:-1:-1;;;9087:63:7;;28212:2:25;9087:63:7;;;28194:21:25;28251:2;28231:18;;;28224:30;-1:-1:-1;;;28270:18:25;;;28263:47;28327:18;;9087:63:7;28010:341:25;9087:63:7;9161:22;9224:15;;9252:1895;;;;11288:4;11282:11;11269:24;;11466:1;11455:9;11448:20;11514:4;11503:9;11499:20;11493:4;11486:34;9217:2317;;9252:1895;9426:4;9420:11;9407:24;;10053:2;10044:7;10040:16;10419:9;10412:17;10406:4;10402:28;10390:9;10379;10375:25;10371:60;10467:7;10463:2;10459:16;10711:6;10697:9;10690:17;10684:4;10680:28;10668:9;10660:6;10656:22;10652:57;10648:70;10493:417;10744:3;10740:2;10737:11;10493:417;;;10882:9;;10871:21;;10785:4;10777:13;;;;10817;10493:417;;;-1:-1:-1;;10928:26:7;;;11128:2;11111:11;-1:-1:-1;;11107:25:7;11101:4;11094:39;-1:-1:-1;9217:2317:7;-1:-1:-1;11561:9:7;8865:2712;-1:-1:-1;;;;8865:2712:7:o;1118:1240:8:-;1275:4;1281:12;1341:15;1366:13;1389:24;1426:8;1416:19;;-1:-1:-1;;;;;1416:19:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1416:19:8;;1389:46;;1904:1;1879;1846:9;1840:16;1812:4;1801:9;1797:20;1767:1;1733:7;1708:4;1690:239;1678:251;;1992:16;1981:27;;2036:8;2027:7;2024:21;2021:76;;;2075:8;2064:19;;2021:76;2178:7;2165:11;2158:28;2294:7;2291:1;2284:4;2271:11;2267:22;2252:50;2329:8;;;;-1:-1:-1;1118:1240:8;-1:-1:-1;;;;;;1118:1240:8:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:159:25;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:347::-;229:8;239:6;293:3;286:4;278:6;274:17;270:27;260:55;;311:1;308;301:12;260:55;-1:-1:-1;334:20:25;;-1:-1:-1;;;;;366:30:25;;363:50;;;409:1;406;399:12;363:50;446:4;438:6;434:17;422:29;;498:3;491:4;482:6;474;470:19;466:30;463:39;460:59;;;515:1;512;505:12;460:59;178:347;;;;;:::o;530:171::-;597:20;;-1:-1:-1;;;;;646:30:25;;636:41;;626:69;;691:1;688;681:12;706:862;812:6;820;828;836;844;852;905:3;893:9;884:7;880:23;876:33;873:53;;;922:1;919;912:12;873:53;945:28;963:9;945:28;:::i;:::-;935:38;;1024:2;1013:9;1009:18;996:32;-1:-1:-1;;;;;1088:2:25;1080:6;1077:14;1074:34;;;1104:1;1101;1094:12;1074:34;1143:58;1193:7;1184:6;1173:9;1169:22;1143:58;:::i;:::-;1220:8;;-1:-1:-1;1117:84:25;-1:-1:-1;1117:84:25;;-1:-1:-1;1274:37:25;1307:2;1292:18;;1274:37;:::i;:::-;1264:47;;1364:2;1353:9;1349:18;1336:32;1320:48;;1393:2;1383:8;1380:16;1377:36;;;1409:1;1406;1399:12;1377:36;;1448:60;1500:7;1489:8;1478:9;1474:24;1448:60;:::i;:::-;706:862;;;;-1:-1:-1;706:862:25;;-1:-1:-1;706:862:25;;1527:8;;706:862;-1:-1:-1;;;706:862:25:o;1573:184::-;1631:6;1684:2;1672:9;1663:7;1659:23;1655:32;1652:52;;;1700:1;1697;1690:12;1652:52;1723:28;1741:9;1723:28;:::i;1762:642::-;1846:6;1854;1862;1870;1923:2;1911:9;1902:7;1898:23;1894:32;1891:52;;;1939:1;1936;1929:12;1891:52;1962:28;1980:9;1962:28;:::i;:::-;1952:38;;2040:2;2029:9;2025:18;2012:32;2087:5;2080:13;2073:21;2066:5;2063:32;2053:60;;2109:1;2106;2099:12;2053:60;2132:5;-1:-1:-1;2188:2:25;2173:18;;2160:32;-1:-1:-1;;;;;2204:30:25;;2201:50;;;2247:1;2244;2237:12;2201:50;2286:58;2336:7;2327:6;2316:9;2312:22;2286:58;:::i;:::-;1762:642;;;;-1:-1:-1;2363:8:25;-1:-1:-1;;;;1762:642:25:o;2900:481::-;2978:6;2986;2994;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3086:28;3104:9;3086:28;:::i;:::-;3076:38;;3165:2;3154:9;3150:18;3137:32;-1:-1:-1;;;;;3184:6:25;3181:30;3178:50;;;3224:1;3221;3214:12;3178:50;3263:58;3313:7;3304:6;3293:9;3289:22;3263:58;:::i;:::-;2900:481;;3340:8;;-1:-1:-1;3237:84:25;;-1:-1:-1;;;;2900:481:25:o;3578:139::-;-1:-1:-1;;;;;3661:31:25;;3651:42;;3641:70;;3707:1;3704;3697:12;3722:127;3783:10;3778:3;3774:20;3771:1;3764:31;3814:4;3811:1;3804:15;3838:4;3835:1;3828:15;3854:275;3925:2;3919:9;3990:2;3971:13;;-1:-1:-1;;3967:27:25;3955:40;;-1:-1:-1;;;;;4010:34:25;;4046:22;;;4007:62;4004:88;;;4072:18;;:::i;:::-;4108:2;4101:22;3854:275;;-1:-1:-1;3854:275:25:o;4134:186::-;4182:4;-1:-1:-1;;;;;4207:6:25;4204:30;4201:56;;;4237:18;;:::i;:::-;-1:-1:-1;4303:2:25;4282:15;-1:-1:-1;;4278:29:25;4309:4;4274:40;;4134:186::o;4325:462::-;4367:5;4420:3;4413:4;4405:6;4401:17;4397:27;4387:55;;4438:1;4435;4428:12;4387:55;4474:6;4461:20;4505:48;4521:31;4549:2;4521:31;:::i;:::-;4505:48;:::i;:::-;4578:2;4569:7;4562:19;4624:3;4617:4;4612:2;4604:6;4600:15;4596:26;4593:35;4590:55;;;4641:1;4638;4631:12;4590:55;4706:2;4699:4;4691:6;4687:17;4680:4;4671:7;4667:18;4654:55;4754:1;4729:16;;;4747:4;4725:27;4718:38;;;;4733:7;4325:462;-1:-1:-1;;;4325:462:25:o;4792:693::-;4894:6;4902;4910;4918;4971:3;4959:9;4950:7;4946:23;4942:33;4939:53;;;4988:1;4985;4978:12;4939:53;5011:28;5029:9;5011:28;:::i;:::-;5001:38;;5089:2;5078:9;5074:18;5061:32;5102:39;5135:5;5102:39;:::i;:::-;5160:5;-1:-1:-1;5217:2:25;5202:18;;5189:32;5230:41;5189:32;5230:41;:::i;:::-;5290:7;-1:-1:-1;5348:2:25;5333:18;;5320:32;-1:-1:-1;;;;;5364:30:25;;5361:50;;;5407:1;5404;5397:12;5361:50;5430:49;5471:7;5462:6;5451:9;5447:22;5430:49;:::i;:::-;5420:59;;;4792:693;;;;;;;:::o;5490:843::-;5601:6;5609;5617;5625;5633;5686:3;5674:9;5665:7;5661:23;5657:33;5654:53;;;5703:1;5700;5693:12;5654:53;5742:9;5729:23;5761:39;5794:5;5761:39;:::i;:::-;5819:5;-1:-1:-1;5843:37:25;5876:2;5861:18;;5843:37;:::i;:::-;5833:47;;5932:2;5921:9;5917:18;5904:32;5945:41;5978:7;5945:41;:::i;:::-;6005:7;-1:-1:-1;6064:2:25;6049:18;;6036:32;6077:41;6036:32;6077:41;:::i;:::-;6137:7;-1:-1:-1;6195:3:25;6180:19;;6167:33;-1:-1:-1;;;;;6212:30:25;;6209:50;;;6255:1;6252;6245:12;6209:50;6278:49;6319:7;6310:6;6299:9;6295:22;6278:49;:::i;:::-;6268:59;;;5490:843;;;;;;;;:::o;6568:464::-;6652:6;6660;6668;6721:2;6709:9;6700:7;6696:23;6692:32;6689:52;;;6737:1;6734;6727:12;6689:52;6760:28;6778:9;6760:28;:::i;:::-;6750:38;;6839:2;6828:9;6824:18;6811:32;-1:-1:-1;;;;;6858:6:25;6855:30;6852:50;;;6898:1;6895;6888:12;6852:50;6921:49;6962:7;6953:6;6942:9;6938:22;6921:49;:::i;:::-;6911:59;;;6989:37;7022:2;7011:9;7007:18;6989:37;:::i;:::-;6979:47;;6568:464;;;;;:::o;7219:258::-;7291:1;7301:113;7315:6;7312:1;7309:13;7301:113;;;7391:11;;;7385:18;7372:11;;;7365:39;7337:2;7330:10;7301:113;;;7432:6;7429:1;7426:13;7423:48;;;7467:1;7458:6;7453:3;7449:16;7442:27;7423:48;;7219:258;;;:::o;7482:257::-;7523:3;7561:5;7555:12;7588:6;7583:3;7576:19;7604:63;7660:6;7653:4;7648:3;7644:14;7637:4;7630:5;7626:16;7604:63;:::i;:::-;7721:2;7700:15;-1:-1:-1;;7696:29:25;7687:39;;;;7728:4;7683:50;;7482:257;-1:-1:-1;;7482:257:25:o;7744:217::-;7891:2;7880:9;7873:21;7854:4;7911:44;7951:2;7940:9;7936:18;7928:6;7911:44;:::i;7966:256::-;8032:6;8040;8093:2;8081:9;8072:7;8068:23;8064:32;8061:52;;;8109:1;8106;8099:12;8061:52;8132:28;8150:9;8132:28;:::i;:::-;8122:38;;8179:37;8212:2;8201:9;8197:18;8179:37;:::i;:::-;8169:47;;7966:256;;;;;:::o;8851:255::-;8910:6;8963:2;8951:9;8942:7;8938:23;8934:32;8931:52;;;8979:1;8976;8969:12;8931:52;9018:9;9005:23;9037:39;9070:5;9037:39;:::i;9111:622::-;9206:6;9214;9222;9230;9238;9291:3;9279:9;9270:7;9266:23;9262:33;9259:53;;;9308:1;9305;9298:12;9259:53;9331:28;9349:9;9331:28;:::i;:::-;9321:38;;9378:37;9411:2;9400:9;9396:18;9378:37;:::i;:::-;9368:47;;9462:2;9451:9;9447:18;9434:32;9424:42;;9517:2;9506:9;9502:18;9489:32;-1:-1:-1;;;;;9536:6:25;9533:30;9530:50;;;9576:1;9573;9566:12;9530:50;9615:58;9665:7;9656:6;9645:9;9641:22;9615:58;:::i;:::-;9111:622;;;;-1:-1:-1;9111:622:25;;-1:-1:-1;9692:8:25;;9589:84;9111:622;-1:-1:-1;;;9111:622:25:o;9738:324::-;9813:6;9821;9829;9882:2;9870:9;9861:7;9857:23;9853:32;9850:52;;;9898:1;9895;9888:12;9850:52;9921:28;9939:9;9921:28;:::i;:::-;9911:38;;9968:37;10001:2;9990:9;9986:18;9968:37;:::i;:::-;9958:47;;10052:2;10041:9;10037:18;10024:32;10014:42;;9738:324;;;;;:::o;10067:468::-;10151:6;10159;10167;10175;10228:3;10216:9;10207:7;10203:23;10199:33;10196:53;;;10245:1;10242;10235:12;10196:53;10268:28;10286:9;10268:28;:::i;:::-;10258:38;;10315:37;10348:2;10337:9;10333:18;10315:37;:::i;:::-;10305:47;;10402:2;10391:9;10387:18;10374:32;10415:39;10448:5;10415:39;:::i;:::-;10067:468;;;;-1:-1:-1;10473:5:25;;10525:2;10510:18;10497:32;;-1:-1:-1;;10067:468:25:o;10899:380::-;10978:1;10974:12;;;;11021;;;11042:61;;11096:4;11088:6;11084:17;11074:27;;11042:61;11149:2;11141:6;11138:14;11118:18;11115:38;11112:161;;;11195:10;11190:3;11186:20;11183:1;11176:31;11230:4;11227:1;11220:15;11258:4;11255:1;11248:15;11112:161;;10899:380;;;:::o;11284:271::-;11467:6;11459;11454:3;11441:33;11423:3;11493:16;;11518:13;;;11493:16;11284:271;-1:-1:-1;11284:271:25:o;12160:290::-;12252:5;12246:12;12242:2;12231:28;12226:3;12219:41;12324:4;12317:5;12313:16;12307:23;12303:2;12292:39;12285:4;12280:3;12276:14;12269:63;12381:4;12374:5;12370:16;12364:23;12357:4;12352:3;12348:14;12341:47;12437:4;12430:5;12426:16;12420:23;12413:4;12408:3;12404:14;12397:47;;;12160:290::o;12455:323::-;12704:6;12692:19;;12674:38;;12661:3;12646:19;;12721:51;12768:2;12753:18;;12745:6;12721:51;:::i;12783:266::-;12871:6;12866:3;12859:19;12923:6;12916:5;12909:4;12904:3;12900:14;12887:43;-1:-1:-1;12975:1:25;12950:16;;;12968:4;12946:27;;;12939:38;;;;13031:2;13010:15;;;-1:-1:-1;;13006:29:25;12997:39;;;12993:50;;12783:266::o;13054:667::-;13345:6;13333:19;;13315:38;;-1:-1:-1;;;;;13389:32:25;;13384:2;13369:18;;13362:60;13409:3;13453:2;13438:18;;13431:31;;;-1:-1:-1;;13485:45:25;;13510:19;;13502:6;13485:45;:::i;:::-;13580:6;13573:14;13566:22;13561:2;13550:9;13546:18;13539:50;13638:9;13630:6;13626:22;13620:3;13609:9;13605:19;13598:51;13666:49;13708:6;13700;13692;13666:49;:::i;:::-;13658:57;13054:667;-1:-1:-1;;;;;;;;;13054:667:25:o;13726:245::-;13805:6;13813;13866:2;13854:9;13845:7;13841:23;13837:32;13834:52;;;13882:1;13879;13872:12;13834:52;-1:-1:-1;;13905:16:25;;13961:2;13946:18;;;13940:25;13905:16;;13940:25;;-1:-1:-1;13726:245:25:o;13976:184::-;14046:6;14099:2;14087:9;14078:7;14074:23;14070:32;14067:52;;;14115:1;14112;14105:12;14067:52;-1:-1:-1;14138:16:25;;13976:184;-1:-1:-1;13976:184:25:o;14165:166::-;14243:13;;14296:2;14285:21;;;14275:32;;14265:60;;14321:1;14318;14311:12;14336:665;14429:6;14482:3;14470:9;14461:7;14457:23;14453:33;14450:53;;;14499:1;14496;14489:12;14450:53;14532:2;14526:9;14574:3;14566:6;14562:16;14644:6;14632:10;14629:22;-1:-1:-1;;;;;14596:10:25;14593:34;14590:62;14587:88;;;14655:18;;:::i;:::-;14691:2;14684:22;14730:39;14759:9;14730:39;:::i;:::-;14722:6;14715:55;14803:48;14847:2;14836:9;14832:18;14803:48;:::i;:::-;14798:2;14790:6;14786:15;14779:73;14906:2;14895:9;14891:18;14885:25;14880:2;14872:6;14868:15;14861:50;14965:2;14954:9;14950:18;14944:25;14939:2;14931:6;14927:15;14920:50;14989:6;14979:16;;;14336:665;;;;:::o;15006:326::-;15201:6;15193;15189:19;15178:9;15171:38;15245:2;15240;15229:9;15225:18;15218:30;15152:4;15265:61;15322:2;15311:9;15307:18;15299:6;15291;15265:61;:::i;15906:259::-;15976:6;16029:2;16017:9;16008:7;16004:23;16000:32;15997:52;;;16045:1;16042;16035:12;15997:52;16077:9;16071:16;16096:39;16129:5;16096:39;:::i;16170:626::-;16549:6;16537:19;;16519:38;;-1:-1:-1;;;;;16593:32:25;;16588:2;16573:18;;16566:60;16657:2;16642:18;;16635:34;;;16506:3;16491:19;;16678:51;16725:2;16710:18;;16702:6;16678:51;:::i;:::-;16738:52;16785:3;16774:9;16770:19;16762:6;16738:52;:::i;:::-;16170:626;;;;;;;;:::o;16801:656::-;17180:6;17168:19;;17150:38;;-1:-1:-1;;;;;17262:15:25;;;17257:2;17242:18;;17235:43;17314:15;;17309:2;17294:18;;17287:43;17137:3;17122:19;;17339:51;17386:2;17371:18;;17363:6;17339:51;:::i;17462:643::-;17847:6;17835:19;;17817:38;;-1:-1:-1;;;;;17891:32:25;;17886:2;17871:18;;17864:60;17972:4;17960:17;;17955:2;17940:18;;17933:45;17804:3;17789:19;;17987:51;18034:2;18019:18;;18011:6;17987:51;:::i;18875:127::-;18936:10;18931:3;18927:20;18924:1;18917:31;18967:4;18964:1;18957:15;18991:4;18988:1;18981:15;19007:125;19047:4;19075:1;19072;19069:8;19066:34;;;19080:18;;:::i;:::-;-1:-1:-1;19117:9:25;;19007:125::o;19137:382::-;19348:6;19340;19335:3;19322:33;19440:2;19436:15;;;;-1:-1:-1;;19432:53:25;19374:16;;19421:65;;;19510:2;19502:11;;19137:382;-1:-1:-1;19137:382:25:o;19524:498::-;19724:4;19753:6;19798:2;19790:6;19786:15;19775:9;19768:34;19850:2;19842:6;19838:15;19833:2;19822:9;19818:18;19811:43;;19890:6;19885:2;19874:9;19870:18;19863:34;19933:3;19928:2;19917:9;19913:18;19906:31;19954:62;20011:3;20000:9;19996:19;19988:6;19980;19954:62;:::i;:::-;19946:70;19524:498;-1:-1:-1;;;;;;;19524:498:25:o;20833:493::-;21082:6;21074;21070:19;21059:9;21052:38;21126:3;21121:2;21110:9;21106:18;21099:31;21033:4;21147:62;21204:3;21193:9;21189:19;21181:6;21173;21147:62;:::i;:::-;-1:-1:-1;;;;;21245:31:25;;;;21240:2;21225:18;;21218:59;-1:-1:-1;21308:2:25;21293:18;21286:34;21139:70;20833:493;-1:-1:-1;;;20833:493:25:o;22912:634::-;22991:6;23044:2;23032:9;23023:7;23019:23;23015:32;23012:52;;;23060:1;23057;23050:12;23012:52;23093:9;23087:16;-1:-1:-1;;;;;23118:6:25;23115:30;23112:50;;;23158:1;23155;23148:12;23112:50;23181:22;;23234:4;23226:13;;23222:27;-1:-1:-1;23212:55:25;;23263:1;23260;23253:12;23212:55;23292:2;23286:9;23317:48;23333:31;23361:2;23333:31;:::i;23317:48::-;23388:2;23381:5;23374:17;23428:7;23423:2;23418;23414;23410:11;23406:20;23403:33;23400:53;;;23449:1;23446;23439:12;23400:53;23462:54;23513:2;23508;23501:5;23497:14;23492:2;23488;23484:11;23462:54;:::i;23551:555::-;23808:6;23800;23796:19;23785:9;23778:38;23852:3;23847:2;23836:9;23832:18;23825:31;23759:4;23879:45;23919:3;23908:9;23904:19;23896:6;23879:45;:::i;:::-;-1:-1:-1;;;;;23964:6:25;23960:31;23955:2;23944:9;23940:18;23933:59;24040:9;24032:6;24028:22;24023:2;24012:9;24008:18;24001:50;24068:32;24093:6;24085;24068:32;:::i;24111:274::-;24240:3;24278:6;24272:13;24294:53;24340:6;24335:3;24328:4;24320:6;24316:17;24294:53;:::i;:::-;24363:16;;;;;24111:274;-1:-1:-1;;24111:274:25:o;24390:716::-;24693:6;24685;24681:19;24670:9;24663:38;24737:3;24732:2;24721:9;24717:18;24710:31;24644:4;24764:45;24804:3;24793:9;24789:19;24781:6;24764:45;:::i;:::-;-1:-1:-1;;;;;24849:6:25;24845:31;24840:2;24829:9;24825:18;24818:59;24925:9;24917:6;24913:22;24908:2;24897:9;24893:18;24886:50;24959:32;24984:6;24976;24959:32;:::i;:::-;24945:46;;25040:9;25032:6;25028:22;25022:3;25011:9;25007:19;25000:51;25068:32;25093:6;25085;25068:32;:::i;:::-;25060:40;24390:716;-1:-1:-1;;;;;;;;24390:716:25:o;25472:217::-;25512:1;25538;25528:132;;25582:10;25577:3;25573:20;25570:1;25563:31;25617:4;25614:1;25607:15;25645:4;25642:1;25635:15;25528:132;-1:-1:-1;25674:9:25;;25472:217::o;25694:168::-;25734:7;25800:1;25796;25792:6;25788:14;25785:1;25782:21;25777:1;25770:9;25763:17;25759:45;25756:71;;;25807:18;;:::i;:::-;-1:-1:-1;25847:9:25;;25694:168::o;25867:128::-;25907:3;25938:1;25934:6;25931:1;25928:13;25925:39;;;25944:18;;:::i;:::-;-1:-1:-1;25980:9:25;;25867:128::o;26417:837::-;26766:6;26758;26754:19;26743:9;26736:38;26810:3;26805:2;26794:9;26790:18;26783:31;26717:4;26837:45;26877:3;26866:9;26862:19;26854:6;26837:45;:::i;:::-;26930:9;26922:6;26918:22;26913:2;26902:9;26898:18;26891:50;26964:32;26989:6;26981;26964:32;:::i;:::-;-1:-1:-1;;;;;27070:15:25;;;27065:2;27050:18;;27043:43;27123:15;;27117:3;27102:19;;27095:44;27176:22;;;27023:3;27155:19;;27148:51;26950:46;-1:-1:-1;27216:32:25;26950:46;27233:6;27216:32;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2309600","executionCost":"infinite","totalCost":"infinite"},"external":{"estimateSendTotalSupply(uint16,bool,bytes)":"infinite","estimateSendUserBalance(uint16,bool,bytes)":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getTrustedRemoteAddress(uint16)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","owner()":"2421","precrime()":"2382","renounceOwnership()":"infinite","retryMessage(uint16,bytes,uint64,bytes)":"infinite","sendTotalSupply(uint16,address,address,bytes)":"infinite","sendUserBalance(address,uint16,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMinDstGas(uint16,uint16,uint256)":"infinite","setPrecrime(address)":"27827","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","votingEscrow()":"infinite","votingEscrowRemapper()":"infinite"},"internal":{"_hasLastCheckpointExpired(uint256)":"261","_nonblockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite"}},"methodIdentifiers":{"estimateSendTotalSupply(uint16,bool,bytes)":"16334c8f","estimateSendUserBalance(uint16,bool,bytes)":"65d092d0","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","sendTotalSupply(uint16,address,address,bytes)":"416b154a","sendUserBalance(address,uint16,address,address,bytes)":"4a759489","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","votingEscrow()":"4f2bfe5b","votingEscrowRemapper()":"363bf0de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_votingEscrowRemapper\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"dstChainId\",\"type\":\"uint16\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"TotalSupplyToChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"localUser\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"remoteUser\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"userPoint\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"UserBalToChain\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendUserBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendTotalSupply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendUserBalance\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingEscrowRemapper\",\"outputs\":[{\"internalType\":\"contract IVotingEscrowRemapper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OmniVotingEscrow.sol\":\"OmniVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/OmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"./interfaces/IVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IOmniVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IVotingEscrowRemapper.sol\\\";\\nimport \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\n\\ncontract OmniVotingEscrow is NonblockingLzApp, IOmniVotingEscrow {\\n IVotingEscrow public immutable votingEscrow;\\n IVotingEscrowRemapper public immutable votingEscrowRemapper;\\n\\n // Packet types for child chains:\\n uint16 PT_USER = 0; // user balance and total supply update\\n uint16 PT_TS = 1; // total supply update\\n\\n event UserBalToChain(uint16 dstChainId, address localUser, address remoteUser, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\\n event TotalSupplyToChain(uint16 dstChainId, IVotingEscrow.Point totalSupplyPoint);\\n\\n constructor(address _lzEndpoint, address _votingEscrowRemapper) NonblockingLzApp(_lzEndpoint) {\\n require(_votingEscrowRemapper != address(0x0), \\\"OmniVotingEscrow: remapper cannot be 0x0\\\");\\n\\n votingEscrowRemapper = IVotingEscrowRemapper(_votingEscrowRemapper);\\n votingEscrow = votingEscrowRemapper.getVotingEscrow();\\n }\\n\\n function _nonblockingLzReceive(\\n uint16, /*_srcChainId*/\\n bytes memory, /*_srcAddress*/\\n uint64, /*_nonce*/\\n bytes memory /*_payload*/\\n ) internal virtual override {\\n revert(\\\"OmniVotingEscrow: cannot receive lzMsgs\\\");\\n }\\n\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory lzPayload = abi.encode(PT_USER, address(0x0), 0, IVotingEscrow.Point(0, 0, 0, 0), IVotingEscrow.Point(0, 0, 0, 0));\\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\\n }\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory lzPayload = abi.encode(PT_TS, IVotingEscrow.Point(0, 0, 0, 0));\\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\\n }\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\\n uint userEpoch = votingEscrow.user_point_epoch(_localUser);\\n IVotingEscrow.Point memory uPoint = votingEscrow.user_point_history(_localUser, userEpoch);\\n\\n uint lockedEnd = votingEscrow.locked__end(_localUser);\\n\\n // always send total supply along with a user update\\n uint totalSupplyEpoch = votingEscrow.epoch();\\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n\\n address remappedAddress = votingEscrowRemapper.getRemoteUser(_localUser, _dstChainId);\\n address remoteUser = remappedAddress != address(0x0) ? remappedAddress : _localUser;\\n\\n bytes memory lzPayload = abi.encode(PT_USER, remoteUser, lockedEnd, uPoint, tsPoint);\\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n emit UserBalToChain(_dstChainId, _localUser, remoteUser, uPoint, tsPoint);\\n }\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\\n uint totalSupplyEpoch = votingEscrow.epoch();\\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n\\n // Total supply point may only change if none has checkpointed after the current week has started.\\n // If that's the case the checkpoint is performed at this point, before bridging the total supply.\\n if (_hasLastCheckpointExpired(tsPoint.ts)) {\\n votingEscrow.checkpoint();\\n // Get updated point.\\n totalSupplyEpoch = votingEscrow.epoch();\\n tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n }\\n\\n bytes memory lzPayload = abi.encode(PT_TS, tsPoint);\\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n emit TotalSupplyToChain(_dstChainId, tsPoint);\\n }\\n\\n function _hasLastCheckpointExpired(uint lastCheckpointTimestamp) internal view returns (bool) {\\n // If last checkpoint rounded to weeks + one week is still behind the block timestamp, then it has expired.\\n return (lastCheckpointTimestamp / 1 weeks) * 1 weeks + 1 weeks < block.timestamp;\\n }\\n}\\n\",\"keccak256\":\"0xcfe8b67477944f8d996ce0ea08164e55da77da90c1ccea4c4021f2a64aef44d4\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":3728,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"PT_USER","offset":0,"slot":"5","type":"t_uint16"},{"astId":3731,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"PT_TS","offset":2,"slot":"5","type":"t_uint16"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/OmniVotingEscrowChild.sol":{"OmniVotingEscrowChild":{"abi":[{"inputs":[{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegationHook","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"TotalSupplyFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"userPoint","type":"tuple"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"UserBalFromChain","type":"event"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delegationHook","outputs":[{"internalType":"contract IL2LayerZeroDelegation","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"_point","type":"tuple"}],"name":"getPointValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"locked__end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyPoint","outputs":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userPoints","outputs":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_2907":{"entryPoint":null,"id":2907,"parameterSlots":0,"returnSlots":0},"@_4169":{"entryPoint":null,"id":4169,"parameterSlots":2,"returnSlots":0},"@_494":{"entryPoint":null,"id":494,"parameterSlots":1,"returnSlots":0},"@_935":{"entryPoint":null,"id":935,"parameterSlots":1,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2995":{"entryPoint":241,"id":2995,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":321,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":350,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:912:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:25","statements":[{"nodeType":"YulAssignment","src":"84:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:25"},"nodeType":"YulFunctionCall","src":"93:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:25"}]},{"body":{"nodeType":"YulBlock","src":"169:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:25"},"nodeType":"YulFunctionCall","src":"171:12:25"},"nodeType":"YulExpressionStatement","src":"171:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:25"},"nodeType":"YulFunctionCall","src":"150:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:25"},"nodeType":"YulFunctionCall","src":"146:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:25"},"nodeType":"YulFunctionCall","src":"135:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:25"},"nodeType":"YulFunctionCall","src":"125:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:25"},"nodeType":"YulFunctionCall","src":"118:50:25"},"nodeType":"YulIf","src":"115:70:25"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:25","type":""}],"src":"14:177:25"},{"body":{"nodeType":"YulBlock","src":"294:195:25","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:25"},"nodeType":"YulFunctionCall","src":"342:12:25"},"nodeType":"YulExpressionStatement","src":"342:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:25"},"nodeType":"YulFunctionCall","src":"311:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:25"},"nodeType":"YulFunctionCall","src":"307:32:25"},"nodeType":"YulIf","src":"304:52:25"},{"nodeType":"YulAssignment","src":"365:50:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:25"},"nodeType":"YulFunctionCall","src":"375:40:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:25"}]},{"nodeType":"YulAssignment","src":"424:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:25"},"nodeType":"YulFunctionCall","src":"464:18:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:25"},"nodeType":"YulFunctionCall","src":"434:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:25","type":""}],"src":"196:293:25"},{"body":{"nodeType":"YulBlock","src":"668:242:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:21:25"},"nodeType":"YulExpressionStatement","src":"678:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:25"},"nodeType":"YulFunctionCall","src":"715:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:25","type":"","value":"52"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:25"},"nodeType":"YulFunctionCall","src":"708:30:25"},"nodeType":"YulExpressionStatement","src":"708:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:25"},"nodeType":"YulFunctionCall","src":"754:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f","kind":"string","nodeType":"YulLiteral","src":"774:34:25","type":"","value":"OmniVotingEscrowChild: delegatio"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:25"},"nodeType":"YulFunctionCall","src":"747:62:25"},"nodeType":"YulExpressionStatement","src":"747:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"840:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"825:3:25"},"nodeType":"YulFunctionCall","src":"825:18:25"},{"hexValue":"6e20686f6f6b2063616e6e6f7420626520307830","kind":"string","nodeType":"YulLiteral","src":"845:22:25","type":"","value":"n hook cannot be 0x0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"818:6:25"},"nodeType":"YulFunctionCall","src":"818:50:25"},"nodeType":"YulExpressionStatement","src":"818:50:25"},{"nodeType":"YulAssignment","src":"877:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"900:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"885:3:25"},"nodeType":"YulFunctionCall","src":"885:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"877:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:25","type":""}],"src":"494:416:25"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 52)\n mstore(add(headStart, 64), \"OmniVotingEscrowChild: delegatio\")\n mstore(add(headStart, 96), \"n hook cannot be 0x0\")\n tail := add(headStart, 128)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c0604052600a805463ffffffff1916620100001790553480156200002357600080fd5b50604051620027e5380380620027e583398101604081905262000046916200015e565b81806200005333620000f1565b6001600160a01b03908116608052821615159050620000de5760405162461bcd60e51b815260206004820152603460248201527f4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f60448201527f6e20686f6f6b2063616e6e6f7420626520307830000000000000000000000000606482015260840160405180910390fd5b6001600160a01b031660a0525062000196565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200015957600080fd5b919050565b600080604083850312156200017257600080fd5b6200017d8362000141565b91506200018d6020840162000141565b90509250929050565b60805160a0516125f1620001f460003960008181610376015281816118e601526119d80152600081816104d20152818161066b015281816108ba0152818161094301528181610abd01528181610f27015261136901526125f16000f3fe6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea2646970667358221220570e1801cb2ac804d712ad851aeb331dab0e074f86b201032a7cf28a48777cff64736f6c634300080a0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH1 0xA DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH3 0x10000 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x27E5 CODESIZE SUB DUP1 PUSH3 0x27E5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x46 SWAP2 PUSH3 0x15E JUMP JUMPDEST DUP2 DUP1 PUSH3 0x53 CALLER PUSH3 0xF1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x80 MSTORE DUP3 AND ISZERO ISZERO SWAP1 POP PUSH3 0xDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A2064656C65676174696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20686F6F6B2063616E6E6F7420626520307830000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH3 0x196 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x159 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x17D DUP4 PUSH3 0x141 JUMP JUMPDEST SWAP2 POP PUSH3 0x18D PUSH1 0x20 DUP5 ADD PUSH3 0x141 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x25F1 PUSH3 0x1F4 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x376 ADD MSTORE DUP2 DUP2 PUSH2 0x18E6 ADD MSTORE PUSH2 0x19D8 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4D2 ADD MSTORE DUP2 DUP2 PUSH2 0x66B ADD MSTORE DUP2 DUP2 PUSH2 0x8BA ADD MSTORE DUP2 DUP2 PUSH2 0x943 ADD MSTORE DUP2 DUP2 PUSH2 0xABD ADD MSTORE DUP2 DUP2 PUSH2 0xF27 ADD MSTORE PUSH2 0x1369 ADD MSTORE PUSH2 0x25F1 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xCBED8B9C GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xF4182ACB EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xF50DDBC7 EQ PUSH2 0x5FD JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x648 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA6C3D165 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x473 JUMPI DUP1 PUSH4 0xADC63589 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x164 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x74D2495F EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x378EF708 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x208 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x1E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x97A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF1 JUMP JUMPDEST PUSH2 0x9C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x9D1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xA9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xB24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0xC5B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x370 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xC6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x1F10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F23 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x398 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x398 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xD09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x48E CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xE19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x50F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xEAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x52F CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5C JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xF9D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FCE JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x1265 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x12BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x9 SLOAD PUSH2 0x5D5 SWAP3 PUSH1 0xF DUP2 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SWAP2 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF SWAP6 DUP7 SIGNEXTEND DUP2 MSTORE SWAP4 SWAP1 SWAP5 SIGNEXTEND PUSH1 0x20 DUP5 ADD MSTORE SWAP3 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D5 PUSH2 0x618 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP4 DIV SWAP1 SIGNEXTEND SWAP2 SWAP1 DUP5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x200F JUMP JUMPDEST PUSH2 0x1338 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x703 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x72F SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x77C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x751 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x77C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x75F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x797 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x7BF JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x7B5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x890 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x13E9 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x92A PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x8ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x7 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0x9BB SWAP1 PUSH2 0x154D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CB DUP3 PUSH2 0x154D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x9F2 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA1E SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA6B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA40 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA6B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA4E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA82 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAA6 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xAF6 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x890 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xBF8 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x9CB SWAP1 PUSH2 0x154D JUMP JUMPDEST PUSH2 0xC63 PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xC6D PUSH1 0x0 PUSH2 0x1646 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xC88 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCB4 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD2C SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD58 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD88 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xA97 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0xE11 SWAP2 SWAP1 PUSH2 0x2108 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xE21 PUSH2 0x14F3 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE36 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x211F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0xE6B SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1A69 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xEB4 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xF10 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0xF64 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2145 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF92 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFC0 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x1040 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1051 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x10B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10D3 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x116B SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x11A2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x217E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11BB PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1203 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x126D PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x128B SWAP1 DUP4 DUP4 PUSH2 0x1AED JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x12C7 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x132C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1646 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x13E0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21B9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x144C GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1411 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x17A3 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0xBF8 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1486 SWAP2 SWAP1 PUSH2 0x2264 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x14E3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x1563 SWAP1 TIMESTAMP PUSH2 0x2108 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1572 SWAP2 SWAP1 PUSH2 0x22DE JUMP JUMPDEST DUP3 MLOAD PUSH2 0x157E SWAP2 SWAP1 PUSH2 0x237C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND SLT PUSH2 0x159A JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x159D JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xA SLOAD PUSH2 0xFFFF DUP1 DUP4 AND SWAP2 AND EQ ISZERO PUSH2 0x15CA JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x91B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0xFFFF DUP3 DUP2 AND PUSH3 0x10000 SWAP1 SWAP3 DIV AND EQ ISZERO PUSH2 0x15EB JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x1978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A20756E6B6E6F776E2070 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x61636B65742074797065 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x16A4 DUP2 PUSH1 0x1F PUSH2 0x23CC JUMP JUMPDEST LT ISZERO PUSH2 0x16E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x16ED DUP3 DUP5 PUSH2 0x23CC JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1750 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x179A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1789 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1771 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17C8 JUMPI PUSH2 0x17C8 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17F2 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x1814 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1847 SWAP2 SWAP1 PUSH2 0x245D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 SWAP1 SSTORE PUSH1 0x6 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP8 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP2 DUP4 AND DUP3 MUL OR DUP4 SSTORE DUP9 DUP6 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE PUSH1 0x60 DUP1 DUP11 ADD MLOAD PUSH1 0x2 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE DUP8 MLOAD SWAP4 DUP9 ADD MLOAD SWAP4 DUP3 AND SWAP4 SWAP1 SWAP2 AND MUL SWAP2 SWAP1 SWAP2 OR PUSH1 0x7 SSTORE DUP5 DUP3 ADD MLOAD PUSH1 0x8 SSTORE DUP5 ADD MLOAD PUSH1 0x9 SSTORE MLOAD PUSH4 0x6F8985FF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP PUSH32 0x0 AND SWAP2 POP PUSH4 0xDF130BFE SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0xAE0E70D8538C5776F9975183D965B1722A0E8FA0256C8301CB707F64A9821F83 DUP7 DUP6 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x14E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x198E SWAP2 SWAP1 PUSH2 0x2546 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP2 AND OR PUSH1 0x7 SSTORE PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x8 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x9 SSTORE DUP1 MLOAD PUSH4 0x96345FB5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 POP PUSH4 0x96345FB5 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9048DA34D2DAC99755410B6E83E1EAAB692909FF964F5BC920756AB49C73DF9A DUP4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP3 SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1A75 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A97 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1AB0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1AC2 JUMP JUMPDEST POP PUSH2 0x1AE9 SWAP3 SWAP2 POP PUSH2 0x1B61 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1AF9 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1B34 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1B46 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1AE9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1B62 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1BAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1BC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x1C0E DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1C2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C36 DUP11 DUP4 DUP12 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x1C4A PUSH1 0x40 DUP11 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1C60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6D DUP10 DUP3 DUP11 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1CDA JUMPI PUSH2 0x1CDA PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xF SIGNEXTEND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1D25 JUMPI PUSH2 0x1D25 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD PUSH2 0x1D33 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1D43 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 SWAP3 DUP4 ADD CALLDATALOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1D7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1D85 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1DA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DAC DUP7 DUP3 DUP8 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1DD2 JUMPI PUSH2 0x1DD2 PUSH2 0x1C9C JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1E00 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1E1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x1E2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E3F PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST PUSH2 0x1CB2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1E54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x1E79 PUSH1 0x40 DUP6 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ECF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1EDE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EFC DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1F41 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1F51 DUP2 PUSH2 0x1B76 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x1F7F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x1F8F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1FB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FBD DUP9 DUP3 DUP10 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1FE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1FEE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1FFE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2025 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2030 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2040 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2050 DUP2 PUSH2 0x1E82 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2074 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x13E0 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x211A JUMPI PUSH2 0x211A PUSH2 0x20F2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2173 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x219C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x20AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x21E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x21F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2200 PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E0 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2243 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2173 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2276 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x229D PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x22BE DUP2 DUP7 PUSH2 0x1EE4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x22D2 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB PUSH1 0x0 DUP3 SGT PUSH1 0x0 DUP5 SGT DUP4 DUP4 DIV DUP6 GT DUP3 DUP3 AND AND ISZERO PUSH2 0x230E JUMPI PUSH2 0x230E PUSH2 0x20F2 JUMP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x0 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x233A JUMPI PUSH2 0x233A PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x0 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x2356 JUMPI PUSH2 0x2356 PUSH2 0x20F2 JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x236C JUMPI PUSH2 0x236C PUSH2 0x20F2 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 SLT DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT ADD DUP4 SLT DUP2 ISZERO AND ISZERO PUSH2 0x23A7 JUMPI PUSH2 0x23A7 PUSH2 0x20F2 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x23C2 JUMPI PUSH2 0x23C2 PUSH2 0x20F2 JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x23DF JUMPI PUSH2 0x23DF PUSH2 0x20F2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2418 JUMPI PUSH2 0x2418 PUSH2 0x1C9C JUMP JUMPDEST DUP1 PUSH1 0x40 MSTORE POP DUP1 SWAP2 POP DUP3 MLOAD PUSH2 0x242B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x243B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x160 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH2 0x2481 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD SWAP1 SWAP6 POP PUSH2 0x2492 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x24A9 DUP8 PUSH1 0x60 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24B8 DUP8 PUSH1 0xE0 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x140 DUP2 ADD PUSH2 0x2513 PUSH1 0x40 DUP4 ADD DUP6 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST DUP3 MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SIGNEXTEND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x13E0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xA0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x2564 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH2 0x2573 DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0xE XOR ADD 0xCB 0x2A 0xC8 DIV 0xD7 SLT 0xAD DUP6 BYTE 0xEB CALLER SAR 0xAB 0xE SMOD 0x4F DUP7 0xB2 ADD SUB 0x2A PUSH29 0xF28A48777CFF64736F6C634300080A0033000000000000000000000000 ","sourceMap":"255:3271:15:-:0;;;571:18;;;-1:-1:-1;;635:16:15;;;;;962:267;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1037:11;;936:32:9;719:10:13;936:18:9;:32::i;:::-;-1:-1:-1;;;;;980:42:4;;;;;1068:31:15;::::1;::::0;::::1;::::0;-1:-1:-1;1060:96:15::1;;;::::0;-1:-1:-1;;;1060:96:15;;696:2:25;1060:96:15::1;::::0;::::1;678:21:25::0;735:2;715:18;;;708:30;774:34;754:18;;;747:62;845:22;825:18;;;818:50;885:19;;1060:96:15::1;;;;;;;;-1:-1:-1::0;;;;;1166:56:15::1;;::::0;-1:-1:-1;255:3271:15;;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:177:25:-;93:13;;-1:-1:-1;;;;;135:31:25;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:416::-;255:3271:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_blockingLzReceive_1026":{"entryPoint":5097,"id":1026,"parameterSlots":4,"returnSlots":0},"@_checkOwner_2938":{"entryPoint":5363,"id":2938,"parameterSlots":0,"returnSlots":0},"@_getPointValue_4398":{"entryPoint":5453,"id":4398,"parameterSlots":1,"returnSlots":1},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_nonblockingLzReceive_4211":{"entryPoint":5541,"id":4211,"parameterSlots":4,"returnSlots":0},"@_transferOwnership_2995":{"entryPoint":5702,"id":2995,"parameterSlots":1,"returnSlots":0},"@_updateTotalSupplyFromChain_4311":{"entryPoint":6520,"id":4311,"parameterSlots":2,"returnSlots":0},"@_updateUserAndTotalSupplyFromChain_4274":{"entryPoint":6189,"id":4274,"parameterSlots":2,"returnSlots":0},"@balanceOf_4325":{"entryPoint":3072,"id":4325,"parameterSlots":1,"returnSlots":1},"@delegationHook_4123":{"entryPoint":null,"id":4123,"parameterSlots":0,"returnSlots":0},"@excessivelySafeCall_2826":{"entryPoint":6051,"id":2826,"parameterSlots":4,"returnSlots":2},"@failedMessages_943":{"entryPoint":null,"id":943,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_763":{"entryPoint":2718,"id":763,"parameterSlots":3,"returnSlots":0},"@getConfig_691":{"entryPoint":4920,"id":691,"parameterSlots":4,"returnSlots":1},"@getPointValue_4348":{"entryPoint":2496,"id":4348,"parameterSlots":1,"returnSlots":1},"@getTrustedRemoteAddress_843":{"entryPoint":3337,"id":843,"parameterSlots":1,"returnSlots":1},"@isTrustedRemote_916":{"entryPoint":2513,"id":916,"parameterSlots":3,"returnSlots":1},"@locked__end_4106":{"entryPoint":null,"id":4106,"parameterSlots":0,"returnSlots":0},"@lzEndpoint_446":{"entryPoint":null,"id":446,"parameterSlots":0,"returnSlots":0},"@lzReceive_553":{"entryPoint":1640,"id":553,"parameterSlots":6,"returnSlots":0},"@minDstGasLookup_456":{"entryPoint":null,"id":456,"parameterSlots":0,"returnSlots":0},"@nonblockingLzReceive_1056":{"entryPoint":2852,"id":1056,"parameterSlots":6,"returnSlots":0},"@owner_2924":{"entryPoint":null,"id":2924,"parameterSlots":0,"returnSlots":1},"@precrime_458":{"entryPoint":null,"id":458,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_2952":{"entryPoint":3163,"id":2952,"parameterSlots":0,"returnSlots":0},"@retryMessage_1135":{"entryPoint":3997,"id":1135,"parameterSlots":6,"returnSlots":0},"@setConfig_715":{"entryPoint":3848,"id":715,"parameterSlots":5,"returnSlots":0},"@setMinDstGas_892":{"entryPoint":4531,"id":892,"parameterSlots":3,"returnSlots":0},"@setPrecrime_859":{"entryPoint":3756,"id":859,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_745":{"entryPoint":2338,"id":745,"parameterSlots":1,"returnSlots":0},"@setSendVersion_730":{"entryPoint":2201,"id":730,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_812":{"entryPoint":3609,"id":812,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_784":{"entryPoint":4709,"id":784,"parameterSlots":3,"returnSlots":0},"@slice_2517":{"entryPoint":5782,"id":2517,"parameterSlots":3,"returnSlots":1},"@totalSupplyPoint_4114":{"entryPoint":null,"id":4114,"parameterSlots":0,"returnSlots":0},"@totalSupply_4335":{"entryPoint":2426,"id":4335,"parameterSlots":0,"returnSlots":1},"@transferOwnership_2975":{"entryPoint":4799,"id":2975,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_450":{"entryPoint":3183,"id":450,"parameterSlots":0,"returnSlots":0},"@userPoints_4111":{"entryPoint":null,"id":4111,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes_calldata":{"entryPoint":7046,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_struct_Point_fromMemory":{"entryPoint":9188,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":7831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":8633,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr":{"entryPoint":7409,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16":{"entryPoint":7295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":9309,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":7525,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":7146,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":7648,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":9542,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":7971,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":8207,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":8142,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":8028,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint64":{"entryPoint":7118,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":7908,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":8363,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_Point":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8347,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":8479,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":7952,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":9412,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8404,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":8574,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8742,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8832,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":9596,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8517,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":7346,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":7609,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":9164,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_int128":{"entryPoint":8926,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_int128":{"entryPoint":9084,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8456,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":7860,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":8288,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":8434,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7324,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":7810,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_int128":{"entryPoint":7394,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint16":{"entryPoint":7030,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24690:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:73:25","statements":[{"body":{"nodeType":"YulBlock","src":"109:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"118:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"121:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"111:6:25"},"nodeType":"YulFunctionCall","src":"111:12:25"},"nodeType":"YulExpressionStatement","src":"111:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"99:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:25"},"nodeType":"YulFunctionCall","src":"88:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:25"},"nodeType":"YulFunctionCall","src":"78:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:25"},"nodeType":"YulFunctionCall","src":"71:37:25"},"nodeType":"YulIf","src":"68:57:25"}]},"name":"validator_revert_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:25","type":""}],"src":"14:117:25"},{"body":{"nodeType":"YulBlock","src":"208:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"259:6:25"},"nodeType":"YulFunctionCall","src":"259:12:25"},"nodeType":"YulExpressionStatement","src":"259:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"236:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"232:3:25"},"nodeType":"YulFunctionCall","src":"232:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"251:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"228:3:25"},"nodeType":"YulFunctionCall","src":"228:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"221:6:25"},"nodeType":"YulFunctionCall","src":"221:35:25"},"nodeType":"YulIf","src":"218:55:25"},{"nodeType":"YulAssignment","src":"282:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"305:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"292:12:25"},"nodeType":"YulFunctionCall","src":"292:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"282:6:25"}]},{"body":{"nodeType":"YulBlock","src":"355:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"364:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"367:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"357:6:25"},"nodeType":"YulFunctionCall","src":"357:12:25"},"nodeType":"YulExpressionStatement","src":"357:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"327:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"335:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"324:2:25"},"nodeType":"YulFunctionCall","src":"324:30:25"},"nodeType":"YulIf","src":"321:50:25"},{"nodeType":"YulAssignment","src":"380:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"396:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"404:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:25"},"nodeType":"YulFunctionCall","src":"392:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"380:8:25"}]},{"body":{"nodeType":"YulBlock","src":"461:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"473:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"463:6:25"},"nodeType":"YulFunctionCall","src":"463:12:25"},"nodeType":"YulExpressionStatement","src":"463:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"432:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"428:3:25"},"nodeType":"YulFunctionCall","src":"428:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"449:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"424:3:25"},"nodeType":"YulFunctionCall","src":"424:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"456:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"421:2:25"},"nodeType":"YulFunctionCall","src":"421:39:25"},"nodeType":"YulIf","src":"418:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"171:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"179:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"187:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"197:6:25","type":""}],"src":"136:347:25"},{"body":{"nodeType":"YulBlock","src":"536:123:25","statements":[{"nodeType":"YulAssignment","src":"546:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"568:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"555:12:25"},"nodeType":"YulFunctionCall","src":"555:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"546:5:25"}]},{"body":{"nodeType":"YulBlock","src":"637:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"646:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"649:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"639:6:25"},"nodeType":"YulFunctionCall","src":"639:12:25"},"nodeType":"YulExpressionStatement","src":"639:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"597:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"608:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"615:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"604:3:25"},"nodeType":"YulFunctionCall","src":"604:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"594:2:25"},"nodeType":"YulFunctionCall","src":"594:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"587:6:25"},"nodeType":"YulFunctionCall","src":"587:49:25"},"nodeType":"YulIf","src":"584:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"515:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"526:5:25","type":""}],"src":"488:171:25"},{"body":{"nodeType":"YulBlock","src":"821:766:25","statements":[{"body":{"nodeType":"YulBlock","src":"868:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"877:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"880:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"870:6:25"},"nodeType":"YulFunctionCall","src":"870:12:25"},"nodeType":"YulExpressionStatement","src":"870:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"842:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"851:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"838:3:25"},"nodeType":"YulFunctionCall","src":"838:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"863:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"834:3:25"},"nodeType":"YulFunctionCall","src":"834:33:25"},"nodeType":"YulIf","src":"831:53:25"},{"nodeType":"YulVariableDeclaration","src":"893:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"919:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"906:12:25"},"nodeType":"YulFunctionCall","src":"906:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"897:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"962:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"938:23:25"},"nodeType":"YulFunctionCall","src":"938:30:25"},"nodeType":"YulExpressionStatement","src":"938:30:25"},{"nodeType":"YulAssignment","src":"977:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"987:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"977:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1001:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1032:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1043:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1028:3:25"},"nodeType":"YulFunctionCall","src":"1028:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1015:12:25"},"nodeType":"YulFunctionCall","src":"1015:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1005:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1056:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"1066:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1060:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1111:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1120:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1123:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1113:6:25"},"nodeType":"YulFunctionCall","src":"1113:12:25"},"nodeType":"YulExpressionStatement","src":"1113:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1099:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1107:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1096:2:25"},"nodeType":"YulFunctionCall","src":"1096:14:25"},"nodeType":"YulIf","src":"1093:34:25"},{"nodeType":"YulVariableDeclaration","src":"1136:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1192:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1203:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1188:3:25"},"nodeType":"YulFunctionCall","src":"1188:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1212:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1162:25:25"},"nodeType":"YulFunctionCall","src":"1162:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1140:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1150:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1229:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1239:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1229:6:25"}]},{"nodeType":"YulAssignment","src":"1256:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1266:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1256:6:25"}]},{"nodeType":"YulAssignment","src":"1283:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1315:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1326:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1311:3:25"},"nodeType":"YulFunctionCall","src":"1311:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"1293:17:25"},"nodeType":"YulFunctionCall","src":"1293:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1283:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1339:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1372:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1383:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1368:3:25"},"nodeType":"YulFunctionCall","src":"1368:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1355:12:25"},"nodeType":"YulFunctionCall","src":"1355:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1343:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1416:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1425:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1428:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1418:6:25"},"nodeType":"YulFunctionCall","src":"1418:12:25"},"nodeType":"YulExpressionStatement","src":"1418:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1402:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1412:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1399:2:25"},"nodeType":"YulFunctionCall","src":"1399:16:25"},"nodeType":"YulIf","src":"1396:36:25"},{"nodeType":"YulVariableDeclaration","src":"1441:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1497:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1508:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1519:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1467:25:25"},"nodeType":"YulFunctionCall","src":"1467:60:25"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"1445:8:25","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"1455:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1536:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"1546:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1536:6:25"}]},{"nodeType":"YulAssignment","src":"1563:18:25","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"1573:8:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"747:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"758:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"770:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"778:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"786:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"794:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"802:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"810:6:25","type":""}],"src":"664:923:25"},{"body":{"nodeType":"YulBlock","src":"1661:176:25","statements":[{"body":{"nodeType":"YulBlock","src":"1707:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1719:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1709:6:25"},"nodeType":"YulFunctionCall","src":"1709:12:25"},"nodeType":"YulExpressionStatement","src":"1709:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1682:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1691:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1703:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1674:3:25"},"nodeType":"YulFunctionCall","src":"1674:32:25"},"nodeType":"YulIf","src":"1671:52:25"},{"nodeType":"YulVariableDeclaration","src":"1732:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1758:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1745:12:25"},"nodeType":"YulFunctionCall","src":"1745:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1736:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1801:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"1777:23:25"},"nodeType":"YulFunctionCall","src":"1777:30:25"},"nodeType":"YulExpressionStatement","src":"1777:30:25"},{"nodeType":"YulAssignment","src":"1816:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"1826:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1816:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1627:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1638:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1650:6:25","type":""}],"src":"1592:245:25"},{"body":{"nodeType":"YulBlock","src":"1943:76:25","statements":[{"nodeType":"YulAssignment","src":"1953:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1965:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1976:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1961:3:25"},"nodeType":"YulFunctionCall","src":"1961:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1953:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1995:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2006:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1988:6:25"},"nodeType":"YulFunctionCall","src":"1988:25:25"},"nodeType":"YulExpressionStatement","src":"1988:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1912:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1923:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1934:4:25","type":""}],"src":"1842:177:25"},{"body":{"nodeType":"YulBlock","src":"2056:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2073:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2080:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2085:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2076:3:25"},"nodeType":"YulFunctionCall","src":"2076:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2066:6:25"},"nodeType":"YulFunctionCall","src":"2066:31:25"},"nodeType":"YulExpressionStatement","src":"2066:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2113:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2116:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2106:6:25"},"nodeType":"YulFunctionCall","src":"2106:15:25"},"nodeType":"YulExpressionStatement","src":"2106:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2137:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2140:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2130:6:25"},"nodeType":"YulFunctionCall","src":"2130:15:25"},"nodeType":"YulExpressionStatement","src":"2130:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2024:127:25"},{"body":{"nodeType":"YulBlock","src":"2201:230:25","statements":[{"nodeType":"YulAssignment","src":"2211:19:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2227:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2221:5:25"},"nodeType":"YulFunctionCall","src":"2221:9:25"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2211:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2239:58:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2261:6:25"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2277:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2283:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2273:3:25"},"nodeType":"YulFunctionCall","src":"2273:13:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2292:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2288:3:25"},"nodeType":"YulFunctionCall","src":"2288:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2269:3:25"},"nodeType":"YulFunctionCall","src":"2269:27:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2257:3:25"},"nodeType":"YulFunctionCall","src":"2257:40:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2243:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2372:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2374:16:25"},"nodeType":"YulFunctionCall","src":"2374:18:25"},"nodeType":"YulExpressionStatement","src":"2374:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2315:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"2327:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2312:2:25"},"nodeType":"YulFunctionCall","src":"2312:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2351:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2363:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2348:2:25"},"nodeType":"YulFunctionCall","src":"2348:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2309:2:25"},"nodeType":"YulFunctionCall","src":"2309:62:25"},"nodeType":"YulIf","src":"2306:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2410:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2414:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2403:6:25"},"nodeType":"YulFunctionCall","src":"2403:22:25"},"nodeType":"YulExpressionStatement","src":"2403:22:25"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"2181:4:25","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2190:6:25","type":""}],"src":"2156:275:25"},{"body":{"nodeType":"YulBlock","src":"2480:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"2534:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2543:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2546:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2536:6:25"},"nodeType":"YulFunctionCall","src":"2536:12:25"},"nodeType":"YulExpressionStatement","src":"2536:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2503:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2521:2:25","type":"","value":"15"},{"name":"value","nodeType":"YulIdentifier","src":"2525:5:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"2510:10:25"},"nodeType":"YulFunctionCall","src":"2510:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2500:2:25"},"nodeType":"YulFunctionCall","src":"2500:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2493:6:25"},"nodeType":"YulFunctionCall","src":"2493:40:25"},"nodeType":"YulIf","src":"2490:60:25"}]},"name":"validator_revert_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2469:5:25","type":""}],"src":"2436:120:25"},{"body":{"nodeType":"YulBlock","src":"2654:681:25","statements":[{"body":{"nodeType":"YulBlock","src":"2701:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2710:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2713:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2703:6:25"},"nodeType":"YulFunctionCall","src":"2703:12:25"},"nodeType":"YulExpressionStatement","src":"2703:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2675:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2684:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2671:3:25"},"nodeType":"YulFunctionCall","src":"2671:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2667:3:25"},"nodeType":"YulFunctionCall","src":"2667:33:25"},"nodeType":"YulIf","src":"2664:53:25"},{"nodeType":"YulVariableDeclaration","src":"2726:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2746:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2740:5:25"},"nodeType":"YulFunctionCall","src":"2740:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2730:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2758:34:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2780:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2788:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2776:3:25"},"nodeType":"YulFunctionCall","src":"2776:16:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2762:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2867:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2869:16:25"},"nodeType":"YulFunctionCall","src":"2869:18:25"},"nodeType":"YulExpressionStatement","src":"2869:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2810:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"2822:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2807:2:25"},"nodeType":"YulFunctionCall","src":"2807:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2846:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2858:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2843:2:25"},"nodeType":"YulFunctionCall","src":"2843:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2804:2:25"},"nodeType":"YulFunctionCall","src":"2804:62:25"},"nodeType":"YulIf","src":"2801:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2905:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2909:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2898:6:25"},"nodeType":"YulFunctionCall","src":"2898:22:25"},"nodeType":"YulExpressionStatement","src":"2898:22:25"},{"nodeType":"YulVariableDeclaration","src":"2929:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2955:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2942:12:25"},"nodeType":"YulFunctionCall","src":"2942:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2933:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2998:5:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"2974:23:25"},"nodeType":"YulFunctionCall","src":"2974:30:25"},"nodeType":"YulExpressionStatement","src":"2974:30:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3020:6:25"},{"name":"value","nodeType":"YulIdentifier","src":"3028:5:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3013:6:25"},"nodeType":"YulFunctionCall","src":"3013:21:25"},"nodeType":"YulExpressionStatement","src":"3013:21:25"},{"nodeType":"YulVariableDeclaration","src":"3043:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3075:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3086:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3071:3:25"},"nodeType":"YulFunctionCall","src":"3071:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3058:12:25"},"nodeType":"YulFunctionCall","src":"3058:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3047:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3123:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"3099:23:25"},"nodeType":"YulFunctionCall","src":"3099:32:25"},"nodeType":"YulExpressionStatement","src":"3099:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3151:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3159:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:25"},"nodeType":"YulFunctionCall","src":"3147:15:25"},{"name":"value_1","nodeType":"YulIdentifier","src":"3164:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:25"},"nodeType":"YulFunctionCall","src":"3140:32:25"},"nodeType":"YulExpressionStatement","src":"3140:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3192:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3188:3:25"},"nodeType":"YulFunctionCall","src":"3188:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3222:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3233:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3218:3:25"},"nodeType":"YulFunctionCall","src":"3218:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3205:12:25"},"nodeType":"YulFunctionCall","src":"3205:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3181:6:25"},"nodeType":"YulFunctionCall","src":"3181:57:25"},"nodeType":"YulExpressionStatement","src":"3181:57:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3258:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3266:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3254:3:25"},"nodeType":"YulFunctionCall","src":"3254:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3288:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3299:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3284:3:25"},"nodeType":"YulFunctionCall","src":"3284:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3271:12:25"},"nodeType":"YulFunctionCall","src":"3271:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3247:6:25"},"nodeType":"YulFunctionCall","src":"3247:57:25"},"nodeType":"YulExpressionStatement","src":"3247:57:25"},{"nodeType":"YulAssignment","src":"3313:16:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3323:6:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3313:6:25"}]}]},"name":"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2620:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2631:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2643:6:25","type":""}],"src":"2561:774:25"},{"body":{"nodeType":"YulBlock","src":"3445:437:25","statements":[{"body":{"nodeType":"YulBlock","src":"3491:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3500:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3503:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3493:6:25"},"nodeType":"YulFunctionCall","src":"3493:12:25"},"nodeType":"YulExpressionStatement","src":"3493:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3466:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3475:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3462:3:25"},"nodeType":"YulFunctionCall","src":"3462:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3487:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3458:3:25"},"nodeType":"YulFunctionCall","src":"3458:32:25"},"nodeType":"YulIf","src":"3455:52:25"},{"nodeType":"YulVariableDeclaration","src":"3516:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3529:12:25"},"nodeType":"YulFunctionCall","src":"3529:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3520:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3585:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"3561:23:25"},"nodeType":"YulFunctionCall","src":"3561:30:25"},"nodeType":"YulExpressionStatement","src":"3561:30:25"},{"nodeType":"YulAssignment","src":"3600:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"3610:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3600:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3624:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3655:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3666:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3651:3:25"},"nodeType":"YulFunctionCall","src":"3651:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3638:12:25"},"nodeType":"YulFunctionCall","src":"3638:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3628:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3713:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3722:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3725:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3715:6:25"},"nodeType":"YulFunctionCall","src":"3715:12:25"},"nodeType":"YulExpressionStatement","src":"3715:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3693:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3682:2:25"},"nodeType":"YulFunctionCall","src":"3682:30:25"},"nodeType":"YulIf","src":"3679:50:25"},{"nodeType":"YulVariableDeclaration","src":"3738:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3794:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3805:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3790:3:25"},"nodeType":"YulFunctionCall","src":"3790:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3814:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3764:25:25"},"nodeType":"YulFunctionCall","src":"3764:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"3742:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"3752:8:25","type":""}]},{"nodeType":"YulAssignment","src":"3831:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3841:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3831:6:25"}]},{"nodeType":"YulAssignment","src":"3858:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3868:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3858:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3395:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3406:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3418:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3426:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3434:6:25","type":""}],"src":"3340:542:25"},{"body":{"nodeType":"YulBlock","src":"3982:92:25","statements":[{"nodeType":"YulAssignment","src":"3992:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4004:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4015:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3992:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4034:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4059:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4052:6:25"},"nodeType":"YulFunctionCall","src":"4052:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4027:6:25"},"nodeType":"YulFunctionCall","src":"4027:41:25"},"nodeType":"YulExpressionStatement","src":"4027:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3951:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3962:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3973:4:25","type":""}],"src":"3887:187:25"},{"body":{"nodeType":"YulBlock","src":"4136:129:25","statements":[{"body":{"nodeType":"YulBlock","src":"4180:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4182:16:25"},"nodeType":"YulFunctionCall","src":"4182:18:25"},"nodeType":"YulExpressionStatement","src":"4182:18:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4152:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4160:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4149:2:25"},"nodeType":"YulFunctionCall","src":"4149:30:25"},"nodeType":"YulIf","src":"4146:56:25"},{"nodeType":"YulAssignment","src":"4211:48:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4231:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4239:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4227:3:25"},"nodeType":"YulFunctionCall","src":"4227:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4223:3:25"},"nodeType":"YulFunctionCall","src":"4223:29:25"},{"kind":"number","nodeType":"YulLiteral","src":"4254:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4219:3:25"},"nodeType":"YulFunctionCall","src":"4219:40:25"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"4211:4:25"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"4116:6:25","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"4127:4:25","type":""}],"src":"4079:186:25"},{"body":{"nodeType":"YulBlock","src":"4381:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"4427:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4436:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4439:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4429:6:25"},"nodeType":"YulFunctionCall","src":"4429:12:25"},"nodeType":"YulExpressionStatement","src":"4429:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4402:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4411:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4398:3:25"},"nodeType":"YulFunctionCall","src":"4398:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4423:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4394:3:25"},"nodeType":"YulFunctionCall","src":"4394:32:25"},"nodeType":"YulIf","src":"4391:52:25"},{"nodeType":"YulVariableDeclaration","src":"4452:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4478:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4465:12:25"},"nodeType":"YulFunctionCall","src":"4465:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4456:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4521:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"4497:23:25"},"nodeType":"YulFunctionCall","src":"4497:30:25"},"nodeType":"YulExpressionStatement","src":"4497:30:25"},{"nodeType":"YulAssignment","src":"4536:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"4546:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4536:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"4560:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4591:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4602:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4587:3:25"},"nodeType":"YulFunctionCall","src":"4587:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4574:12:25"},"nodeType":"YulFunctionCall","src":"4574:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4564:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4649:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4658:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4661:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4651:6:25"},"nodeType":"YulFunctionCall","src":"4651:12:25"},"nodeType":"YulExpressionStatement","src":"4651:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4621:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4629:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4618:2:25"},"nodeType":"YulFunctionCall","src":"4618:30:25"},"nodeType":"YulIf","src":"4615:50:25"},{"nodeType":"YulVariableDeclaration","src":"4674:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"4699:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:25"},"nodeType":"YulFunctionCall","src":"4684:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4678:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4754:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4763:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4766:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4756:6:25"},"nodeType":"YulFunctionCall","src":"4756:12:25"},"nodeType":"YulExpressionStatement","src":"4756:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4733:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"4737:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4729:3:25"},"nodeType":"YulFunctionCall","src":"4729:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4744:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4725:3:25"},"nodeType":"YulFunctionCall","src":"4725:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4718:6:25"},"nodeType":"YulFunctionCall","src":"4718:35:25"},"nodeType":"YulIf","src":"4715:55:25"},{"nodeType":"YulVariableDeclaration","src":"4779:26:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4802:2:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4789:12:25"},"nodeType":"YulFunctionCall","src":"4789:16:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4783:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4814:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4871:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"4843:27:25"},"nodeType":"YulFunctionCall","src":"4843:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4827:15:25"},"nodeType":"YulFunctionCall","src":"4827:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"4818:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4891:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"4898:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4884:6:25"},"nodeType":"YulFunctionCall","src":"4884:17:25"},"nodeType":"YulExpressionStatement","src":"4884:17:25"},{"body":{"nodeType":"YulBlock","src":"4947:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4956:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4959:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4949:6:25"},"nodeType":"YulFunctionCall","src":"4949:12:25"},"nodeType":"YulExpressionStatement","src":"4949:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4924:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"4928:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4920:3:25"},"nodeType":"YulFunctionCall","src":"4920:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4933:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4916:3:25"},"nodeType":"YulFunctionCall","src":"4916:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4938:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4913:2:25"},"nodeType":"YulFunctionCall","src":"4913:33:25"},"nodeType":"YulIf","src":"4910:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4989:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"4996:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4985:3:25"},"nodeType":"YulFunctionCall","src":"4985:14:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5005:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"5009:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5001:3:25"},"nodeType":"YulFunctionCall","src":"5001:11:25"},{"name":"_2","nodeType":"YulIdentifier","src":"5014:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4972:12:25"},"nodeType":"YulFunctionCall","src":"4972:45:25"},"nodeType":"YulExpressionStatement","src":"4972:45:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5041:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"5048:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5037:3:25"},"nodeType":"YulFunctionCall","src":"5037:14:25"},{"kind":"number","nodeType":"YulLiteral","src":"5053:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5033:3:25"},"nodeType":"YulFunctionCall","src":"5033:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5058:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5026:6:25"},"nodeType":"YulFunctionCall","src":"5026:34:25"},"nodeType":"YulExpressionStatement","src":"5026:34:25"},{"nodeType":"YulAssignment","src":"5069:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"5079:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5069:6:25"}]},{"nodeType":"YulAssignment","src":"5093:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5136:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5121:3:25"},"nodeType":"YulFunctionCall","src":"5121:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5103:17:25"},"nodeType":"YulFunctionCall","src":"5103:37:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5093:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4331:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4342:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4354:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4362:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4370:6:25","type":""}],"src":"4270:876:25"},{"body":{"nodeType":"YulBlock","src":"5252:76:25","statements":[{"nodeType":"YulAssignment","src":"5262:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5274:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5285:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5270:3:25"},"nodeType":"YulFunctionCall","src":"5270:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5262:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5304:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"5315:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5297:6:25"},"nodeType":"YulFunctionCall","src":"5297:25:25"},"nodeType":"YulExpressionStatement","src":"5297:25:25"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5221:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5232:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5243:4:25","type":""}],"src":"5151:177:25"},{"body":{"nodeType":"YulBlock","src":"5378:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"5442:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5451:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5454:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5444:6:25"},"nodeType":"YulFunctionCall","src":"5444:12:25"},"nodeType":"YulExpressionStatement","src":"5444:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5401:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5412:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5427:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5432:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5423:3:25"},"nodeType":"YulFunctionCall","src":"5423:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"5436:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5419:3:25"},"nodeType":"YulFunctionCall","src":"5419:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5408:3:25"},"nodeType":"YulFunctionCall","src":"5408:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5398:2:25"},"nodeType":"YulFunctionCall","src":"5398:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5391:6:25"},"nodeType":"YulFunctionCall","src":"5391:50:25"},"nodeType":"YulIf","src":"5388:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5367:5:25","type":""}],"src":"5333:131:25"},{"body":{"nodeType":"YulBlock","src":"5539:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"5585:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5594:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5597:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5587:6:25"},"nodeType":"YulFunctionCall","src":"5587:12:25"},"nodeType":"YulExpressionStatement","src":"5587:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5560:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5569:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5556:3:25"},"nodeType":"YulFunctionCall","src":"5556:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5581:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5552:3:25"},"nodeType":"YulFunctionCall","src":"5552:32:25"},"nodeType":"YulIf","src":"5549:52:25"},{"nodeType":"YulVariableDeclaration","src":"5610:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5636:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5623:12:25"},"nodeType":"YulFunctionCall","src":"5623:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5614:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5680:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5655:24:25"},"nodeType":"YulFunctionCall","src":"5655:31:25"},"nodeType":"YulExpressionStatement","src":"5655:31:25"},{"nodeType":"YulAssignment","src":"5695:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5705:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5695:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5505:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5516:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5528:6:25","type":""}],"src":"5469:247:25"},{"body":{"nodeType":"YulBlock","src":"5853:102:25","statements":[{"nodeType":"YulAssignment","src":"5863:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5886:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5871:3:25"},"nodeType":"YulFunctionCall","src":"5871:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5863:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5905:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5920:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5936:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5941:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5932:3:25"},"nodeType":"YulFunctionCall","src":"5932:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"5945:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5928:3:25"},"nodeType":"YulFunctionCall","src":"5928:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5916:3:25"},"nodeType":"YulFunctionCall","src":"5916:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5898:6:25"},"nodeType":"YulFunctionCall","src":"5898:51:25"},"nodeType":"YulExpressionStatement","src":"5898:51:25"}]},"name":"abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5822:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5833:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5844:4:25","type":""}],"src":"5721:234:25"},{"body":{"nodeType":"YulBlock","src":"6013:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"6023:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6032:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6027:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6092:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6117:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"6122:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6113:3:25"},"nodeType":"YulFunctionCall","src":"6113:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6136:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"6141:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6132:3:25"},"nodeType":"YulFunctionCall","src":"6132:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6126:5:25"},"nodeType":"YulFunctionCall","src":"6126:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6106:6:25"},"nodeType":"YulFunctionCall","src":"6106:39:25"},"nodeType":"YulExpressionStatement","src":"6106:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6053:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"6056:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6050:2:25"},"nodeType":"YulFunctionCall","src":"6050:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6064:19:25","statements":[{"nodeType":"YulAssignment","src":"6066:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6075:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"6078:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6071:3:25"},"nodeType":"YulFunctionCall","src":"6071:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6066:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"6046:3:25","statements":[]},"src":"6042:113:25"},{"body":{"nodeType":"YulBlock","src":"6181:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6194:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"6199:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6190:3:25"},"nodeType":"YulFunctionCall","src":"6190:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"6208:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6183:6:25"},"nodeType":"YulFunctionCall","src":"6183:27:25"},"nodeType":"YulExpressionStatement","src":"6183:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6170:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"6173:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6167:2:25"},"nodeType":"YulFunctionCall","src":"6167:13:25"},"nodeType":"YulIf","src":"6164:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"5991:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"5996:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"6001:6:25","type":""}],"src":"5960:258:25"},{"body":{"nodeType":"YulBlock","src":"6272:208:25","statements":[{"nodeType":"YulVariableDeclaration","src":"6282:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6302:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6296:5:25"},"nodeType":"YulFunctionCall","src":"6296:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6286:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6324:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"6329:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6317:6:25"},"nodeType":"YulFunctionCall","src":"6317:19:25"},"nodeType":"YulExpressionStatement","src":"6317:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6371:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"6378:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6367:3:25"},"nodeType":"YulFunctionCall","src":"6367:16:25"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6389:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"6394:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6385:3:25"},"nodeType":"YulFunctionCall","src":"6385:14:25"},{"name":"length","nodeType":"YulIdentifier","src":"6401:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6345:21:25"},"nodeType":"YulFunctionCall","src":"6345:63:25"},"nodeType":"YulExpressionStatement","src":"6345:63:25"},{"nodeType":"YulAssignment","src":"6417:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6432:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6445:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6453:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6441:3:25"},"nodeType":"YulFunctionCall","src":"6441:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6462:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6458:3:25"},"nodeType":"YulFunctionCall","src":"6458:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6437:3:25"},"nodeType":"YulFunctionCall","src":"6437:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6428:3:25"},"nodeType":"YulFunctionCall","src":"6428:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"6469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6424:3:25"},"nodeType":"YulFunctionCall","src":"6424:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6417:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6249:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6256:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6264:3:25","type":""}],"src":"6223:257:25"},{"body":{"nodeType":"YulBlock","src":"6604:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6621:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6632:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6614:6:25"},"nodeType":"YulFunctionCall","src":"6614:21:25"},"nodeType":"YulExpressionStatement","src":"6614:21:25"},{"nodeType":"YulAssignment","src":"6644:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6669:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6681:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6692:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6677:3:25"},"nodeType":"YulFunctionCall","src":"6677:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6652:16:25"},"nodeType":"YulFunctionCall","src":"6652:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6644:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6573:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6584:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6595:4:25","type":""}],"src":"6485:217:25"},{"body":{"nodeType":"YulBlock","src":"6792:299:25","statements":[{"body":{"nodeType":"YulBlock","src":"6838:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6847:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6850:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6840:6:25"},"nodeType":"YulFunctionCall","src":"6840:12:25"},"nodeType":"YulExpressionStatement","src":"6840:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6813:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"6822:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6809:3:25"},"nodeType":"YulFunctionCall","src":"6809:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"6834:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6805:3:25"},"nodeType":"YulFunctionCall","src":"6805:32:25"},"nodeType":"YulIf","src":"6802:52:25"},{"nodeType":"YulVariableDeclaration","src":"6863:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6889:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6876:12:25"},"nodeType":"YulFunctionCall","src":"6876:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6867:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6932:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"6908:23:25"},"nodeType":"YulFunctionCall","src":"6908:30:25"},"nodeType":"YulExpressionStatement","src":"6908:30:25"},{"nodeType":"YulAssignment","src":"6947:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6957:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6947:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6971:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7003:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7014:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6999:3:25"},"nodeType":"YulFunctionCall","src":"6999:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6986:12:25"},"nodeType":"YulFunctionCall","src":"6986:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6975:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7051:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7027:23:25"},"nodeType":"YulFunctionCall","src":"7027:32:25"},"nodeType":"YulExpressionStatement","src":"7027:32:25"},{"nodeType":"YulAssignment","src":"7068:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7078:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7068:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6750:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6761:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6773:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6781:6:25","type":""}],"src":"6707:384:25"},{"body":{"nodeType":"YulBlock","src":"7197:102:25","statements":[{"nodeType":"YulAssignment","src":"7207:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7219:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7230:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7215:3:25"},"nodeType":"YulFunctionCall","src":"7215:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7207:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7249:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7264:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7280:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7285:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7276:3:25"},"nodeType":"YulFunctionCall","src":"7276:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7289:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7272:3:25"},"nodeType":"YulFunctionCall","src":"7272:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7260:3:25"},"nodeType":"YulFunctionCall","src":"7260:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7242:6:25"},"nodeType":"YulFunctionCall","src":"7242:51:25"},"nodeType":"YulExpressionStatement","src":"7242:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7166:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7177:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7188:4:25","type":""}],"src":"7096:203:25"},{"body":{"nodeType":"YulBlock","src":"7431:102:25","statements":[{"nodeType":"YulAssignment","src":"7441:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7449:3:25"},"nodeType":"YulFunctionCall","src":"7449:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7441:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7483:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7498:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7514:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7519:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7510:3:25"},"nodeType":"YulFunctionCall","src":"7510:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7523:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7506:3:25"},"nodeType":"YulFunctionCall","src":"7506:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7494:3:25"},"nodeType":"YulFunctionCall","src":"7494:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7476:6:25"},"nodeType":"YulFunctionCall","src":"7476:51:25"},"nodeType":"YulExpressionStatement","src":"7476:51:25"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7400:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7411:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7422:4:25","type":""}],"src":"7304:229:25"},{"body":{"nodeType":"YulBlock","src":"7676:612:25","statements":[{"body":{"nodeType":"YulBlock","src":"7723:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7732:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7735:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7725:6:25"},"nodeType":"YulFunctionCall","src":"7725:12:25"},"nodeType":"YulExpressionStatement","src":"7725:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7697:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7706:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7693:3:25"},"nodeType":"YulFunctionCall","src":"7693:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7718:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7689:3:25"},"nodeType":"YulFunctionCall","src":"7689:33:25"},"nodeType":"YulIf","src":"7686:53:25"},{"nodeType":"YulVariableDeclaration","src":"7748:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7774:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7761:12:25"},"nodeType":"YulFunctionCall","src":"7761:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7752:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7817:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7793:23:25"},"nodeType":"YulFunctionCall","src":"7793:30:25"},"nodeType":"YulExpressionStatement","src":"7793:30:25"},{"nodeType":"YulAssignment","src":"7832:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7842:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7832:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7856:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7888:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7899:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7884:3:25"},"nodeType":"YulFunctionCall","src":"7884:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7871:12:25"},"nodeType":"YulFunctionCall","src":"7871:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7860:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7936:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7912:23:25"},"nodeType":"YulFunctionCall","src":"7912:32:25"},"nodeType":"YulExpressionStatement","src":"7912:32:25"},{"nodeType":"YulAssignment","src":"7953:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7963:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7953:6:25"}]},{"nodeType":"YulAssignment","src":"7979:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8006:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8017:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8002:3:25"},"nodeType":"YulFunctionCall","src":"8002:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7989:12:25"},"nodeType":"YulFunctionCall","src":"7989:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7979:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"8030:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8061:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8072:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8057:3:25"},"nodeType":"YulFunctionCall","src":"8057:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8044:12:25"},"nodeType":"YulFunctionCall","src":"8044:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8034:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"8119:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8128:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8131:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8121:6:25"},"nodeType":"YulFunctionCall","src":"8121:12:25"},"nodeType":"YulExpressionStatement","src":"8121:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8091:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8099:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8088:2:25"},"nodeType":"YulFunctionCall","src":"8088:30:25"},"nodeType":"YulIf","src":"8085:50:25"},{"nodeType":"YulVariableDeclaration","src":"8144:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8200:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"8211:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8196:3:25"},"nodeType":"YulFunctionCall","src":"8196:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8220:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"8170:25:25"},"nodeType":"YulFunctionCall","src":"8170:58:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"8148:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"8158:8:25","type":""}]},{"nodeType":"YulAssignment","src":"8237:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"8247:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8237:6:25"}]},{"nodeType":"YulAssignment","src":"8264:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"8274:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8264:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7610:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7621:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7633:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7641:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7649:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7657:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7665:6:25","type":""}],"src":"7538:750:25"},{"body":{"nodeType":"YulBlock","src":"8395:350:25","statements":[{"body":{"nodeType":"YulBlock","src":"8441:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8450:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8453:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8443:6:25"},"nodeType":"YulFunctionCall","src":"8443:12:25"},"nodeType":"YulExpressionStatement","src":"8443:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8416:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8425:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8412:3:25"},"nodeType":"YulFunctionCall","src":"8412:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8437:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8408:3:25"},"nodeType":"YulFunctionCall","src":"8408:32:25"},"nodeType":"YulIf","src":"8405:52:25"},{"nodeType":"YulVariableDeclaration","src":"8466:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8492:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8479:12:25"},"nodeType":"YulFunctionCall","src":"8479:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8470:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8535:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"8511:23:25"},"nodeType":"YulFunctionCall","src":"8511:30:25"},"nodeType":"YulExpressionStatement","src":"8511:30:25"},{"nodeType":"YulAssignment","src":"8550:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"8560:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8550:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"8574:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8606:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8617:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8602:3:25"},"nodeType":"YulFunctionCall","src":"8602:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8589:12:25"},"nodeType":"YulFunctionCall","src":"8589:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8578:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8654:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"8630:23:25"},"nodeType":"YulFunctionCall","src":"8630:32:25"},"nodeType":"YulExpressionStatement","src":"8630:32:25"},{"nodeType":"YulAssignment","src":"8671:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"8681:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8671:6:25"}]},{"nodeType":"YulAssignment","src":"8697:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8724:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8735:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8720:3:25"},"nodeType":"YulFunctionCall","src":"8720:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8707:12:25"},"nodeType":"YulFunctionCall","src":"8707:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8697:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8345:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8356:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8368:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8376:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8384:6:25","type":""}],"src":"8293:452:25"},{"body":{"nodeType":"YulBlock","src":"8931:238:25","statements":[{"nodeType":"YulAssignment","src":"8941:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8953:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8964:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8949:3:25"},"nodeType":"YulFunctionCall","src":"8949:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8941:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8984:9:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9006:2:25","type":"","value":"15"},{"name":"value0","nodeType":"YulIdentifier","src":"9010:6:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"8995:10:25"},"nodeType":"YulFunctionCall","src":"8995:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8977:6:25"},"nodeType":"YulFunctionCall","src":"8977:41:25"},"nodeType":"YulExpressionStatement","src":"8977:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9038:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9049:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9034:3:25"},"nodeType":"YulFunctionCall","src":"9034:18:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9065:2:25","type":"","value":"15"},{"name":"value1","nodeType":"YulIdentifier","src":"9069:6:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"9054:10:25"},"nodeType":"YulFunctionCall","src":"9054:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9027:6:25"},"nodeType":"YulFunctionCall","src":"9027:50:25"},"nodeType":"YulExpressionStatement","src":"9027:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9097:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9108:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9093:3:25"},"nodeType":"YulFunctionCall","src":"9093:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"9113:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9086:6:25"},"nodeType":"YulFunctionCall","src":"9086:34:25"},"nodeType":"YulExpressionStatement","src":"9086:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9140:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9151:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9136:3:25"},"nodeType":"YulFunctionCall","src":"9136:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"9156:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9129:6:25"},"nodeType":"YulFunctionCall","src":"9129:34:25"},"nodeType":"YulExpressionStatement","src":"9129:34:25"}]},"name":"abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8876:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8887:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8895:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8903:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8911:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8922:4:25","type":""}],"src":"8750:419:25"},{"body":{"nodeType":"YulBlock","src":"9293:475:25","statements":[{"body":{"nodeType":"YulBlock","src":"9340:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9349:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9352:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9342:6:25"},"nodeType":"YulFunctionCall","src":"9342:12:25"},"nodeType":"YulExpressionStatement","src":"9342:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9314:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9323:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9310:3:25"},"nodeType":"YulFunctionCall","src":"9310:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9335:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9306:3:25"},"nodeType":"YulFunctionCall","src":"9306:33:25"},"nodeType":"YulIf","src":"9303:53:25"},{"nodeType":"YulVariableDeclaration","src":"9365:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9391:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9378:12:25"},"nodeType":"YulFunctionCall","src":"9378:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9369:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9434:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"9410:23:25"},"nodeType":"YulFunctionCall","src":"9410:30:25"},"nodeType":"YulExpressionStatement","src":"9410:30:25"},{"nodeType":"YulAssignment","src":"9449:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"9459:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9449:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9473:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9505:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9516:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9501:3:25"},"nodeType":"YulFunctionCall","src":"9501:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9488:12:25"},"nodeType":"YulFunctionCall","src":"9488:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"9477:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"9553:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"9529:23:25"},"nodeType":"YulFunctionCall","src":"9529:32:25"},"nodeType":"YulExpressionStatement","src":"9529:32:25"},{"nodeType":"YulAssignment","src":"9570:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"9580:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9570:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9596:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9628:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9639:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9624:3:25"},"nodeType":"YulFunctionCall","src":"9624:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9611:12:25"},"nodeType":"YulFunctionCall","src":"9611:32:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"9600:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"9677:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"9652:24:25"},"nodeType":"YulFunctionCall","src":"9652:33:25"},"nodeType":"YulExpressionStatement","src":"9652:33:25"},{"nodeType":"YulAssignment","src":"9694:17:25","value":{"name":"value_2","nodeType":"YulIdentifier","src":"9704:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9694:6:25"}]},{"nodeType":"YulAssignment","src":"9720:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9747:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9758:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9743:3:25"},"nodeType":"YulFunctionCall","src":"9743:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9730:12:25"},"nodeType":"YulFunctionCall","src":"9730:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9720:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9235:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9246:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9258:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9266:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9274:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9282:6:25","type":""}],"src":"9174:594:25"},{"body":{"nodeType":"YulBlock","src":"9947:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9964:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9975:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9957:6:25"},"nodeType":"YulFunctionCall","src":"9957:21:25"},"nodeType":"YulExpressionStatement","src":"9957:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10009:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9994:3:25"},"nodeType":"YulFunctionCall","src":"9994:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"10014:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9987:6:25"},"nodeType":"YulFunctionCall","src":"9987:30:25"},"nodeType":"YulExpressionStatement","src":"9987:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10037:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10048:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10033:3:25"},"nodeType":"YulFunctionCall","src":"10033:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"10053:32:25","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10026:6:25"},"nodeType":"YulFunctionCall","src":"10026:60:25"},"nodeType":"YulExpressionStatement","src":"10026:60:25"},{"nodeType":"YulAssignment","src":"10095:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10107:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10118:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10103:3:25"},"nodeType":"YulFunctionCall","src":"10103:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10095:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9924:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9938:4:25","type":""}],"src":"9773:354:25"},{"body":{"nodeType":"YulBlock","src":"10187:325:25","statements":[{"nodeType":"YulAssignment","src":"10197:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10211:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"10214:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10207:3:25"},"nodeType":"YulFunctionCall","src":"10207:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10197:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10228:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"10258:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"10264:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10254:3:25"},"nodeType":"YulFunctionCall","src":"10254:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"10232:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10305:31:25","statements":[{"nodeType":"YulAssignment","src":"10307:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10321:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10329:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10317:3:25"},"nodeType":"YulFunctionCall","src":"10317:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10307:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10285:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10278:6:25"},"nodeType":"YulFunctionCall","src":"10278:26:25"},"nodeType":"YulIf","src":"10275:61:25"},{"body":{"nodeType":"YulBlock","src":"10395:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10416:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10423:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10428:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10419:3:25"},"nodeType":"YulFunctionCall","src":"10419:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10409:6:25"},"nodeType":"YulFunctionCall","src":"10409:31:25"},"nodeType":"YulExpressionStatement","src":"10409:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10460:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10463:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10453:6:25"},"nodeType":"YulFunctionCall","src":"10453:15:25"},"nodeType":"YulExpressionStatement","src":"10453:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10488:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10491:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10481:6:25"},"nodeType":"YulFunctionCall","src":"10481:15:25"},"nodeType":"YulExpressionStatement","src":"10481:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10351:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10374:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10382:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10371:2:25"},"nodeType":"YulFunctionCall","src":"10371:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10348:2:25"},"nodeType":"YulFunctionCall","src":"10348:38:25"},"nodeType":"YulIf","src":"10345:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10167:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10176:6:25","type":""}],"src":"10132:380:25"},{"body":{"nodeType":"YulBlock","src":"10664:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10687:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"10692:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"10700:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"10674:12:25"},"nodeType":"YulFunctionCall","src":"10674:33:25"},"nodeType":"YulExpressionStatement","src":"10674:33:25"},{"nodeType":"YulVariableDeclaration","src":"10716:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10730:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"10735:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10726:3:25"},"nodeType":"YulFunctionCall","src":"10726:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10758:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"10762:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10751:6:25"},"nodeType":"YulFunctionCall","src":"10751:13:25"},"nodeType":"YulExpressionStatement","src":"10751:13:25"},{"nodeType":"YulAssignment","src":"10773:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"10780:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10773:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10632:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10637:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10645:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10656:3:25","type":""}],"src":"10517:271:25"},{"body":{"nodeType":"YulBlock","src":"10967:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10977:6:25"},"nodeType":"YulFunctionCall","src":"10977:21:25"},"nodeType":"YulExpressionStatement","src":"10977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11014:3:25"},"nodeType":"YulFunctionCall","src":"11014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11034:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11007:6:25"},"nodeType":"YulFunctionCall","src":"11007:30:25"},"nodeType":"YulExpressionStatement","src":"11007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11053:3:25"},"nodeType":"YulFunctionCall","src":"11053:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nodeType":"YulLiteral","src":"11073:34:25","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11046:6:25"},"nodeType":"YulFunctionCall","src":"11046:62:25"},"nodeType":"YulExpressionStatement","src":"11046:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11124:3:25"},"nodeType":"YulFunctionCall","src":"11124:18:25"},{"hexValue":"6e7472616374","kind":"string","nodeType":"YulLiteral","src":"11144:8:25","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11117:6:25"},"nodeType":"YulFunctionCall","src":"11117:36:25"},"nodeType":"YulExpressionStatement","src":"11117:36:25"},{"nodeType":"YulAssignment","src":"11162:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11174:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11185:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11170:3:25"},"nodeType":"YulFunctionCall","src":"11170:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11162:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10958:4:25","type":""}],"src":"10793:402:25"},{"body":{"nodeType":"YulBlock","src":"11299:89:25","statements":[{"nodeType":"YulAssignment","src":"11309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11317:3:25"},"nodeType":"YulFunctionCall","src":"11317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11351:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11366:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11374:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11362:3:25"},"nodeType":"YulFunctionCall","src":"11362:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11344:6:25"},"nodeType":"YulFunctionCall","src":"11344:38:25"},"nodeType":"YulExpressionStatement","src":"11344:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11290:4:25","type":""}],"src":"11200:188:25"},{"body":{"nodeType":"YulBlock","src":"11459:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11476:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"11481:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11469:6:25"},"nodeType":"YulFunctionCall","src":"11469:19:25"},"nodeType":"YulExpressionStatement","src":"11469:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11514:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"11519:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11510:3:25"},"nodeType":"YulFunctionCall","src":"11510:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"11526:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"11533:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11497:12:25"},"nodeType":"YulFunctionCall","src":"11497:43:25"},"nodeType":"YulExpressionStatement","src":"11497:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11564:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"11569:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11560:3:25"},"nodeType":"YulFunctionCall","src":"11560:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"11578:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11556:3:25"},"nodeType":"YulFunctionCall","src":"11556:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"11585:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11549:6:25"},"nodeType":"YulFunctionCall","src":"11549:38:25"},"nodeType":"YulExpressionStatement","src":"11549:38:25"},{"nodeType":"YulAssignment","src":"11596:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11611:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11624:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11632:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11620:3:25"},"nodeType":"YulFunctionCall","src":"11620:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11641:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11637:3:25"},"nodeType":"YulFunctionCall","src":"11637:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11616:3:25"},"nodeType":"YulFunctionCall","src":"11616:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11607:3:25"},"nodeType":"YulFunctionCall","src":"11607:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"11648:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11603:3:25"},"nodeType":"YulFunctionCall","src":"11603:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11596:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"11428:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"11435:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11443:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11451:3:25","type":""}],"src":"11393:266:25"},{"body":{"nodeType":"YulBlock","src":"11819:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11836:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11851:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11859:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11847:3:25"},"nodeType":"YulFunctionCall","src":"11847:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11829:6:25"},"nodeType":"YulFunctionCall","src":"11829:38:25"},"nodeType":"YulExpressionStatement","src":"11829:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11887:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11898:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11883:3:25"},"nodeType":"YulFunctionCall","src":"11883:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11903:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11876:6:25"},"nodeType":"YulFunctionCall","src":"11876:30:25"},"nodeType":"YulExpressionStatement","src":"11876:30:25"},{"nodeType":"YulAssignment","src":"11915:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11949:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"11957:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11969:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11980:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11965:3:25"},"nodeType":"YulFunctionCall","src":"11965:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"11923:25:25"},"nodeType":"YulFunctionCall","src":"11923:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11915:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11772:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11783:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11791:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11799:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11810:4:25","type":""}],"src":"11664:326:25"},{"body":{"nodeType":"YulBlock","src":"12169:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12186:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12197:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12179:6:25"},"nodeType":"YulFunctionCall","src":"12179:21:25"},"nodeType":"YulExpressionStatement","src":"12179:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12220:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12231:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12216:3:25"},"nodeType":"YulFunctionCall","src":"12216:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12209:6:25"},"nodeType":"YulFunctionCall","src":"12209:30:25"},"nodeType":"YulExpressionStatement","src":"12209:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12259:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12270:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12255:3:25"},"nodeType":"YulFunctionCall","src":"12255:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nodeType":"YulLiteral","src":"12275:34:25","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12248:6:25"},"nodeType":"YulFunctionCall","src":"12248:62:25"},"nodeType":"YulExpressionStatement","src":"12248:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12330:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12341:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12326:3:25"},"nodeType":"YulFunctionCall","src":"12326:18:25"},{"hexValue":"204c7a417070","kind":"string","nodeType":"YulLiteral","src":"12346:8:25","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12319:6:25"},"nodeType":"YulFunctionCall","src":"12319:36:25"},"nodeType":"YulExpressionStatement","src":"12319:36:25"},{"nodeType":"YulAssignment","src":"12364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12372:3:25"},"nodeType":"YulFunctionCall","src":"12372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12146:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12160:4:25","type":""}],"src":"11995:402:25"},{"body":{"nodeType":"YulBlock","src":"12576:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12586:6:25"},"nodeType":"YulFunctionCall","src":"12586:21:25"},"nodeType":"YulExpressionStatement","src":"12586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12623:3:25"},"nodeType":"YulFunctionCall","src":"12623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12643:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12616:6:25"},"nodeType":"YulFunctionCall","src":"12616:30:25"},"nodeType":"YulExpressionStatement","src":"12616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12662:3:25"},"nodeType":"YulFunctionCall","src":"12662:18:25"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nodeType":"YulLiteral","src":"12682:31:25","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12655:6:25"},"nodeType":"YulFunctionCall","src":"12655:59:25"},"nodeType":"YulExpressionStatement","src":"12655:59:25"},{"nodeType":"YulAssignment","src":"12723:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12735:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12746:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12731:3:25"},"nodeType":"YulFunctionCall","src":"12731:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12723:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12567:4:25","type":""}],"src":"12402:353:25"},{"body":{"nodeType":"YulBlock","src":"12792:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12809:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12816:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12821:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12812:3:25"},"nodeType":"YulFunctionCall","src":"12812:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12802:6:25"},"nodeType":"YulFunctionCall","src":"12802:31:25"},"nodeType":"YulExpressionStatement","src":"12802:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12849:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12852:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12842:6:25"},"nodeType":"YulFunctionCall","src":"12842:15:25"},"nodeType":"YulExpressionStatement","src":"12842:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12873:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12876:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12866:6:25"},"nodeType":"YulFunctionCall","src":"12866:15:25"},"nodeType":"YulExpressionStatement","src":"12866:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12760:127:25"},{"body":{"nodeType":"YulBlock","src":"12941:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"12963:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12965:16:25"},"nodeType":"YulFunctionCall","src":"12965:18:25"},"nodeType":"YulExpressionStatement","src":"12965:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12957:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"12960:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12954:2:25"},"nodeType":"YulFunctionCall","src":"12954:8:25"},"nodeType":"YulIf","src":"12951:34:25"},{"nodeType":"YulAssignment","src":"12994:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13006:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"13009:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13002:3:25"},"nodeType":"YulFunctionCall","src":"13002:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12994:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12923:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"12926:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"12932:4:25","type":""}],"src":"12892:125:25"},{"body":{"nodeType":"YulBlock","src":"13197:207:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13220:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"13225:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"13233:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"13207:12:25"},"nodeType":"YulFunctionCall","src":"13207:33:25"},"nodeType":"YulExpressionStatement","src":"13207:33:25"},{"nodeType":"YulVariableDeclaration","src":"13249:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13263:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"13268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13259:3:25"},"nodeType":"YulFunctionCall","src":"13259:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13253:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13291:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"13295:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13284:6:25"},"nodeType":"YulFunctionCall","src":"13284:13:25"},"nodeType":"YulExpressionStatement","src":"13284:13:25"},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13313:2:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13325:2:25","type":"","value":"96"},{"name":"value2","nodeType":"YulIdentifier","src":"13329:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13321:3:25"},"nodeType":"YulFunctionCall","src":"13321:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13342:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13338:3:25"},"nodeType":"YulFunctionCall","src":"13338:31:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13317:3:25"},"nodeType":"YulFunctionCall","src":"13317:53:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13306:6:25"},"nodeType":"YulFunctionCall","src":"13306:65:25"},"nodeType":"YulExpressionStatement","src":"13306:65:25"},{"nodeType":"YulAssignment","src":"13380:18:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13391:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"13395:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13387:3:25"},"nodeType":"YulFunctionCall","src":"13387:11:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13380:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13157:3:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13162:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13170:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13178:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13189:3:25","type":""}],"src":"13022:382:25"},{"body":{"nodeType":"YulBlock","src":"13618:289:25","statements":[{"nodeType":"YulVariableDeclaration","src":"13628:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"13638:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13632:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13660:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13675:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"13683:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13671:3:25"},"nodeType":"YulFunctionCall","src":"13671:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13653:6:25"},"nodeType":"YulFunctionCall","src":"13653:34:25"},"nodeType":"YulExpressionStatement","src":"13653:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13707:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13718:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13703:3:25"},"nodeType":"YulFunctionCall","src":"13703:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13727:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"13735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13723:3:25"},"nodeType":"YulFunctionCall","src":"13723:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13696:6:25"},"nodeType":"YulFunctionCall","src":"13696:43:25"},"nodeType":"YulExpressionStatement","src":"13696:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13759:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13770:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13755:3:25"},"nodeType":"YulFunctionCall","src":"13755:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"13775:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13748:6:25"},"nodeType":"YulFunctionCall","src":"13748:34:25"},"nodeType":"YulExpressionStatement","src":"13748:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13802:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13813:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13798:3:25"},"nodeType":"YulFunctionCall","src":"13798:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13818:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13791:6:25"},"nodeType":"YulFunctionCall","src":"13791:31:25"},"nodeType":"YulExpressionStatement","src":"13791:31:25"},{"nodeType":"YulAssignment","src":"13831:70:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13865:6:25"},{"name":"value4","nodeType":"YulIdentifier","src":"13873:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13885:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13896:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13881:3:25"},"nodeType":"YulFunctionCall","src":"13881:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13839:25:25"},"nodeType":"YulFunctionCall","src":"13839:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13831:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13555:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13566:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13574:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13582:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13590:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13598:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13609:4:25","type":""}],"src":"13409:498:25"},{"body":{"nodeType":"YulBlock","src":"14086:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14103:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14114:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14096:6:25"},"nodeType":"YulFunctionCall","src":"14096:21:25"},"nodeType":"YulExpressionStatement","src":"14096:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14137:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14148:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14133:3:25"},"nodeType":"YulFunctionCall","src":"14133:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14153:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14126:6:25"},"nodeType":"YulFunctionCall","src":"14126:30:25"},"nodeType":"YulExpressionStatement","src":"14126:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14176:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14187:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14172:3:25"},"nodeType":"YulFunctionCall","src":"14172:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nodeType":"YulLiteral","src":"14192:34:25","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14165:6:25"},"nodeType":"YulFunctionCall","src":"14165:62:25"},"nodeType":"YulExpressionStatement","src":"14165:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14247:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14258:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14243:3:25"},"nodeType":"YulFunctionCall","src":"14243:18:25"},{"hexValue":"616765","kind":"string","nodeType":"YulLiteral","src":"14263:5:25","type":"","value":"age"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14236:6:25"},"nodeType":"YulFunctionCall","src":"14236:33:25"},"nodeType":"YulExpressionStatement","src":"14236:33:25"},{"nodeType":"YulAssignment","src":"14278:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14290:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14301:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14286:3:25"},"nodeType":"YulFunctionCall","src":"14286:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14278:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14063:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14077:4:25","type":""}],"src":"13912:399:25"},{"body":{"nodeType":"YulBlock","src":"14490:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14507:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14518:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14500:6:25"},"nodeType":"YulFunctionCall","src":"14500:21:25"},"nodeType":"YulExpressionStatement","src":"14500:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14552:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14537:3:25"},"nodeType":"YulFunctionCall","src":"14537:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14557:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14530:6:25"},"nodeType":"YulFunctionCall","src":"14530:30:25"},"nodeType":"YulExpressionStatement","src":"14530:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14580:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14591:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14576:3:25"},"nodeType":"YulFunctionCall","src":"14576:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nodeType":"YulLiteral","src":"14596:34:25","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14569:6:25"},"nodeType":"YulFunctionCall","src":"14569:62:25"},"nodeType":"YulExpressionStatement","src":"14569:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14662:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14647:3:25"},"nodeType":"YulFunctionCall","src":"14647:18:25"},{"hexValue":"64","kind":"string","nodeType":"YulLiteral","src":"14667:3:25","type":"","value":"d"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14640:6:25"},"nodeType":"YulFunctionCall","src":"14640:31:25"},"nodeType":"YulExpressionStatement","src":"14640:31:25"},{"nodeType":"YulAssignment","src":"14680:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14703:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14688:3:25"},"nodeType":"YulFunctionCall","src":"14688:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14680:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14467:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14481:4:25","type":""}],"src":"14316:397:25"},{"body":{"nodeType":"YulBlock","src":"14927:284:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14944:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14959:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14967:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14955:3:25"},"nodeType":"YulFunctionCall","src":"14955:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14937:6:25"},"nodeType":"YulFunctionCall","src":"14937:38:25"},"nodeType":"YulExpressionStatement","src":"14937:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14995:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15006:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14991:3:25"},"nodeType":"YulFunctionCall","src":"14991:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15011:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14984:6:25"},"nodeType":"YulFunctionCall","src":"14984:31:25"},"nodeType":"YulExpressionStatement","src":"14984:31:25"},{"nodeType":"YulAssignment","src":"15024:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15058:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15066:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15078:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15089:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15074:3:25"},"nodeType":"YulFunctionCall","src":"15074:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15032:25:25"},"nodeType":"YulFunctionCall","src":"15032:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15024:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15125:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15110:3:25"},"nodeType":"YulFunctionCall","src":"15110:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15134:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15130:3:25"},"nodeType":"YulFunctionCall","src":"15130:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15103:6:25"},"nodeType":"YulFunctionCall","src":"15103:59:25"},"nodeType":"YulExpressionStatement","src":"15103:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15182:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15193:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15178:3:25"},"nodeType":"YulFunctionCall","src":"15178:18:25"},{"name":"value4","nodeType":"YulIdentifier","src":"15198:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15171:6:25"},"nodeType":"YulFunctionCall","src":"15171:34:25"},"nodeType":"YulExpressionStatement","src":"15171:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14864:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14875:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14883:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14891:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14899:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14907:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14918:4:25","type":""}],"src":"14718:493:25"},{"body":{"nodeType":"YulBlock","src":"15390:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15407:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15418:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15400:6:25"},"nodeType":"YulFunctionCall","src":"15400:21:25"},"nodeType":"YulExpressionStatement","src":"15400:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15441:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15452:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15437:3:25"},"nodeType":"YulFunctionCall","src":"15437:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15457:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15430:6:25"},"nodeType":"YulFunctionCall","src":"15430:30:25"},"nodeType":"YulExpressionStatement","src":"15430:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15480:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15491:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15476:3:25"},"nodeType":"YulFunctionCall","src":"15476:18:25"},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","kind":"string","nodeType":"YulLiteral","src":"15496:23:25","type":"","value":"LzApp: invalid minGas"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15469:6:25"},"nodeType":"YulFunctionCall","src":"15469:51:25"},"nodeType":"YulExpressionStatement","src":"15469:51:25"},{"nodeType":"YulAssignment","src":"15529:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15552:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15537:3:25"},"nodeType":"YulFunctionCall","src":"15537:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15529:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15367:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15381:4:25","type":""}],"src":"15216:345:25"},{"body":{"nodeType":"YulBlock","src":"15719:205:25","statements":[{"nodeType":"YulAssignment","src":"15729:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15741:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15752:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15737:3:25"},"nodeType":"YulFunctionCall","src":"15737:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15729:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"15764:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"15774:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15768:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15796:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15811:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"15819:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15807:3:25"},"nodeType":"YulFunctionCall","src":"15807:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15789:6:25"},"nodeType":"YulFunctionCall","src":"15789:34:25"},"nodeType":"YulExpressionStatement","src":"15789:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15843:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15854:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15839:3:25"},"nodeType":"YulFunctionCall","src":"15839:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15863:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"15871:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15859:3:25"},"nodeType":"YulFunctionCall","src":"15859:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15832:6:25"},"nodeType":"YulFunctionCall","src":"15832:43:25"},"nodeType":"YulExpressionStatement","src":"15832:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15906:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15891:3:25"},"nodeType":"YulFunctionCall","src":"15891:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15911:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15884:6:25"},"nodeType":"YulFunctionCall","src":"15884:34:25"},"nodeType":"YulExpressionStatement","src":"15884:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15672:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15683:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15691:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15699:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15710:4:25","type":""}],"src":"15566:358:25"},{"body":{"nodeType":"YulBlock","src":"16103:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16120:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16131:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16113:6:25"},"nodeType":"YulFunctionCall","src":"16113:21:25"},"nodeType":"YulExpressionStatement","src":"16113:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16154:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16165:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16150:3:25"},"nodeType":"YulFunctionCall","src":"16150:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16170:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16143:6:25"},"nodeType":"YulFunctionCall","src":"16143:30:25"},"nodeType":"YulExpressionStatement","src":"16143:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16193:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16204:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16189:3:25"},"nodeType":"YulFunctionCall","src":"16189:18:25"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"16209:34:25","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16182:6:25"},"nodeType":"YulFunctionCall","src":"16182:62:25"},"nodeType":"YulExpressionStatement","src":"16182:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16264:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16275:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16260:3:25"},"nodeType":"YulFunctionCall","src":"16260:18:25"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"16280:8:25","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16253:6:25"},"nodeType":"YulFunctionCall","src":"16253:36:25"},"nodeType":"YulExpressionStatement","src":"16253:36:25"},{"nodeType":"YulAssignment","src":"16298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16306:3:25"},"nodeType":"YulFunctionCall","src":"16306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16080:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16094:4:25","type":""}],"src":"15929:402:25"},{"body":{"nodeType":"YulBlock","src":"16517:275:25","statements":[{"nodeType":"YulAssignment","src":"16527:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16539:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16550:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16535:3:25"},"nodeType":"YulFunctionCall","src":"16535:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16527:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"16563:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"16573:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16567:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16595:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16610:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"16618:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16606:3:25"},"nodeType":"YulFunctionCall","src":"16606:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16588:6:25"},"nodeType":"YulFunctionCall","src":"16588:34:25"},"nodeType":"YulExpressionStatement","src":"16588:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16642:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16653:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16638:3:25"},"nodeType":"YulFunctionCall","src":"16638:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16662:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"16670:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16658:3:25"},"nodeType":"YulFunctionCall","src":"16658:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16631:6:25"},"nodeType":"YulFunctionCall","src":"16631:43:25"},"nodeType":"YulExpressionStatement","src":"16631:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16694:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16705:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16690:3:25"},"nodeType":"YulFunctionCall","src":"16690:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"16714:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16730:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16735:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16726:3:25"},"nodeType":"YulFunctionCall","src":"16726:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"16739:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16722:3:25"},"nodeType":"YulFunctionCall","src":"16722:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16710:3:25"},"nodeType":"YulFunctionCall","src":"16710:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16683:6:25"},"nodeType":"YulFunctionCall","src":"16683:60:25"},"nodeType":"YulExpressionStatement","src":"16683:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16763:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16774:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16759:3:25"},"nodeType":"YulFunctionCall","src":"16759:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"16779:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16752:6:25"},"nodeType":"YulFunctionCall","src":"16752:34:25"},"nodeType":"YulExpressionStatement","src":"16752:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16462:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16473:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16481:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16489:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16497:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16508:4:25","type":""}],"src":"16336:456:25"},{"body":{"nodeType":"YulBlock","src":"16887:544:25","statements":[{"body":{"nodeType":"YulBlock","src":"16933:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16942:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16945:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16935:6:25"},"nodeType":"YulFunctionCall","src":"16935:12:25"},"nodeType":"YulExpressionStatement","src":"16935:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16908:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"16917:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16904:3:25"},"nodeType":"YulFunctionCall","src":"16904:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"16929:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16900:3:25"},"nodeType":"YulFunctionCall","src":"16900:32:25"},"nodeType":"YulIf","src":"16897:52:25"},{"nodeType":"YulVariableDeclaration","src":"16958:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16978:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16972:5:25"},"nodeType":"YulFunctionCall","src":"16972:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16962:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"17031:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17040:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17043:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17033:6:25"},"nodeType":"YulFunctionCall","src":"17033:12:25"},"nodeType":"YulExpressionStatement","src":"17033:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"17003:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17011:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17000:2:25"},"nodeType":"YulFunctionCall","src":"17000:30:25"},"nodeType":"YulIf","src":"16997:50:25"},{"nodeType":"YulVariableDeclaration","src":"17056:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17070:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"17081:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17066:3:25"},"nodeType":"YulFunctionCall","src":"17066:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17060:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"17136:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17145:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17148:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17138:6:25"},"nodeType":"YulFunctionCall","src":"17138:12:25"},"nodeType":"YulExpressionStatement","src":"17138:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17115:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"17119:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17111:3:25"},"nodeType":"YulFunctionCall","src":"17111:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17126:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17107:3:25"},"nodeType":"YulFunctionCall","src":"17107:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17100:6:25"},"nodeType":"YulFunctionCall","src":"17100:35:25"},"nodeType":"YulIf","src":"17097:55:25"},{"nodeType":"YulVariableDeclaration","src":"17161:19:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17177:2:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17171:5:25"},"nodeType":"YulFunctionCall","src":"17171:9:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"17165:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17189:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"17246:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"17218:27:25"},"nodeType":"YulFunctionCall","src":"17218:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"17202:15:25"},"nodeType":"YulFunctionCall","src":"17202:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"17193:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17266:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17273:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17259:6:25"},"nodeType":"YulFunctionCall","src":"17259:17:25"},"nodeType":"YulExpressionStatement","src":"17259:17:25"},{"body":{"nodeType":"YulBlock","src":"17322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17324:6:25"},"nodeType":"YulFunctionCall","src":"17324:12:25"},"nodeType":"YulExpressionStatement","src":"17324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17299:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17303:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17295:3:25"},"nodeType":"YulFunctionCall","src":"17295:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17308:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17291:3:25"},"nodeType":"YulFunctionCall","src":"17291:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17313:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17288:2:25"},"nodeType":"YulFunctionCall","src":"17288:33:25"},"nodeType":"YulIf","src":"17285:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17373:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"17377:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17369:3:25"},"nodeType":"YulFunctionCall","src":"17369:11:25"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17386:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"17393:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17382:3:25"},"nodeType":"YulFunctionCall","src":"17382:14:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17398:2:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"17347:21:25"},"nodeType":"YulFunctionCall","src":"17347:54:25"},"nodeType":"YulExpressionStatement","src":"17347:54:25"},{"nodeType":"YulAssignment","src":"17410:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"17420:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"17410:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16853:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"16864:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"16876:6:25","type":""}],"src":"16797:634:25"},{"body":{"nodeType":"YulBlock","src":"17653:338:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17670:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17693:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17681:3:25"},"nodeType":"YulFunctionCall","src":"17681:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17663:6:25"},"nodeType":"YulFunctionCall","src":"17663:38:25"},"nodeType":"YulExpressionStatement","src":"17663:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17721:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17732:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17717:3:25"},"nodeType":"YulFunctionCall","src":"17717:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17737:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17710:6:25"},"nodeType":"YulFunctionCall","src":"17710:31:25"},"nodeType":"YulExpressionStatement","src":"17710:31:25"},{"nodeType":"YulVariableDeclaration","src":"17750:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17781:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17804:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17789:3:25"},"nodeType":"YulFunctionCall","src":"17789:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"17764:16:25"},"nodeType":"YulFunctionCall","src":"17764:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"17754:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17840:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17825:3:25"},"nodeType":"YulFunctionCall","src":"17825:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17849:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17857:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17845:3:25"},"nodeType":"YulFunctionCall","src":"17845:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17818:6:25"},"nodeType":"YulFunctionCall","src":"17818:59:25"},"nodeType":"YulExpressionStatement","src":"17818:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17897:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17908:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17893:3:25"},"nodeType":"YulFunctionCall","src":"17893:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17913:3:25"},"nodeType":"YulFunctionCall","src":"17913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17886:6:25"},"nodeType":"YulFunctionCall","src":"17886:50:25"},"nodeType":"YulExpressionStatement","src":"17886:50:25"},{"nodeType":"YulAssignment","src":"17945:40:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17970:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17978:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"17953:16:25"},"nodeType":"YulFunctionCall","src":"17953:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17945:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17598:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17617:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17625:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17633:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17644:4:25","type":""}],"src":"17436:555:25"},{"body":{"nodeType":"YulBlock","src":"18133:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18143:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18163:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18157:5:25"},"nodeType":"YulFunctionCall","src":"18157:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"18147:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18205:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18213:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18201:3:25"},"nodeType":"YulFunctionCall","src":"18201:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"18220:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"18225:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"18179:21:25"},"nodeType":"YulFunctionCall","src":"18179:53:25"},"nodeType":"YulExpressionStatement","src":"18179:53:25"},{"nodeType":"YulAssignment","src":"18241:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18252:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"18257:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18248:3:25"},"nodeType":"YulFunctionCall","src":"18248:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18241:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18109:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18114:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18125:3:25","type":""}],"src":"17996:274:25"},{"body":{"nodeType":"YulBlock","src":"18538:453:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18555:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18570:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18578:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18566:3:25"},"nodeType":"YulFunctionCall","src":"18566:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18548:6:25"},"nodeType":"YulFunctionCall","src":"18548:38:25"},"nodeType":"YulExpressionStatement","src":"18548:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18606:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18617:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18602:3:25"},"nodeType":"YulFunctionCall","src":"18602:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18622:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18595:6:25"},"nodeType":"YulFunctionCall","src":"18595:31:25"},"nodeType":"YulExpressionStatement","src":"18595:31:25"},{"nodeType":"YulVariableDeclaration","src":"18635:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18666:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18678:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18689:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18674:3:25"},"nodeType":"YulFunctionCall","src":"18674:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18649:16:25"},"nodeType":"YulFunctionCall","src":"18649:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"18639:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18714:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18725:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18710:3:25"},"nodeType":"YulFunctionCall","src":"18710:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18734:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18742:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18730:3:25"},"nodeType":"YulFunctionCall","src":"18730:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18703:6:25"},"nodeType":"YulFunctionCall","src":"18703:59:25"},"nodeType":"YulExpressionStatement","src":"18703:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18782:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18793:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18778:3:25"},"nodeType":"YulFunctionCall","src":"18778:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"18802:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"18810:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18798:3:25"},"nodeType":"YulFunctionCall","src":"18798:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18771:6:25"},"nodeType":"YulFunctionCall","src":"18771:50:25"},"nodeType":"YulExpressionStatement","src":"18771:50:25"},{"nodeType":"YulVariableDeclaration","src":"18830:46:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18861:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"18869:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18844:16:25"},"nodeType":"YulFunctionCall","src":"18844:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"18834:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18907:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18892:3:25"},"nodeType":"YulFunctionCall","src":"18892:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"18917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"18925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18913:3:25"},"nodeType":"YulFunctionCall","src":"18913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18885:6:25"},"nodeType":"YulFunctionCall","src":"18885:51:25"},"nodeType":"YulExpressionStatement","src":"18885:51:25"},{"nodeType":"YulAssignment","src":"18945:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"18970:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"18978:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18953:16:25"},"nodeType":"YulFunctionCall","src":"18953:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18945:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18475:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"18486:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18494:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18502:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18529:4:25","type":""}],"src":"18275:716:25"},{"body":{"nodeType":"YulBlock","src":"19170:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19187:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19198:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19180:6:25"},"nodeType":"YulFunctionCall","src":"19180:21:25"},"nodeType":"YulExpressionStatement","src":"19180:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19221:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19232:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19217:3:25"},"nodeType":"YulFunctionCall","src":"19217:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19237:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19210:6:25"},"nodeType":"YulFunctionCall","src":"19210:30:25"},"nodeType":"YulExpressionStatement","src":"19210:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19260:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19271:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19256:3:25"},"nodeType":"YulFunctionCall","src":"19256:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"19276:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19249:6:25"},"nodeType":"YulFunctionCall","src":"19249:62:25"},"nodeType":"YulExpressionStatement","src":"19249:62:25"},{"nodeType":"YulAssignment","src":"19320:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19332:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19343:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19328:3:25"},"nodeType":"YulFunctionCall","src":"19328:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19320:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19147:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19161:4:25","type":""}],"src":"18996:356:25"},{"body":{"nodeType":"YulBlock","src":"19408:647:25","statements":[{"nodeType":"YulVariableDeclaration","src":"19418:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19440:2:25","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"19444:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"19429:10:25"},"nodeType":"YulFunctionCall","src":"19429:17:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"19422:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19455:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19477:2:25","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"19481:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"19466:10:25"},"nodeType":"YulFunctionCall","src":"19466:17:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"19459:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19492:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"19502:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19496:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19545:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19559:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19564:1:25","type":"","value":"0"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"19555:3:25"},"nodeType":"YulFunctionCall","src":"19555:11:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"19549:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19575:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19589:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19594:1:25","type":"","value":"0"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"19585:3:25"},"nodeType":"YulFunctionCall","src":"19585:11:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"19579:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19648:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19650:16:25"},"nodeType":"YulFunctionCall","src":"19650:18:25"},"nodeType":"YulExpressionStatement","src":"19650:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"19616:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"19620:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19612:3:25"},"nodeType":"YulFunctionCall","src":"19612:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19628:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19637:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19641:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"19633:3:25"},"nodeType":"YulFunctionCall","src":"19633:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19625:2:25"},"nodeType":"YulFunctionCall","src":"19625:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19608:3:25"},"nodeType":"YulFunctionCall","src":"19608:39:25"},"nodeType":"YulIf","src":"19605:65:25"},{"nodeType":"YulVariableDeclaration","src":"19679:49:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19693:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19689:3:25"},"nodeType":"YulFunctionCall","src":"19689:39:25"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"19683:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19737:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19751:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19756:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19747:3:25"},"nodeType":"YulFunctionCall","src":"19747:11:25"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"19741:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19812:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19814:16:25"},"nodeType":"YulFunctionCall","src":"19814:18:25"},"nodeType":"YulExpressionStatement","src":"19814:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"19778:2:25"},{"name":"_5","nodeType":"YulIdentifier","src":"19782:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19774:3:25"},"nodeType":"YulFunctionCall","src":"19774:11:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19791:3:25"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"19801:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"19805:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19796:4:25"},"nodeType":"YulFunctionCall","src":"19796:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19787:3:25"},"nodeType":"YulFunctionCall","src":"19787:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19770:3:25"},"nodeType":"YulFunctionCall","src":"19770:41:25"},"nodeType":"YulIf","src":"19767:67:25"},{"nodeType":"YulVariableDeclaration","src":"19843:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19857:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19862:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19853:3:25"},"nodeType":"YulFunctionCall","src":"19853:11:25"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"19847:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19918:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19920:16:25"},"nodeType":"YulFunctionCall","src":"19920:18:25"},"nodeType":"YulExpressionStatement","src":"19920:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"19884:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"19888:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19880:3:25"},"nodeType":"YulFunctionCall","src":"19880:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19897:3:25"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"19907:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19911:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19902:4:25"},"nodeType":"YulFunctionCall","src":"19902:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19893:3:25"},"nodeType":"YulFunctionCall","src":"19893:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19876:3:25"},"nodeType":"YulFunctionCall","src":"19876:41:25"},"nodeType":"YulIf","src":"19873:67:25"},{"body":{"nodeType":"YulBlock","src":"19994:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19996:16:25"},"nodeType":"YulFunctionCall","src":"19996:18:25"},"nodeType":"YulExpressionStatement","src":"19996:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"19960:2:25"},{"name":"_5","nodeType":"YulIdentifier","src":"19964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19956:3:25"},"nodeType":"YulFunctionCall","src":"19956:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19973:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19983:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19987:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19978:4:25"},"nodeType":"YulFunctionCall","src":"19978:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19969:3:25"},"nodeType":"YulFunctionCall","src":"19969:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19952:3:25"},"nodeType":"YulFunctionCall","src":"19952:41:25"},"nodeType":"YulIf","src":"19949:67:25"},{"nodeType":"YulAssignment","src":"20025:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20040:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20045:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"20036:3:25"},"nodeType":"YulFunctionCall","src":"20036:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"20025:7:25"}]}]},"name":"checked_mul_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19387:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"19390:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"19396:7:25","type":""}],"src":"19357:698:25"},{"body":{"nodeType":"YulBlock","src":"20108:350:25","statements":[{"nodeType":"YulVariableDeclaration","src":"20118:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20140:2:25","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"20144:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"20129:10:25"},"nodeType":"YulFunctionCall","src":"20129:17:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"20122:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20155:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20177:2:25","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"20181:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"20166:10:25"},"nodeType":"YulFunctionCall","src":"20166:17:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"20159:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20192:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"20206:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"20211:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20202:3:25"},"nodeType":"YulFunctionCall","src":"20202:11:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20196:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"20302:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20304:16:25"},"nodeType":"YulFunctionCall","src":"20304:18:25"},"nodeType":"YulExpressionStatement","src":"20304:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20236:2:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20229:6:25"},"nodeType":"YulFunctionCall","src":"20229:10:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20245:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20258:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20254:3:25"},"nodeType":"YulFunctionCall","src":"20254:39:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20295:3:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20250:3:25"},"nodeType":"YulFunctionCall","src":"20250:49:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20241:3:25"},"nodeType":"YulFunctionCall","src":"20241:59:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20225:3:25"},"nodeType":"YulFunctionCall","src":"20225:76:25"},"nodeType":"YulIf","src":"20222:102:25"},{"body":{"nodeType":"YulBlock","src":"20400:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20402:16:25"},"nodeType":"YulFunctionCall","src":"20402:18:25"},"nodeType":"YulExpressionStatement","src":"20402:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20340:2:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20348:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20357:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"},{"name":"y_1","nodeType":"YulIdentifier","src":"20393:3:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20353:3:25"},"nodeType":"YulFunctionCall","src":"20353:44:25"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"20344:3:25"},"nodeType":"YulFunctionCall","src":"20344:54:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20336:3:25"},"nodeType":"YulFunctionCall","src":"20336:63:25"},"nodeType":"YulIf","src":"20333:89:25"},{"nodeType":"YulAssignment","src":"20431:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20443:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20448:3:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20439:3:25"},"nodeType":"YulFunctionCall","src":"20439:13:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"20431:4:25"}]}]},"name":"checked_sub_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20090:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"20093:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"20060:398:25"},{"body":{"nodeType":"YulBlock","src":"20637:232:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20654:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20665:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20647:6:25"},"nodeType":"YulFunctionCall","src":"20647:21:25"},"nodeType":"YulExpressionStatement","src":"20647:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20688:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20699:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20684:3:25"},"nodeType":"YulFunctionCall","src":"20684:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20704:2:25","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20677:6:25"},"nodeType":"YulFunctionCall","src":"20677:30:25"},"nodeType":"YulExpressionStatement","src":"20677:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20738:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20723:3:25"},"nodeType":"YulFunctionCall","src":"20723:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e2070","kind":"string","nodeType":"YulLiteral","src":"20743:34:25","type":"","value":"OmniVotingEscrowChild: unknown p"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20716:6:25"},"nodeType":"YulFunctionCall","src":"20716:62:25"},"nodeType":"YulExpressionStatement","src":"20716:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20798:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20809:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20794:3:25"},"nodeType":"YulFunctionCall","src":"20794:18:25"},{"hexValue":"61636b65742074797065","kind":"string","nodeType":"YulLiteral","src":"20814:12:25","type":"","value":"acket type"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20787:6:25"},"nodeType":"YulFunctionCall","src":"20787:40:25"},"nodeType":"YulExpressionStatement","src":"20787:40:25"},{"nodeType":"YulAssignment","src":"20836:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20848:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20859:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20844:3:25"},"nodeType":"YulFunctionCall","src":"20844:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20836:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20614:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20628:4:25","type":""}],"src":"20463:406:25"},{"body":{"nodeType":"YulBlock","src":"20922:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"20949:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20951:16:25"},"nodeType":"YulFunctionCall","src":"20951:18:25"},"nodeType":"YulExpressionStatement","src":"20951:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20938:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20945:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20941:3:25"},"nodeType":"YulFunctionCall","src":"20941:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20935:2:25"},"nodeType":"YulFunctionCall","src":"20935:13:25"},"nodeType":"YulIf","src":"20932:39:25"},{"nodeType":"YulAssignment","src":"20980:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20991:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"20994:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20987:3:25"},"nodeType":"YulFunctionCall","src":"20987:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"20980:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20905:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"20908:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"20914:3:25","type":""}],"src":"20874:128:25"},{"body":{"nodeType":"YulBlock","src":"21181:164:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21209:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21191:6:25"},"nodeType":"YulFunctionCall","src":"21191:21:25"},"nodeType":"YulExpressionStatement","src":"21191:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21232:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21243:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21228:3:25"},"nodeType":"YulFunctionCall","src":"21228:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21248:2:25","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21221:6:25"},"nodeType":"YulFunctionCall","src":"21221:30:25"},"nodeType":"YulExpressionStatement","src":"21221:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21271:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21282:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21267:3:25"},"nodeType":"YulFunctionCall","src":"21267:18:25"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"21287:16:25","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21260:6:25"},"nodeType":"YulFunctionCall","src":"21260:44:25"},"nodeType":"YulExpressionStatement","src":"21260:44:25"},{"nodeType":"YulAssignment","src":"21313:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21325:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21336:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21321:3:25"},"nodeType":"YulFunctionCall","src":"21321:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21313:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21158:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21172:4:25","type":""}],"src":"21007:338:25"},{"body":{"nodeType":"YulBlock","src":"21524:167:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21552:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21534:6:25"},"nodeType":"YulFunctionCall","src":"21534:21:25"},"nodeType":"YulExpressionStatement","src":"21534:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21575:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21586:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21571:3:25"},"nodeType":"YulFunctionCall","src":"21571:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21591:2:25","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21564:6:25"},"nodeType":"YulFunctionCall","src":"21564:30:25"},"nodeType":"YulExpressionStatement","src":"21564:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21614:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21625:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21610:3:25"},"nodeType":"YulFunctionCall","src":"21610:18:25"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nodeType":"YulLiteral","src":"21630:19:25","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21603:6:25"},"nodeType":"YulFunctionCall","src":"21603:47:25"},"nodeType":"YulExpressionStatement","src":"21603:47:25"},{"nodeType":"YulAssignment","src":"21659:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21667:3:25"},"nodeType":"YulFunctionCall","src":"21667:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21659:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21501:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21515:4:25","type":""}],"src":"21350:341:25"},{"body":{"nodeType":"YulBlock","src":"21769:656:25","statements":[{"body":{"nodeType":"YulBlock","src":"21813:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21822:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21825:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21815:6:25"},"nodeType":"YulFunctionCall","src":"21815:12:25"},"nodeType":"YulExpressionStatement","src":"21815:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"21790:3:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"21795:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21786:3:25"},"nodeType":"YulFunctionCall","src":"21786:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"21807:4:25","type":"","value":"0x80"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21782:3:25"},"nodeType":"YulFunctionCall","src":"21782:30:25"},"nodeType":"YulIf","src":"21779:50:25"},{"nodeType":"YulVariableDeclaration","src":"21838:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21858:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21852:5:25"},"nodeType":"YulFunctionCall","src":"21852:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"21842:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21870:35:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21892:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21900:4:25","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21888:3:25"},"nodeType":"YulFunctionCall","src":"21888:17:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"21874:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"21980:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"21982:16:25"},"nodeType":"YulFunctionCall","src":"21982:18:25"},"nodeType":"YulExpressionStatement","src":"21982:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21923:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"21935:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21920:2:25"},"nodeType":"YulFunctionCall","src":"21920:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21959:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"21971:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21956:2:25"},"nodeType":"YulFunctionCall","src":"21956:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"21917:2:25"},"nodeType":"YulFunctionCall","src":"21917:62:25"},"nodeType":"YulIf","src":"21914:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22018:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22022:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22011:6:25"},"nodeType":"YulFunctionCall","src":"22011:22:25"},"nodeType":"YulExpressionStatement","src":"22011:22:25"},{"nodeType":"YulAssignment","src":"22042:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"22051:6:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"22042:5:25"}]},{"nodeType":"YulVariableDeclaration","src":"22066:31:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22087:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22081:5:25"},"nodeType":"YulFunctionCall","src":"22081:16:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"22070:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22130:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"22106:23:25"},"nodeType":"YulFunctionCall","src":"22106:32:25"},"nodeType":"YulExpressionStatement","src":"22106:32:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22154:6:25"},{"name":"value_1","nodeType":"YulIdentifier","src":"22162:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22147:6:25"},"nodeType":"YulFunctionCall","src":"22147:23:25"},"nodeType":"YulExpressionStatement","src":"22147:23:25"},{"nodeType":"YulVariableDeclaration","src":"22179:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22204:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22215:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22200:3:25"},"nodeType":"YulFunctionCall","src":"22200:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22194:5:25"},"nodeType":"YulFunctionCall","src":"22194:25:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"22183:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"22252:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"22228:23:25"},"nodeType":"YulFunctionCall","src":"22228:32:25"},"nodeType":"YulExpressionStatement","src":"22228:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22280:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22288:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22276:3:25"},"nodeType":"YulFunctionCall","src":"22276:15:25"},{"name":"value_2","nodeType":"YulIdentifier","src":"22293:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22269:6:25"},"nodeType":"YulFunctionCall","src":"22269:32:25"},"nodeType":"YulExpressionStatement","src":"22269:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22321:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22329:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22317:3:25"},"nodeType":"YulFunctionCall","src":"22317:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22344:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22355:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22340:3:25"},"nodeType":"YulFunctionCall","src":"22340:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22334:5:25"},"nodeType":"YulFunctionCall","src":"22334:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22310:6:25"},"nodeType":"YulFunctionCall","src":"22310:50:25"},"nodeType":"YulExpressionStatement","src":"22310:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22380:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22388:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22403:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22414:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22399:3:25"},"nodeType":"YulFunctionCall","src":"22399:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22393:5:25"},"nodeType":"YulFunctionCall","src":"22393:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22369:6:25"},"nodeType":"YulFunctionCall","src":"22369:50:25"},"nodeType":"YulExpressionStatement","src":"22369:50:25"}]},"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21740:9:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"21751:3:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"21759:5:25","type":""}],"src":"21696:729:25"},{"body":{"nodeType":"YulBlock","src":"22632:496:25","statements":[{"body":{"nodeType":"YulBlock","src":"22679:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22688:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22691:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22681:6:25"},"nodeType":"YulFunctionCall","src":"22681:12:25"},"nodeType":"YulExpressionStatement","src":"22681:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"22653:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"22662:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22649:3:25"},"nodeType":"YulFunctionCall","src":"22649:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"22674:3:25","type":"","value":"352"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"22645:3:25"},"nodeType":"YulFunctionCall","src":"22645:33:25"},"nodeType":"YulIf","src":"22642:53:25"},{"nodeType":"YulVariableDeclaration","src":"22704:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22723:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22717:5:25"},"nodeType":"YulFunctionCall","src":"22717:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"22708:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22766:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"22742:23:25"},"nodeType":"YulFunctionCall","src":"22742:30:25"},"nodeType":"YulExpressionStatement","src":"22742:30:25"},{"nodeType":"YulAssignment","src":"22781:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"22791:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"22781:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"22805:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22830:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22841:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22826:3:25"},"nodeType":"YulFunctionCall","src":"22826:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22820:5:25"},"nodeType":"YulFunctionCall","src":"22820:25:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"22809:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22879:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"22854:24:25"},"nodeType":"YulFunctionCall","src":"22854:33:25"},"nodeType":"YulExpressionStatement","src":"22854:33:25"},{"nodeType":"YulAssignment","src":"22896:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"22906:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"22896:6:25"}]},{"nodeType":"YulAssignment","src":"22922:35:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22942:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22953:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22938:3:25"},"nodeType":"YulFunctionCall","src":"22938:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22932:5:25"},"nodeType":"YulFunctionCall","src":"22932:25:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"22922:6:25"}]},{"nodeType":"YulAssignment","src":"22966:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23015:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23026:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23011:3:25"},"nodeType":"YulFunctionCall","src":"23011:18:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23031:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"22976:34:25"},"nodeType":"YulFunctionCall","src":"22976:63:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"22966:6:25"}]},{"nodeType":"YulAssignment","src":"23048:74:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23097:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23108:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23093:3:25"},"nodeType":"YulFunctionCall","src":"23093:19:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23114:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"23058:34:25"},"nodeType":"YulFunctionCall","src":"23058:64:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"23048:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22566:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"22577:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"22589:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22597:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22605:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22613:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22621:6:25","type":""}],"src":"22430:698:25"},{"body":{"nodeType":"YulBlock","src":"23182:241:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23199:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23215:2:25","type":"","value":"15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23225:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23219:5:25"},"nodeType":"YulFunctionCall","src":"23219:12:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"23204:10:25"},"nodeType":"YulFunctionCall","src":"23204:28:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23192:6:25"},"nodeType":"YulFunctionCall","src":"23192:41:25"},"nodeType":"YulExpressionStatement","src":"23192:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23253:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23258:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23249:3:25"},"nodeType":"YulFunctionCall","src":"23249:14:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23276:2:25","type":"","value":"15"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23290:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23297:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23286:3:25"},"nodeType":"YulFunctionCall","src":"23286:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23280:5:25"},"nodeType":"YulFunctionCall","src":"23280:23:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"23265:10:25"},"nodeType":"YulFunctionCall","src":"23265:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23242:6:25"},"nodeType":"YulFunctionCall","src":"23242:63:25"},"nodeType":"YulExpressionStatement","src":"23242:63:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23325:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23330:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23321:3:25"},"nodeType":"YulFunctionCall","src":"23321:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23347:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23354:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23343:3:25"},"nodeType":"YulFunctionCall","src":"23343:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23337:5:25"},"nodeType":"YulFunctionCall","src":"23337:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23314:6:25"},"nodeType":"YulFunctionCall","src":"23314:47:25"},"nodeType":"YulExpressionStatement","src":"23314:47:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23381:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23386:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23377:3:25"},"nodeType":"YulFunctionCall","src":"23377:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23403:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23410:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23399:3:25"},"nodeType":"YulFunctionCall","src":"23399:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23393:5:25"},"nodeType":"YulFunctionCall","src":"23393:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23370:6:25"},"nodeType":"YulFunctionCall","src":"23370:47:25"},"nodeType":"YulExpressionStatement","src":"23370:47:25"}]},"name":"abi_encode_struct_Point","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"23166:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"23173:3:25","type":""}],"src":"23133:290:25"},{"body":{"nodeType":"YulBlock","src":"23703:280:25","statements":[{"nodeType":"YulAssignment","src":"23713:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23725:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23736:3:25","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23721:3:25"},"nodeType":"YulFunctionCall","src":"23721:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23713:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23756:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23771:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23779:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23767:3:25"},"nodeType":"YulFunctionCall","src":"23767:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23749:6:25"},"nodeType":"YulFunctionCall","src":"23749:38:25"},"nodeType":"YulExpressionStatement","src":"23749:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23803:3:25"},"nodeType":"YulFunctionCall","src":"23803:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23827:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23843:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23848:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23839:3:25"},"nodeType":"YulFunctionCall","src":"23839:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"23852:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23835:3:25"},"nodeType":"YulFunctionCall","src":"23835:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23823:3:25"},"nodeType":"YulFunctionCall","src":"23823:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23796:6:25"},"nodeType":"YulFunctionCall","src":"23796:60:25"},"nodeType":"YulExpressionStatement","src":"23796:60:25"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23889:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23901:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23912:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23897:3:25"},"nodeType":"YulFunctionCall","src":"23897:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"23865:23:25"},"nodeType":"YulFunctionCall","src":"23865:51:25"},"nodeType":"YulExpressionStatement","src":"23865:51:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23949:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23961:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23972:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23957:3:25"},"nodeType":"YulFunctionCall","src":"23957:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"23925:23:25"},"nodeType":"YulFunctionCall","src":"23925:52:25"},"nodeType":"YulExpressionStatement","src":"23925:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23648:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23659:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23667:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23675:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23683:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23694:4:25","type":""}],"src":"23428:555:25"},{"body":{"nodeType":"YulBlock","src":"24108:252:25","statements":[{"body":{"nodeType":"YulBlock","src":"24155:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24164:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24167:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24157:6:25"},"nodeType":"YulFunctionCall","src":"24157:12:25"},"nodeType":"YulExpressionStatement","src":"24157:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"24129:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24138:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24125:3:25"},"nodeType":"YulFunctionCall","src":"24125:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"24150:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"24121:3:25"},"nodeType":"YulFunctionCall","src":"24121:33:25"},"nodeType":"YulIf","src":"24118:53:25"},{"nodeType":"YulVariableDeclaration","src":"24180:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24199:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24193:5:25"},"nodeType":"YulFunctionCall","src":"24193:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"24184:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24242:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"24218:23:25"},"nodeType":"YulFunctionCall","src":"24218:30:25"},"nodeType":"YulExpressionStatement","src":"24218:30:25"},{"nodeType":"YulAssignment","src":"24257:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"24267:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"24257:6:25"}]},{"nodeType":"YulAssignment","src":"24281:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24330:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24341:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24326:3:25"},"nodeType":"YulFunctionCall","src":"24326:18:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"24346:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"24291:34:25"},"nodeType":"YulFunctionCall","src":"24291:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"24281:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24066:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"24077:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"24089:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24097:6:25","type":""}],"src":"23988:372:25"},{"body":{"nodeType":"YulBlock","src":"24538:150:25","statements":[{"nodeType":"YulAssignment","src":"24548:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24560:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24571:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24556:3:25"},"nodeType":"YulFunctionCall","src":"24556:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24548:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24591:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24606:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24614:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24602:3:25"},"nodeType":"YulFunctionCall","src":"24602:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24584:6:25"},"nodeType":"YulFunctionCall","src":"24584:38:25"},"nodeType":"YulExpressionStatement","src":"24584:38:25"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24655:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24663:3:25"},"nodeType":"YulFunctionCall","src":"24663:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"24631:23:25"},"nodeType":"YulFunctionCall","src":"24631:51:25"},"nodeType":"YulExpressionStatement","src":"24631:51:25"}]},"name":"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24499:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24529:4:25","type":""}],"src":"24365:323:25"}]},"contents":"{\n { }\n function validator_revert_uint16(value)\n {\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n value3 := abi_decode_uint64(add(headStart, 64))\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(0, 0) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function validator_revert_int128(value)\n {\n if iszero(eq(value, signextend(15, value))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Point_$4477_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 128)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let value := calldataload(headStart)\n validator_revert_int128(value)\n mstore(memPtr, value)\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_int128(value_1)\n mstore(add(memPtr, 32), value_1)\n mstore(add(memPtr, 64), calldataload(add(headStart, 64)))\n mstore(add(memPtr, 96), calldataload(add(headStart, 96)))\n value0 := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := calldataload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(array, 32), add(_1, 32), _2)\n mstore(add(add(array, _2), 32), 0)\n value1 := array\n value2 := abi_decode_uint64(add(headStart, 64))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, signextend(15, value0))\n mstore(add(headStart, 32), signextend(15, value1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n value3 := calldataload(add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LzApp: invalid endpoint caller\")\n tail := add(headStart, 96)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LzApp: invalid source sending co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"NonblockingLzApp: caller must be\")\n mstore(add(headStart, 96), \" LzApp\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LzApp: no trusted path record\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n mstore(_1, and(shl(96, value2), not(0xffffffffffffffffffffffff)))\n end := add(_1, 20)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"NonblockingLzApp: no stored mess\")\n mstore(add(headStart, 96), \"age\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"NonblockingLzApp: invalid payloa\")\n mstore(add(headStart, 96), \"d\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), value4)\n }\n function abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"LzApp: invalid minGas\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value3, tail_1)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value3, tail_1)\n mstore(add(headStart, 128), sub(tail_2, headStart))\n tail := abi_encode_bytes(value4, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_int128(x, y) -> product\n {\n let x_1 := signextend(15, x)\n let y_1 := signextend(15, y)\n let _1 := 0x7fffffffffffffffffffffffffffffff\n let _2 := sgt(y_1, 0)\n let _3 := sgt(x_1, 0)\n if and(and(_3, _2), gt(x_1, div(_1, y_1))) { panic_error_0x11() }\n let _4 := not(0x7fffffffffffffffffffffffffffffff)\n let _5 := slt(y_1, 0)\n if and(and(_3, _5), slt(y_1, sdiv(_4, x_1))) { panic_error_0x11() }\n let _6 := slt(x_1, 0)\n if and(and(_6, _2), slt(x_1, sdiv(_4, y_1))) { panic_error_0x11() }\n if and(and(_6, _5), slt(x_1, sdiv(_1, y_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_sub_t_int128(x, y) -> diff\n {\n let x_1 := signextend(15, x)\n let y_1 := signextend(15, y)\n let _1 := slt(y_1, 0)\n if and(iszero(_1), slt(x_1, add(not(0x7fffffffffffffffffffffffffffffff), y_1))) { panic_error_0x11() }\n if and(_1, sgt(x_1, add(0x7fffffffffffffffffffffffffffffff, y_1))) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"OmniVotingEscrowChild: unknown p\")\n mstore(add(headStart, 96), \"acket type\")\n tail := add(headStart, 128)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"slice_overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"slice_outOfBounds\")\n tail := add(headStart, 96)\n }\n function abi_decode_struct_Point_fromMemory(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x80) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x80)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n value := memPtr\n let value_1 := mload(headStart)\n validator_revert_int128(value_1)\n mstore(memPtr, value_1)\n let value_2 := mload(add(headStart, 32))\n validator_revert_int128(value_2)\n mstore(add(memPtr, 32), value_2)\n mstore(add(memPtr, 64), mload(add(headStart, 64)))\n mstore(add(memPtr, 96), mload(add(headStart, 96)))\n }\n function abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 352) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := mload(add(headStart, 64))\n value3 := abi_decode_struct_Point_fromMemory(add(headStart, 96), dataEnd)\n value4 := abi_decode_struct_Point_fromMemory(add(headStart, 224), dataEnd)\n }\n function abi_encode_struct_Point(value, pos)\n {\n mstore(pos, signextend(15, mload(value)))\n mstore(add(pos, 0x20), signextend(15, mload(add(value, 0x20))))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n }\n function abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 320)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n abi_encode_struct_Point(value2, add(headStart, 64))\n abi_encode_struct_Point(value3, add(headStart, 192))\n }\n function abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint16(value)\n value0 := value\n value1 := abi_decode_struct_Point_fromMemory(add(headStart, 32), dataEnd)\n }\n function abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, and(value0, 0xffff))\n abi_encode_struct_Point(value1, add(headStart, 32))\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"446":[{"length":32,"start":1234},{"length":32,"start":1643},{"length":32,"start":2234},{"length":32,"start":2371},{"length":32,"start":2749},{"length":32,"start":3879},{"length":32,"start":4969}],"4123":[{"length":32,"start":886},{"length":32,"start":6374},{"length":32,"start":6616}]},"linkReferences":{},"object":"6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea2646970667358221220570e1801cb2ac804d712ad851aeb331dab0e074f86b201032a7cf28a48777cff64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xCBED8B9C GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xF4182ACB EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xF50DDBC7 EQ PUSH2 0x5FD JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x648 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA6C3D165 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x473 JUMPI DUP1 PUSH4 0xADC63589 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x164 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x74D2495F EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x378EF708 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x208 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x1E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x97A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF1 JUMP JUMPDEST PUSH2 0x9C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x9D1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xA9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xB24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0xC5B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x370 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xC6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x1F10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F23 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x398 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x398 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xD09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x48E CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xE19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x50F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xEAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x52F CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5C JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xF9D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FCE JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x1265 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x12BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x9 SLOAD PUSH2 0x5D5 SWAP3 PUSH1 0xF DUP2 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SWAP2 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF SWAP6 DUP7 SIGNEXTEND DUP2 MSTORE SWAP4 SWAP1 SWAP5 SIGNEXTEND PUSH1 0x20 DUP5 ADD MSTORE SWAP3 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D5 PUSH2 0x618 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP4 DIV SWAP1 SIGNEXTEND SWAP2 SWAP1 DUP5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x200F JUMP JUMPDEST PUSH2 0x1338 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x703 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x72F SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x77C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x751 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x77C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x75F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x797 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x7BF JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x7B5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x890 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x13E9 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x92A PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x8ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x7 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0x9BB SWAP1 PUSH2 0x154D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CB DUP3 PUSH2 0x154D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x9F2 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA1E SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA6B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA40 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA6B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA4E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA82 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAA6 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xAF6 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x890 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xBF8 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x9CB SWAP1 PUSH2 0x154D JUMP JUMPDEST PUSH2 0xC63 PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xC6D PUSH1 0x0 PUSH2 0x1646 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xC88 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCB4 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD2C SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD58 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD88 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xA97 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0xE11 SWAP2 SWAP1 PUSH2 0x2108 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xE21 PUSH2 0x14F3 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE36 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x211F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0xE6B SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1A69 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xEB4 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xF10 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0xF64 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2145 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF92 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFC0 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x1040 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1051 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x10B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10D3 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x116B SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x11A2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x217E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11BB PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1203 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x126D PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x128B SWAP1 DUP4 DUP4 PUSH2 0x1AED JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x12C7 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x132C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1646 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x13E0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21B9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x144C GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1411 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x17A3 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0xBF8 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1486 SWAP2 SWAP1 PUSH2 0x2264 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x14E3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x1563 SWAP1 TIMESTAMP PUSH2 0x2108 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1572 SWAP2 SWAP1 PUSH2 0x22DE JUMP JUMPDEST DUP3 MLOAD PUSH2 0x157E SWAP2 SWAP1 PUSH2 0x237C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND SLT PUSH2 0x159A JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x159D JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xA SLOAD PUSH2 0xFFFF DUP1 DUP4 AND SWAP2 AND EQ ISZERO PUSH2 0x15CA JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x91B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0xFFFF DUP3 DUP2 AND PUSH3 0x10000 SWAP1 SWAP3 DIV AND EQ ISZERO PUSH2 0x15EB JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x1978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A20756E6B6E6F776E2070 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x61636B65742074797065 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x16A4 DUP2 PUSH1 0x1F PUSH2 0x23CC JUMP JUMPDEST LT ISZERO PUSH2 0x16E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x16ED DUP3 DUP5 PUSH2 0x23CC JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1750 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x179A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1789 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1771 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17C8 JUMPI PUSH2 0x17C8 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17F2 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x1814 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1847 SWAP2 SWAP1 PUSH2 0x245D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 SWAP1 SSTORE PUSH1 0x6 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP8 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP2 DUP4 AND DUP3 MUL OR DUP4 SSTORE DUP9 DUP6 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE PUSH1 0x60 DUP1 DUP11 ADD MLOAD PUSH1 0x2 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE DUP8 MLOAD SWAP4 DUP9 ADD MLOAD SWAP4 DUP3 AND SWAP4 SWAP1 SWAP2 AND MUL SWAP2 SWAP1 SWAP2 OR PUSH1 0x7 SSTORE DUP5 DUP3 ADD MLOAD PUSH1 0x8 SSTORE DUP5 ADD MLOAD PUSH1 0x9 SSTORE MLOAD PUSH4 0x6F8985FF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP PUSH32 0x0 AND SWAP2 POP PUSH4 0xDF130BFE SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0xAE0E70D8538C5776F9975183D965B1722A0E8FA0256C8301CB707F64A9821F83 DUP7 DUP6 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x14E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x198E SWAP2 SWAP1 PUSH2 0x2546 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP2 AND OR PUSH1 0x7 SSTORE PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x8 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x9 SSTORE DUP1 MLOAD PUSH4 0x96345FB5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 POP PUSH4 0x96345FB5 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9048DA34D2DAC99755410B6E83E1EAAB692909FF964F5BC920756AB49C73DF9A DUP4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP3 SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1A75 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A97 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1AB0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1AC2 JUMP JUMPDEST POP PUSH2 0x1AE9 SWAP3 SWAP2 POP PUSH2 0x1B61 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1AF9 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1B34 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1B46 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1AE9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1B62 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1BAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1BC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x1C0E DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1C2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C36 DUP11 DUP4 DUP12 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x1C4A PUSH1 0x40 DUP11 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1C60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6D DUP10 DUP3 DUP11 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1CDA JUMPI PUSH2 0x1CDA PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xF SIGNEXTEND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1D25 JUMPI PUSH2 0x1D25 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD PUSH2 0x1D33 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1D43 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 SWAP3 DUP4 ADD CALLDATALOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1D7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1D85 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1DA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DAC DUP7 DUP3 DUP8 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1DD2 JUMPI PUSH2 0x1DD2 PUSH2 0x1C9C JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1E00 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1E1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x1E2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E3F PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST PUSH2 0x1CB2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1E54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x1E79 PUSH1 0x40 DUP6 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ECF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1EDE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EFC DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1F41 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1F51 DUP2 PUSH2 0x1B76 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x1F7F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x1F8F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1FB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FBD DUP9 DUP3 DUP10 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1FE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1FEE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1FFE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2025 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2030 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2040 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2050 DUP2 PUSH2 0x1E82 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2074 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x13E0 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x211A JUMPI PUSH2 0x211A PUSH2 0x20F2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2173 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x219C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x20AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x21E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x21F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2200 PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E0 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2243 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2173 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2276 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x229D PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x22BE DUP2 DUP7 PUSH2 0x1EE4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x22D2 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB PUSH1 0x0 DUP3 SGT PUSH1 0x0 DUP5 SGT DUP4 DUP4 DIV DUP6 GT DUP3 DUP3 AND AND ISZERO PUSH2 0x230E JUMPI PUSH2 0x230E PUSH2 0x20F2 JUMP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x0 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x233A JUMPI PUSH2 0x233A PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x0 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x2356 JUMPI PUSH2 0x2356 PUSH2 0x20F2 JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x236C JUMPI PUSH2 0x236C PUSH2 0x20F2 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 SLT DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT ADD DUP4 SLT DUP2 ISZERO AND ISZERO PUSH2 0x23A7 JUMPI PUSH2 0x23A7 PUSH2 0x20F2 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x23C2 JUMPI PUSH2 0x23C2 PUSH2 0x20F2 JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x23DF JUMPI PUSH2 0x23DF PUSH2 0x20F2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2418 JUMPI PUSH2 0x2418 PUSH2 0x1C9C JUMP JUMPDEST DUP1 PUSH1 0x40 MSTORE POP DUP1 SWAP2 POP DUP3 MLOAD PUSH2 0x242B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x243B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x160 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH2 0x2481 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD SWAP1 SWAP6 POP PUSH2 0x2492 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x24A9 DUP8 PUSH1 0x60 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24B8 DUP8 PUSH1 0xE0 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x140 DUP2 ADD PUSH2 0x2513 PUSH1 0x40 DUP4 ADD DUP6 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST DUP3 MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SIGNEXTEND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x13E0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xA0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x2564 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH2 0x2573 DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0xE XOR ADD 0xCB 0x2A 0xC8 DIV 0xD7 SLT 0xAD DUP6 BYTE 0xEB CALLER SAR 0xAB 0xE SMOD 0x4F DUP7 0xB2 ADD SUB 0x2A PUSH29 0xF28A48777CFF64736F6C634300080A0033000000000000000000000000 ","sourceMap":"255:3271:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:753:4;;;;;;;;;;-1:-1:-1;1035:753:4;;;;;:::i;:::-;;:::i;:::-;;3834:121;;;;;;;;;;-1:-1:-1;3834:121:4;;;;;:::i;:::-;;:::i;3961:127::-;;;;;;;;;;-1:-1:-1;3961:127:4;;;;;:::i;:::-;;:::i;2967:106:15:-;;;;;;;;;;;;;:::i;:::-;;;1988:25:25;;;1976:2;1961:18;2967:106:15;;;;;;;;3107:133;;;;;;;;;;-1:-1:-1;3107:133:15;;;;;:::i;:::-;;:::i;5744:247:4:-;;;;;;;;;;-1:-1:-1;5744:247:4;;;;;:::i;:::-;;:::i;:::-;;;4052:14:25;;4045:22;4027:41;;4015:2;4000:18;5744:247:4;3887:187:25;4094:176:4;;;;;;;;;;-1:-1:-1;4094:176:4;;;;;:::i;:::-;;:::i;617:85:5:-;;;;;;;;;;-1:-1:-1;617:85:5;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1577:342;;;;;;;;;;-1:-1:-1;1577:342:5;;;;;:::i;:::-;;:::i;2843:118:15:-;;;;;;;;;;-1:-1:-1;2843:118:15;;;;;:::i;:::-;;:::i;1831:101:9:-;;;;;;;;;;;;;:::i;681:54:15:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5916:32:25;;;5898:51;;5886:2;5871:18;681:54:15;5721:234:25;520:51:4;;;;;;;;;;-1:-1:-1;520:51:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;577:65::-;;;;;;;;;;-1:-1:-1;577:65:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:9;;;;;;;;;;-1:-1:-1;1247:7:9;1273:6;-1:-1:-1;;;;;1273:6:9;1201:85;;648:23:4;;;;;;;;;;-1:-1:-1;648:23:4;;;;-1:-1:-1;;;;;648:23:4;;;4898:326;;;;;;;;;;-1:-1:-1;4898:326:4;;;;;:::i;:::-;;:::i;4614:278::-;;;;;;;;;;-1:-1:-1;4614:278:4;;;;;:::i;:::-;;:::i;312:43:15:-;;;;;;;;;;-1:-1:-1;312:43:15;;;;;:::i;:::-;;;;;;;;;;;;;;468:46:4;;;;;;;;;;;;;;;5230:133;;;;;;;;;;-1:-1:-1;5230:133:4;;;;;:::i;:::-;;:::i;3626:202::-;;;;;;;;;;-1:-1:-1;3626:202:4;;;;;:::i;:::-;;:::i;2100:757:5:-;;;;;;:::i;:::-;;:::i;5369:280:4:-;;;;;;;;;;-1:-1:-1;5369:280:4;;;;;:::i;:::-;;:::i;4413:195::-;;;;;;;;;;-1:-1:-1;4413:195:4;;;;;:::i;:::-;;:::i;2081:198:9:-;;;;;;;;;;-1:-1:-1;2081:198:9;;;;;:::i;:::-;;:::i;465:43:15:-;;;;;;;;;;-1:-1:-1;465:43:15;;;;;;;;;;;;;-1:-1:-1;;;465:43:15;;;;;;;;;;;;9006:2:25;8995:22;;;8977:41;;9054:22;;;;9049:2;9034:18;;9027:50;9093:18;;;9086:34;9151:2;9136:18;;9129:34;;;;8964:3;8949:19;465:43:15;8750:419:25;386:57:15;;;;;;;;;;-1:-1:-1;386:57:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;386:57:15;;;;;;;;;3358:209:4;;;;;;;;;;-1:-1:-1;3358:209:4;;;;;:::i;:::-;;:::i;1035:753::-;719:10:13;1273::4;-1:-1:-1;;;;;1249:35:4;;1241:78;;;;-1:-1:-1;;;1241:78:4;;9975:2:25;1241:78:4;;;9957:21:25;10014:2;9994:18;;;9987:30;10053:32;10033:18;;;10026:60;10103:18;;1241:78:4;;;;;;;;;1359:32;;;1330:26;1359:32;;;:19;:32;;;;;1330:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:13;:20;1541:11;;:18;;:42;:70;;;;;1610:1;1587:13;:20;:24;1541:70;:124;;;;-1:-1:-1;1641:24:4;;;;;;1615:22;;;;1625:11;;;;1615:22;:::i;:::-;;;;;;;;:50;1541:124;1533:175;;;;-1:-1:-1;;;1533:175:4;;10995:2:25;1533:175:4;;;10977:21:25;11034:2;11014:18;;;11007:30;11073:34;11053:18;;;11046:62;-1:-1:-1;;;11124:18:25;;;11117:36;11170:19;;1533:175:4;10793:402:25;1533:175:4;1719:62;1738:11;1751;;1719:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1719:62:4;;;;;;;;;;;;;;;;;;;;;;1764:6;;-1:-1:-1;1719:62:4;-1:-1:-1;1772:8:4;;;;;;1719:62;;1772:8;;;;1719:62;;;;;;;;;-1:-1:-1;1719:18:4;;-1:-1:-1;;;1719:62:4:i;:::-;1166:622;1035:753;;;;;;:::o;3834:121::-;1094:13:9;:11;:13::i;:::-;3913:35:4::1;::::0;-1:-1:-1;;;3913:35:4;;11374:6:25;11362:19;;3913:35:4::1;::::0;::::1;11344:38:25::0;3913:10:4::1;-1:-1:-1::0;;;;;3913:25:4::1;::::0;::::1;::::0;11317:18:25;;3913:35:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3834:121:::0;:::o;3961:127::-;1094:13:9;:11;:13::i;:::-;4043:38:4::1;::::0;-1:-1:-1;;;4043:38:4;;11374:6:25;11362:19;;4043:38:4::1;::::0;::::1;11344::25::0;4043:10:4::1;-1:-1:-1::0;;;;;4043:28:4::1;::::0;::::1;::::0;11317:18:25;;4043:38:4::1;11200:188:25::0;2967:106:15;3034:32;;;;;;;;3049:16;3034:32;;;;;;;-1:-1:-1;;;3034:32:15;;;;;;;;;;;;;;;;;;;;;;;;3011:4;;3034:32;;:14;:32::i;:::-;3027:39;;2967:106;:::o;3107:133::-;3188:4;3211:22;3226:6;3211:14;:22::i;:::-;3204:29;3107:133;-1:-1:-1;;3107:133:15:o;5744:247:4:-;5885:32;;;5840:4;5885:32;;;:19;:32;;;;;5856:61;;5840:4;;5885:32;5856:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5972:11;;5962:22;;;;;;;:::i;:::-;;;;;;;;5944:13;5934:24;;;;;;:50;5927:57;;;5744:247;;;;;;:::o;4094:176::-;1094:13:9;:11;:13::i;:::-;4208:55:4::1;::::0;-1:-1:-1;;;4208:55:4;;-1:-1:-1;;;;;4208:10:4::1;:29;::::0;::::1;::::0;:55:::1;::::0;4238:11;;4251;;;;4208:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;1577:342:5::0;719:10:13;1789:4:5;1765:29;1757:80;;;;-1:-1:-1;;;1757:80:5;;12197:2:25;1757:80:5;;;12179:21:25;12236:2;12216:18;;;12209:30;12275:34;12255:18;;;12248:62;-1:-1:-1;;;12326:18:25;;;12319:36;12372:19;;1757:80:5;11995:402:25;1757:80:5;1847:65;1869:11;1882;;1847:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1847:65:5;;;;;;;;;;;;;;;;;;;;;;1895:6;;-1:-1:-1;1847:65:5;-1:-1:-1;1903:8:5;;;;;;1847:65;;1903:8;;;;1847:65;;;;;;;;;-1:-1:-1;1847:21:5;;-1:-1:-1;;;1847:65:5:i;:::-;1577:342;;;;;;:::o;2843:118:15:-;-1:-1:-1;;;;;2936:17:15;;2898:4;2936:17;;;:10;:17;;;;;;;;2921:33;;;;;;;;;;;;;;;-1:-1:-1;;;2921:33:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:33::i;1831:101:9:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;520:51:4:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4898:326::-;5021:35;;;5001:17;5021:35;;;:19;:35;;;;;5001:55;;4977:12;;5001:17;5021:35;5001:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5074:4;:11;5089:1;5074:16;;5066:58;;;;-1:-1:-1;;;5066:58:4;;12604:2:25;5066:58:4;;;12586:21:25;12643:2;12623:18;;;12616:30;12682:31;12662:18;;;12655:59;12731:18;;5066:58:4;12402:353:25;5066:58:4;5141:31;5152:1;5169:2;5155:4;:11;:16;;;;:::i;:::-;5141:4;;:31;:10;:31::i;4614:278::-;1094:13:9;:11;:13::i;:::-;4785:14:4::1;;4809:4;4768:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4768:47:4;;::::1;::::0;;;;;;4730:35:::1;::::0;::::1;;::::0;;;:19:::1;4768:47;4730:35:::0;;;;;;:85;;::::1;::::0;:35;;:85;;::::1;::::0;::::1;:::i;:::-;;4830:55;4854:14;4870;;4830:55;;;;;;;;:::i;:::-;;;;;;;;4614:278:::0;;;:::o;5230:133::-;1094:13:9;:11;:13::i;:::-;5299:8:4::1;:20:::0;;-1:-1:-1;;;;;;5299:20:4::1;-1:-1:-1::0;;;;;5299:20:4;::::1;::::0;;::::1;::::0;;;5334:22:::1;::::0;5898:51:25;;;5334:22:4::1;::::0;5886:2:25;5871:18;5334:22:4::1;;;;;;;5230:133:::0;:::o;3626:202::-;1094:13:9;:11;:13::i;:::-;3759:62:4::1;::::0;-1:-1:-1;;;3759:62:4;;-1:-1:-1;;;;;3759:10:4::1;:20;::::0;::::1;::::0;:62:::1;::::0;3780:8;;3790;;3800:11;;3813:7;;;;3759:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3626:202:::0;;;;;:::o;2100:757:5:-;2309:27;;;2287:19;2309:27;;;:14;:27;;;;;;:40;;;;2337:11;;;;2309:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2309:48:5;;;;;;;;;;;;-1:-1:-1;2309:48:5;2367:73;;;;-1:-1:-1;;;2367:73:5;;14114:2:25;2367:73:5;;;14096:21:25;14153:2;14133:18;;;14126:30;14192:34;14172:18;;;14165:62;-1:-1:-1;;;14243:18:25;;;14236:33;14286:19;;2367:73:5;13912:399:25;2367:73:5;2481:11;2468:8;;2458:19;;;;;;;:::i;:::-;;;;;;;;:34;2450:80;;;;-1:-1:-1;;;2450:80:5;;14518:2:25;2450:80:5;;;14500:21:25;14557:2;14537:18;;;14530:30;14596:34;14576:18;;;14569:62;-1:-1:-1;;;14647:18:25;;;14640:31;14688:19;;2450:80:5;14316:397:25;2450:80:5;2576:27;;;2635:1;2576:27;;;:14;:27;;;;;;:40;;;;2604:11;;;;2576:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2576:48:5;;;;;;;;;;;;:61;;;;2704:65;;;;;;;;;;;;;;;;;;;2726:11;;2739;;2704:65;;;;;;2739:11;2704:65;;2739:11;2704:65;;;;;;;;;-1:-1:-1;;2704:65:5;;;;;;;;;;;;;;;;;;;;;;2752:6;;-1:-1:-1;2704:65:5;-1:-1:-1;2760:8:5;;;;;;2704:65;;2760:8;;;;2704:65;;;;;;;;;-1:-1:-1;2704:21:5;;-1:-1:-1;;;2704:65:5:i;:::-;2784:66;2804:11;2817;;2830:6;2838:11;2784:66;;;;;;;;;;:::i;:::-;;;;;;;;2233:624;2100:757;;;;;;:::o;5369:280:4:-;1094:13:9;:11;:13::i;:::-;5492:1:4::1;5482:7;:11;5474:45;;;::::0;-1:-1:-1;;;5474:45:4;;15418:2:25;5474:45:4::1;::::0;::::1;15400:21:25::0;15457:2;15437:18;;;15430:30;-1:-1:-1;;;15476:18:25;;;15469:51;15537:18;;5474:45:4::1;15216:345:25::0;5474:45:4::1;5529:28;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;;;:51;;;5595:47;;15789:34:25;;;15839:18;;15832:43;;;;15891:18;;;15884:34;;;5595:47:4::1;::::0;15752:2:25;15737:18;5595:47:4::1;15566:358:25::0;4413:195:4;1094:13:9;:11;:13::i;:::-;4510:32:4::1;::::0;::::1;;::::0;;;:19:::1;:32;::::0;;;;:40:::1;::::0;4545:5;;4510:40:::1;:::i;:::-;;4565:36;4582:11;4595:5;;4565:36;;;;;;;;:::i;2081:198:9:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:9;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:9;;16131:2:25;2161:73:9::1;::::0;::::1;16113:21:25::0;16170:2;16150:18;;;16143:30;16209:34;16189:18;;;16182:62;-1:-1:-1;;;16260:18:25;;;16253:36;16306:19;;2161:73:9::1;15929:402:25::0;2161:73:9::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3358:209:4:-;3492:68;;-1:-1:-1;;;3492:68:4;;16573:6:25;16606:15;;;3492:68:4;;;16588:34:25;16658:15;;16638:18;;;16631:43;3541:4:4;16690:18:25;;;16683:60;16759:18;;;16752:34;;;3461:12:4;;3492:10;-1:-1:-1;;;;;3492:20:4;;;;16535:19:25;;3492:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3492:68:4;;;;;;;;;;;;:::i;:::-;3485:75;3358:209;-1:-1:-1;;;;;3358:209:4:o;980:591:5:-;1129:12;1143:19;1166:153;1200:9;1211:3;1239:34;;;1275:11;1288;1301:6;1309:8;1216:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1216:102:5;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:102:5;-1:-1:-1;;;;;;1216:102:5;;;;;;;;;;1174:4;;1166:153;;:33;:153::i;:::-;1128:191;;;;1377:7;1372:193;;1461:8;1451:19;;;;;;1400:14;:27;1415:11;1400:27;;;;;;;;;;;;;;;1428:11;1400:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1400:48:5;;;;;;;;;:70;;;;1489:65;;;;1503:11;;1516;;1441:6;;1537:8;;1547:6;;1489:65;:::i;:::-;;;;;;;;1118:453;;980:591;;;;:::o;1359:130:9:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:9;719:10:13;1422:23:9;1414:68;;;;-1:-1:-1;;;1414:68:9;;19198:2:25;1414:68:9;;;19180:21:25;;;19217:18;;;19210:30;19276:34;19256:18;;;19249:62;19328:18;;1414:68:9;18996:356:25;3246:278:15;3459:4;;;;3328;;3375:6;;3328:4;;3441:22;;:15;:22;:::i;:::-;3416:1;:7;;;:49;;;;:::i;:::-;3406:6;;:60;;;;:::i;:::-;3392:74;;3490:1;3483:4;:8;;;:34;;3511:4;-1:-1:-1;;;;;3498:19:15;3483:34;;;3494:1;3483:34;3476:41;3246:278;-1:-1:-1;;;;3246:278:15:o;1235:609::-;1516:2;1502:17;;1496:24;1558:7;;;1544:21;;;1558:7;;1544:21;1540:298;;;1581:57;1616:11;1629:8;1581:34;:57::i;:::-;1540:298;;;1673:5;;;1659:19;;;1673:5;;;;;1659:19;1655:183;;;1694:50;1722:11;1735:8;1694:27;:50::i;1655:183::-;1775:52;;-1:-1:-1;;;1775:52:15;;20665:2:25;1775:52:15;;;20647:21:25;20704:2;20684:18;;;20677:30;20743:34;20723:18;;;20716:62;-1:-1:-1;;;20794:18:25;;;20787:40;20844:19;;1775:52:15;20463:406:25;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;8865:2712:7:-;8999:12;9051:7;9035:12;9051:7;9045:2;9035:12;:::i;:::-;:23;;9027:50;;;;-1:-1:-1;;;9027:50:7;;21209:2:25;9027:50:7;;;21191:21:25;21248:2;21228:18;;;21221:30;-1:-1:-1;;;21267:18:25;;;21260:44;21321:18;;9027:50:7;21007:338:25;9027:50:7;9112:16;9121:7;9112:6;:16;:::i;:::-;9095:6;:13;:33;;9087:63;;;;-1:-1:-1;;;9087:63:7;;21552:2:25;9087:63:7;;;21534:21:25;21591:2;21571:18;;;21564:30;-1:-1:-1;;;21610:18:25;;;21603:47;21667:18;;9087:63:7;21350:341:25;9087:63:7;9161:22;9224:15;;9252:1895;;;;11288:4;11282:11;11269:24;;11466:1;11455:9;11448:20;11514:4;11503:9;11499:20;11493:4;11486:34;9217:2317;;9252:1895;9426:4;9420:11;9407:24;;10053:2;10044:7;10040:16;10419:9;10412:17;10406:4;10402:28;10390:9;10379;10375:25;10371:60;10467:7;10463:2;10459:16;10711:6;10697:9;10690:17;10684:4;10680:28;10668:9;10660:6;10656:22;10652:57;10648:70;10493:417;10744:3;10740:2;10737:11;10493:417;;;10882:9;;10871:21;;10785:4;10777:13;;;;10817;10493:417;;;-1:-1:-1;;10928:26:7;;;11128:2;11111:11;-1:-1:-1;;11107:25:7;11101:4;11094:39;-1:-1:-1;9217:2317:7;-1:-1:-1;11561:9:7;8865:2712;-1:-1:-1;;;;8865:2712:7:o;1118:1240:8:-;1275:4;1281:12;1341:15;1366:13;1389:24;1426:8;1416:19;;-1:-1:-1;;;;;1416:19:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1416:19:8;;1389:46;;1904:1;1879;1846:9;1840:16;1812:4;1801:9;1797:20;1767:1;1733:7;1708:4;1690:239;1678:251;;1992:16;1981:27;;2036:8;2027:7;2024:21;2021:76;;;2075:8;2064:19;;2021:76;2178:7;2165:11;2158:28;2294:7;2291:1;2284:4;2271:11;2267:22;2252:50;2329:8;;;;-1:-1:-1;1118:1240:8;-1:-1:-1;;;;;;1118:1240:8:o;1850:613:15:-;1959:20;1981:15;1998:37;2037:44;2096:8;2085:87;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2182:25:15;;;;;;;:11;:25;;;;;;;;:38;;;2230:10;:24;;;;;;:37;;;;;;-1:-1:-1;;;;;2230:37:15;;;-1:-1:-1;;;2230:37:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:36;;;;;;;;;;;;;;;;;;:16;:36;;;;;;;;;;;;2324:43;-1:-1:-1;;;2324:43:15;;;;;5898:51:25;;;;2182:25:15;;-1:-1:-1;2182:38:15;;-1:-1:-1;2230:37:15;;-1:-1:-1;2277:36:15;-1:-1:-1;2324:14:15;:29;;-1:-1:-1;2324:29:15;;5871:18:25;;2324:43:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2382:74;2399:11;2412:12;2426:10;2438:17;2382:74;;;;;;;;;:::i;2469:368::-;2571:44;2630:8;2619:51;;;;;;;;;;;;:::i;:::-;2680:36;;;;;;-1:-1:-1;;;;;2680:36:15;;;-1:-1:-1;;;2680:36:15;;;;:16;:36;;;;;;;;;;;;;;2727;;-1:-1:-1;;;2727:36:15;;;;2568:102;;-1:-1:-1;;;;;;2727:14:15;:34;;-1:-1:-1;2727:34:15;;:36;;;;;2680;;2727;;;;;;;2680;2727:34;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2778:52;2799:11;2812:17;2778:52;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:117:25;99:6;92:5;88:18;81:5;78:29;68:57;;121:1;118;111:12;136:347;187:8;197:6;251:3;244:4;236:6;232:17;228:27;218:55;;269:1;266;259:12;218:55;-1:-1:-1;292:20:25;;-1:-1:-1;;;;;324:30:25;;321:50;;;367:1;364;357:12;321:50;404:4;396:6;392:17;380:29;;456:3;449:4;440:6;432;428:19;424:30;421:39;418:59;;;473:1;470;463:12;418:59;136:347;;;;;:::o;488:171::-;555:20;;-1:-1:-1;;;;;604:30:25;;594:41;;584:69;;649:1;646;639:12;584:69;488:171;;;:::o;664:923::-;770:6;778;786;794;802;810;863:3;851:9;842:7;838:23;834:33;831:53;;;880:1;877;870:12;831:53;919:9;906:23;938:30;962:5;938:30;:::i;:::-;987:5;-1:-1:-1;1043:2:25;1028:18;;1015:32;-1:-1:-1;;;;;1096:14:25;;;1093:34;;;1123:1;1120;1113:12;1093:34;1162:58;1212:7;1203:6;1192:9;1188:22;1162:58;:::i;:::-;1239:8;;-1:-1:-1;1136:84:25;-1:-1:-1;1136:84:25;;-1:-1:-1;1293:37:25;1326:2;1311:18;;1293:37;:::i;:::-;1283:47;;1383:2;1372:9;1368:18;1355:32;1339:48;;1412:2;1402:8;1399:16;1396:36;;;1428:1;1425;1418:12;1396:36;;1467:60;1519:7;1508:8;1497:9;1493:24;1467:60;:::i;:::-;664:923;;;;-1:-1:-1;664:923:25;;-1:-1:-1;664:923:25;;1546:8;;664:923;-1:-1:-1;;;664:923:25:o;1592:245::-;1650:6;1703:2;1691:9;1682:7;1678:23;1674:32;1671:52;;;1719:1;1716;1709:12;1671:52;1758:9;1745:23;1777:30;1801:5;1777:30;:::i;2024:127::-;2085:10;2080:3;2076:20;2073:1;2066:31;2116:4;2113:1;2106:15;2140:4;2137:1;2130:15;2156:275;2227:2;2221:9;2292:2;2273:13;;-1:-1:-1;;2269:27:25;2257:40;;-1:-1:-1;;;;;2312:34:25;;2348:22;;;2309:62;2306:88;;;2374:18;;:::i;:::-;2410:2;2403:22;2156:275;;-1:-1:-1;2156:275:25:o;2436:120::-;2525:5;2521:2;2510:21;2503:5;2500:32;2490:60;;2546:1;2543;2536:12;2561:774;2643:6;2696:3;2684:9;2675:7;2671:23;2667:33;2664:53;;;2713:1;2710;2703:12;2664:53;2746:2;2740:9;2788:3;2780:6;2776:16;2858:6;2846:10;2843:22;-1:-1:-1;;;;;2810:10:25;2807:34;2804:62;2801:88;;;2869:18;;:::i;:::-;2905:2;2898:22;2942:23;;2974:30;2942:23;2974:30;:::i;:::-;3013:21;;3086:2;3071:18;;3058:32;3099;3058;3099;:::i;:::-;3159:2;3147:15;;3140:32;3233:2;3218:18;;;3205:32;3188:15;;;3181:57;3299:2;3284:18;;;3271:32;3254:15;;;3247:57;;;;-1:-1:-1;3151:6:25;2561:774;-1:-1:-1;2561:774:25:o;3340:542::-;3418:6;3426;3434;3487:2;3475:9;3466:7;3462:23;3458:32;3455:52;;;3503:1;3500;3493:12;3455:52;3542:9;3529:23;3561:30;3585:5;3561:30;:::i;:::-;3610:5;-1:-1:-1;3666:2:25;3651:18;;3638:32;-1:-1:-1;;;;;3682:30:25;;3679:50;;;3725:1;3722;3715:12;3679:50;3764:58;3814:7;3805:6;3794:9;3790:22;3764:58;:::i;:::-;3340:542;;3841:8;;-1:-1:-1;3738:84:25;;-1:-1:-1;;;;3340:542:25:o;4079:186::-;4127:4;-1:-1:-1;;;;;4152:6:25;4149:30;4146:56;;;4182:18;;:::i;:::-;-1:-1:-1;4248:2:25;4227:15;-1:-1:-1;;4223:29:25;4254:4;4219:40;;4079:186::o;4270:876::-;4354:6;4362;4370;4423:2;4411:9;4402:7;4398:23;4394:32;4391:52;;;4439:1;4436;4429:12;4391:52;4478:9;4465:23;4497:30;4521:5;4497:30;:::i;:::-;4546:5;-1:-1:-1;4602:2:25;4587:18;;4574:32;-1:-1:-1;;;;;4618:30:25;;4615:50;;;4661:1;4658;4651:12;4615:50;4684:22;;4737:4;4729:13;;4725:27;-1:-1:-1;4715:55:25;;4766:1;4763;4756:12;4715:55;4802:2;4789:16;4827:48;4843:31;4871:2;4843:31;:::i;:::-;4827:48;:::i;:::-;4898:2;4891:5;4884:17;4938:7;4933:2;4928;4924;4920:11;4916:20;4913:33;4910:53;;;4959:1;4956;4949:12;4910:53;5014:2;5009;5005;5001:11;4996:2;4989:5;4985:14;4972:45;5058:1;5053:2;5048;5041:5;5037:14;5033:23;5026:34;5079:5;5069:15;;;;;5103:37;5136:2;5125:9;5121:18;5103:37;:::i;:::-;5093:47;;4270:876;;;;;:::o;5333:131::-;-1:-1:-1;;;;;5408:31:25;;5398:42;;5388:70;;5454:1;5451;5444:12;5469:247;5528:6;5581:2;5569:9;5560:7;5556:23;5552:32;5549:52;;;5597:1;5594;5587:12;5549:52;5636:9;5623:23;5655:31;5680:5;5655:31;:::i;5960:258::-;6032:1;6042:113;6056:6;6053:1;6050:13;6042:113;;;6132:11;;;6126:18;6113:11;;;6106:39;6078:2;6071:10;6042:113;;;6173:6;6170:1;6167:13;6164:48;;;6208:1;6199:6;6194:3;6190:16;6183:27;6164:48;;5960:258;;;:::o;6223:257::-;6264:3;6302:5;6296:12;6329:6;6324:3;6317:19;6345:63;6401:6;6394:4;6389:3;6385:14;6378:4;6371:5;6367:16;6345:63;:::i;:::-;6462:2;6441:15;-1:-1:-1;;6437:29:25;6428:39;;;;6469:4;6424:50;;6223:257;-1:-1:-1;;6223:257:25:o;6485:217::-;6632:2;6621:9;6614:21;6595:4;6652:44;6692:2;6681:9;6677:18;6669:6;6652:44;:::i;6707:384::-;6773:6;6781;6834:2;6822:9;6813:7;6809:23;6805:32;6802:52;;;6850:1;6847;6840:12;6802:52;6889:9;6876:23;6908:30;6932:5;6908:30;:::i;:::-;6957:5;-1:-1:-1;7014:2:25;6999:18;;6986:32;7027;6986;7027;:::i;:::-;7078:7;7068:17;;;6707:384;;;;;:::o;7538:750::-;7633:6;7641;7649;7657;7665;7718:3;7706:9;7697:7;7693:23;7689:33;7686:53;;;7735:1;7732;7725:12;7686:53;7774:9;7761:23;7793:30;7817:5;7793:30;:::i;:::-;7842:5;-1:-1:-1;7899:2:25;7884:18;;7871:32;7912;7871;7912;:::i;:::-;7963:7;-1:-1:-1;8017:2:25;8002:18;;7989:32;;-1:-1:-1;8072:2:25;8057:18;;8044:32;-1:-1:-1;;;;;8088:30:25;;8085:50;;;8131:1;8128;8121:12;8085:50;8170:58;8220:7;8211:6;8200:9;8196:22;8170:58;:::i;:::-;7538:750;;;;-1:-1:-1;7538:750:25;;-1:-1:-1;8247:8:25;;8144:84;7538:750;-1:-1:-1;;;7538:750:25:o;8293:452::-;8368:6;8376;8384;8437:2;8425:9;8416:7;8412:23;8408:32;8405:52;;;8453:1;8450;8443:12;8405:52;8492:9;8479:23;8511:30;8535:5;8511:30;:::i;:::-;8560:5;-1:-1:-1;8617:2:25;8602:18;;8589:32;8630;8589;8630;:::i;:::-;8293:452;;8681:7;;-1:-1:-1;;;8735:2:25;8720:18;;;;8707:32;;8293:452::o;9174:594::-;9258:6;9266;9274;9282;9335:3;9323:9;9314:7;9310:23;9306:33;9303:53;;;9352:1;9349;9342:12;9303:53;9391:9;9378:23;9410:30;9434:5;9410:30;:::i;:::-;9459:5;-1:-1:-1;9516:2:25;9501:18;;9488:32;9529;9488;9529;:::i;:::-;9580:7;-1:-1:-1;9639:2:25;9624:18;;9611:32;9652:33;9611:32;9652:33;:::i;:::-;9174:594;;;;-1:-1:-1;9704:7:25;;9758:2;9743:18;9730:32;;-1:-1:-1;;9174:594:25:o;10132:380::-;10211:1;10207:12;;;;10254;;;10275:61;;10329:4;10321:6;10317:17;10307:27;;10275:61;10382:2;10374:6;10371:14;10351:18;10348:38;10345:161;;;10428:10;10423:3;10419:20;10416:1;10409:31;10463:4;10460:1;10453:15;10491:4;10488:1;10481:15;10345:161;;10132:380;;;:::o;10517:271::-;10700:6;10692;10687:3;10674:33;10656:3;10726:16;;10751:13;;;10726:16;10517:271;-1:-1:-1;10517:271:25:o;11393:266::-;11481:6;11476:3;11469:19;11533:6;11526:5;11519:4;11514:3;11510:14;11497:43;-1:-1:-1;11585:1:25;11560:16;;;11578:4;11556:27;;;11549:38;;;;11641:2;11620:15;;;-1:-1:-1;;11616:29:25;11607:39;;;11603:50;;11393:266::o;11664:326::-;11859:6;11851;11847:19;11836:9;11829:38;11903:2;11898;11887:9;11883:18;11876:30;11810:4;11923:61;11980:2;11969:9;11965:18;11957:6;11949;11923:61;:::i;12760:127::-;12821:10;12816:3;12812:20;12809:1;12802:31;12852:4;12849:1;12842:15;12876:4;12873:1;12866:15;12892:125;12932:4;12960:1;12957;12954:8;12951:34;;;12965:18;;:::i;:::-;-1:-1:-1;13002:9:25;;12892:125::o;13022:382::-;13233:6;13225;13220:3;13207:33;13325:2;13321:15;;;;-1:-1:-1;;13317:53:25;13259:16;;13306:65;;;13395:2;13387:11;;13022:382;-1:-1:-1;13022:382:25:o;13409:498::-;13609:4;13638:6;13683:2;13675:6;13671:15;13660:9;13653:34;13735:2;13727:6;13723:15;13718:2;13707:9;13703:18;13696:43;;13775:6;13770:2;13759:9;13755:18;13748:34;13818:3;13813:2;13802:9;13798:18;13791:31;13839:62;13896:3;13885:9;13881:19;13873:6;13865;13839:62;:::i;:::-;13831:70;13409:498;-1:-1:-1;;;;;;;13409:498:25:o;14718:493::-;14967:6;14959;14955:19;14944:9;14937:38;15011:3;15006:2;14995:9;14991:18;14984:31;14918:4;15032:62;15089:3;15078:9;15074:19;15066:6;15058;15032:62;:::i;:::-;-1:-1:-1;;;;;15130:31:25;;;;15125:2;15110:18;;15103:59;-1:-1:-1;15193:2:25;15178:18;15171:34;15024:70;14718:493;-1:-1:-1;;;14718:493:25:o;16797:634::-;16876:6;16929:2;16917:9;16908:7;16904:23;16900:32;16897:52;;;16945:1;16942;16935:12;16897:52;16978:9;16972:16;-1:-1:-1;;;;;17003:6:25;17000:30;16997:50;;;17043:1;17040;17033:12;16997:50;17066:22;;17119:4;17111:13;;17107:27;-1:-1:-1;17097:55:25;;17148:1;17145;17138:12;17097:55;17177:2;17171:9;17202:48;17218:31;17246:2;17218:31;:::i;17202:48::-;17273:2;17266:5;17259:17;17313:7;17308:2;17303;17299;17295:11;17291:20;17288:33;17285:53;;;17334:1;17331;17324:12;17285:53;17347:54;17398:2;17393;17386:5;17382:14;17377:2;17373;17369:11;17347:54;:::i;17436:555::-;17693:6;17685;17681:19;17670:9;17663:38;17737:3;17732:2;17721:9;17717:18;17710:31;17644:4;17764:45;17804:3;17793:9;17789:19;17781:6;17764:45;:::i;:::-;-1:-1:-1;;;;;17849:6:25;17845:31;17840:2;17829:9;17825:18;17818:59;17925:9;17917:6;17913:22;17908:2;17897:9;17893:18;17886:50;17953:32;17978:6;17970;17953:32;:::i;17996:274::-;18125:3;18163:6;18157:13;18179:53;18225:6;18220:3;18213:4;18205:6;18201:17;18179:53;:::i;:::-;18248:16;;;;;17996:274;-1:-1:-1;;17996:274:25:o;18275:716::-;18578:6;18570;18566:19;18555:9;18548:38;18622:3;18617:2;18606:9;18602:18;18595:31;18529:4;18649:45;18689:3;18678:9;18674:19;18666:6;18649:45;:::i;:::-;-1:-1:-1;;;;;18734:6:25;18730:31;18725:2;18714:9;18710:18;18703:59;18810:9;18802:6;18798:22;18793:2;18782:9;18778:18;18771:50;18844:32;18869:6;18861;18844:32;:::i;:::-;18830:46;;18925:9;18917:6;18913:22;18907:3;18896:9;18892:19;18885:51;18953:32;18978:6;18970;18953:32;:::i;:::-;18945:40;18275:716;-1:-1:-1;;;;;;;;18275:716:25:o;19357:698::-;19396:7;19444:1;19440:2;19429:17;19481:1;19477:2;19466:17;-1:-1:-1;;;;;19564:1:25;19559:3;19555:11;19594:1;19589:3;19585:11;19641:3;19637:2;19633:12;19628:3;19625:21;19620:2;19616;19612:11;19608:39;19605:65;;;19650:18;;:::i;:::-;-1:-1:-1;;19756:1:25;19747:11;;19774;;;19796:13;;;19787:23;;19770:41;19767:67;;;19814:18;;:::i;:::-;19862:1;19857:3;19853:11;19843:21;;19911:3;19907:2;19902:13;19897:3;19893:23;19888:2;19884;19880:11;19876:41;19873:67;;;19920:18;;:::i;:::-;19987:3;19983:2;19978:13;19973:3;19969:23;19964:2;19960;19956:11;19952:41;19949:67;;;19996:18;;:::i;:::-;-1:-1:-1;;;20036:13:25;;;;;19357:698;-1:-1:-1;;;;;19357:698:25:o;20060:398::-;20099:4;20144:1;20140:2;20129:17;20181:1;20177:2;20166:17;20211:1;20206:3;20202:11;20295:3;-1:-1:-1;;;;;20254:39:25;20250:49;20245:3;20241:59;20236:2;20229:10;20225:76;20222:102;;;20304:18;;:::i;:::-;20393:3;-1:-1:-1;;;;;20353:44:25;20348:3;20344:54;20340:2;20336:63;20333:89;;;20402:18;;:::i;:::-;-1:-1:-1;20439:13:25;;;20060:398;-1:-1:-1;;;20060:398:25:o;20874:128::-;20914:3;20945:1;20941:6;20938:1;20935:13;20932:39;;;20951:18;;:::i;:::-;-1:-1:-1;20987:9:25;;20874:128::o;21696:729::-;21759:5;21807:4;21795:9;21790:3;21786:19;21782:30;21779:50;;;21825:1;21822;21815:12;21779:50;21858:2;21852:9;21900:4;21892:6;21888:17;21971:6;21959:10;21956:22;-1:-1:-1;;;;;21923:10:25;21920:34;21917:62;21914:88;;;21982:18;;:::i;:::-;22022:10;22018:2;22011:22;;22051:6;22042:15;;22087:9;22081:16;22106:32;22130:7;22106:32;:::i;:::-;22147:23;;22215:2;22200:18;;22194:25;22228:32;22194:25;22228:32;:::i;:::-;22293:7;22288:2;22280:6;22276:15;22269:32;;22355:2;22344:9;22340:18;22334:25;22329:2;22321:6;22317:15;22310:50;22414:2;22403:9;22399:18;22393:25;22388:2;22380:6;22376:15;22369:50;;21696:729;;;;:::o;22430:698::-;22589:6;22597;22605;22613;22621;22674:3;22662:9;22653:7;22649:23;22645:33;22642:53;;;22691:1;22688;22681:12;22642:53;22723:9;22717:16;22742:30;22766:5;22742:30;:::i;:::-;22841:2;22826:18;;22820:25;22791:5;;-1:-1:-1;22854:33:25;22820:25;22854:33;:::i;:::-;22953:2;22938:18;;22932:25;22906:7;;-1:-1:-1;22932:25:25;-1:-1:-1;22976:63:25;23031:7;23026:2;23011:18;;22976:63;:::i;:::-;22966:73;;23058:64;23114:7;23108:3;23097:9;23093:19;23058:64;:::i;:::-;23048:74;;22430:698;;;;;;;;:::o;23428:555::-;23779:6;23767:19;;23749:38;;-1:-1:-1;;;;;23823:32:25;;23818:2;23803:18;;23796:60;23736:3;23721:19;;23865:51;23912:2;23897:18;;23889:6;23225:5;23219:12;23215:2;23204:28;23199:3;23192:41;23297:4;23290:5;23286:16;23280:23;23276:2;23265:39;23258:4;23253:3;23249:14;23242:63;23354:4;23347:5;23343:16;23337:23;23330:4;23325:3;23321:14;23314:47;23410:4;23403:5;23399:16;23393:23;23386:4;23381:3;23377:14;23370:47;;;23133:290;23865:51;23219:12;;23215:2;23204:28;;;23972:3;23957:19;;23192:41;23297:4;23286:16;;23280:23;23265:39;;23249:14;;;23242:63;23354:4;23343:16;;23337:23;23321:14;;;23314:47;23410:4;23399:16;;23393:23;23377:14;;;23370:47;23925:52;23133:290;23988:372;24089:6;24097;24150:3;24138:9;24129:7;24125:23;24121:33;24118:53;;;24167:1;24164;24157:12;24118:53;24199:9;24193:16;24218:30;24242:5;24218:30;:::i;:::-;24267:5;-1:-1:-1;24291:63:25;24346:7;24341:2;24326:18;;24291:63;:::i;:::-;24281:73;;23988:372;;;;;:::o;24365:323::-;24614:6;24602:19;;24584:38;;24571:3;24556:19;;24631:51;24678:2;24663:18;;24655:6;23225:5;23219:12;23215:2;23204:28;23199:3;23192:41;23297:4;23290:5;23286:16;23280:23;23276:2;23265:39;23258:4;23253:3;23249:14;23242:63;23354:4;23347:5;23343:16;23337:23;23330:4;23325:3;23321:14;23314:47;23410:4;23403:5;23399:16;23393:23;23386:4;23381:3;23377:14;23370:47;;;23133:290"},"gasEstimates":{"creation":{"codeDepositCost":"1942600","executionCost":"infinite","totalCost":"infinite"},"external":{"balanceOf(address)":"7744","delegationHook()":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getPointValue((int128,int128,uint256,uint256))":"infinite","getTrustedRemoteAddress(uint16)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","locked__end(address)":"2569","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","owner()":"2377","precrime()":"2405","renounceOwnership()":"infinite","retryMessage(uint16,bytes,uint64,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMinDstGas(uint16,uint16,uint256)":"infinite","setPrecrime(address)":"27893","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","totalSupply()":"7438","totalSupplyPoint()":"6700","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","userPoints(address)":"6958"},"internal":{"_getPointValue(struct IVotingEscrow.Point memory)":"infinite","_nonblockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite","_updateTotalSupplyFromChain(uint16,bytes memory)":"infinite","_updateUserAndTotalSupplyFromChain(uint16,bytes memory)":"infinite"}},"methodIdentifiers":{"balanceOf(address)":"70a08231","delegationHook()":"74d2495f","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getPointValue((int128,int128,uint256,uint256))":"378ef708","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","locked__end(address)":"adc63589","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","totalSupply()":"18160ddd","totalSupplyPoint()":"f4182acb","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","userPoints(address)":"f50ddbc7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegationHook\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"TotalSupplyFromChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"userPoint\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"UserBalFromChain\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationHook\",\"outputs\":[{\"internalType\":\"contract IL2LayerZeroDelegation\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"_point\",\"type\":\"tuple\"}],\"name\":\"getPointValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"locked__end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupplyPoint\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userPoints\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OmniVotingEscrowChild.sol\":\"OmniVotingEscrowChild\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/OmniVotingEscrowChild.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"./interfaces/IVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IL2LayerZeroDelegation.sol\\\";\\nimport \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\n\\ncontract OmniVotingEscrowChild is NonblockingLzApp {\\n mapping(address => uint) public locked__end; // -> end of lock period\\n mapping(address => IVotingEscrow.Point) public userPoints; // -> balanceOf\\n IVotingEscrow.Point public totalSupplyPoint; // -> totalSupply\\n\\n // Packet types for child chains:\\n uint16 PT_USER = 0; // user balance and total supply update\\n uint16 PT_TS = 1; // total supply update\\n\\n IL2LayerZeroDelegation public immutable delegationHook;\\n\\n event UserBalFromChain(uint16 srcChainId, address user, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\\n event TotalSupplyFromChain(uint16 srcChainId, IVotingEscrow.Point totalSupplyPoint);\\n\\n constructor(address _lzEndpoint, address _delegationHook) NonblockingLzApp(_lzEndpoint) {\\n require(_delegationHook != address(0x0), \\\"OmniVotingEscrowChild: delegation hook cannot be 0x0\\\");\\n delegationHook = IL2LayerZeroDelegation(_delegationHook);\\n }\\n\\n function _nonblockingLzReceive(\\n uint16 _srcChainId,\\n bytes memory, /*_srcAddress*/\\n uint64, /*_nonce*/\\n bytes memory _payload\\n ) internal virtual override {\\n uint16 packetType;\\n assembly {\\n packetType := mload(add(_payload, 32))\\n }\\n\\n if (packetType == PT_USER) {\\n _updateUserAndTotalSupplyFromChain(_srcChainId, _payload);\\n } else if (packetType == PT_TS) {\\n _updateTotalSupplyFromChain(_srcChainId, _payload);\\n } else {\\n revert(\\\"OmniVotingEscrowChild: unknown packet type\\\");\\n }\\n }\\n\\n function _updateUserAndTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\\n (, address _userAddress, uint _lockedEnd, IVotingEscrow.Point memory _userPoint, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, address, uint, IVotingEscrow.Point, IVotingEscrow.Point));\\n locked__end[_userAddress] = _lockedEnd;\\n userPoints[_userAddress] = _userPoint;\\n totalSupplyPoint = _totalSupplyPoint;\\n\\n delegationHook.onVeBalBridged(_userAddress);\\n emit UserBalFromChain(_srcChainId, _userAddress, _userPoint, _totalSupplyPoint);\\n }\\n\\n function _updateTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\\n (, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, IVotingEscrow.Point));\\n totalSupplyPoint = _totalSupplyPoint;\\n\\n delegationHook.onVeBalSupplyUpdate();\\n emit TotalSupplyFromChain(_srcChainId, _totalSupplyPoint);\\n }\\n\\n function balanceOf(address _user) public view returns (uint) {\\n return _getPointValue(userPoints[_user]);\\n }\\n\\n function totalSupply() public view returns (uint) {\\n return _getPointValue(totalSupplyPoint);\\n }\\n\\n // external for testing\\n function getPointValue(IVotingEscrow.Point memory _point) external view returns (uint) {\\n return _getPointValue(_point);\\n }\\n\\n function _getPointValue(IVotingEscrow.Point memory _point) internal view returns (uint) {\\n IVotingEscrow.Point memory p = _point;\\n\\n int128 bias = p.bias - (p.slope * int128(uint128(block.timestamp - p.ts)));\\n return bias < 0 ? 0 : uint(uint128(bias));\\n }\\n}\\n\",\"keccak256\":\"0xdd98676f42d4b6900bcdb52ce8311b15fc4beb6eed5e197613d2c3dd6b105d4c\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":4106,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"locked__end","offset":0,"slot":"5","type":"t_mapping(t_address,t_uint256)"},{"astId":4111,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"userPoints","offset":0,"slot":"6","type":"t_mapping(t_address,t_struct(Point)4477_storage)"},{"astId":4114,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"totalSupplyPoint","offset":0,"slot":"7","type":"t_struct(Point)4477_storage"},{"astId":4117,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"PT_USER","offset":0,"slot":"10","type":"t_uint16"},{"astId":4120,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"PT_TS","offset":2,"slot":"10","type":"t_uint16"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_address,t_struct(Point)4477_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct IVotingEscrow.Point)","numberOfBytes":"32","value":"t_struct(Point)4477_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_struct(Point)4477_storage":{"encoding":"inplace","label":"struct IVotingEscrow.Point","members":[{"astId":4470,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"bias","offset":0,"slot":"0","type":"t_int128"},{"astId":4472,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"slope","offset":16,"slot":"0","type":"t_int128"},{"astId":4474,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"ts","offset":0,"slot":"1","type":"t_uint256"},{"astId":4476,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"blk","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"IL2LayerZeroDelegation":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"onVeBalBridged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onVeBalSupplyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"onVeBalBridged(address)":"df130bfe","onVeBalSupplyUpdate()":"96345fb5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"onVeBalBridged\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onVeBalSupplyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":\"IL2LayerZeroDelegation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.","version":1}}},"contracts/interfaces/IOmniVotingEscrow.sol":{"IOmniVotingEscrow":{"abi":[{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendTotalSupply","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendUserBalance","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendTotalSupply","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendUserBalance","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"Partial voting escrow bridge interface. See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"estimateSendTotalSupply(uint16,bool,bytes)":"16334c8f","estimateSendUserBalance(uint16,bool,bytes)":"65d092d0","sendTotalSupply(uint16,address,address,bytes)":"416b154a","sendUserBalance(address,uint16,address,address,bytes)":"4a759489"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendUserBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendTotalSupply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendUserBalance\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Partial voting escrow bridge interface. See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":\"IOmniVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IVotingEscrow.sol":{"IVotingEscrow":{"abi":[{"inputs":[],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"locked__end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"point_history","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"user_point_epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"user_point_history","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"checkpoint()":"c2c4c5c1","epoch()":"900cf0cf","locked__end(address)":"adc63589","point_history(uint256)":"d1febfb9","user_point_epoch(address)":"010ae757","user_point_history(address,uint256)":"28d09d47"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"locked__end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"point_history\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"user_point_epoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"user_point_history\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IVotingEscrow.sol\":\"IVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IVotingEscrowRemapper.sol":{"IVotingEscrowRemapper":{"abi":[{"inputs":[{"internalType":"address","name":"localUser","type":"address"},{"internalType":"uint16","name":"chainId","type":"uint16"}],"name":"getRemoteUser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVotingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"getRemoteUser(address,uint16)":{"details":"Returns `address(0)` if the remapping does not exist for the given local user.","params":{"chainId":"- The chain ID of the network which the remote user is on.","localUser":"- Address of the user on the local chain which are querying the remote address for."}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRemoteUser(address,uint16)":"bda75c38","getVotingEscrow()":"08b0308a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"getRemoteUser\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVotingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRemoteUser(address,uint16)\":{\"details\":\"Returns `address(0)` if the remapping does not exist for the given local user.\",\"params\":{\"chainId\":\"- The chain ID of the network which the remote user is on.\",\"localUser\":\"- Address of the user on the local chain which are querying the remote address for.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getRemoteUser(address,uint16)\":{\"notice\":\"Returns the remote user corresponding to an address on the local chain.\"},\"getVotingEscrow()\":{\"notice\":\"Returns Voting Escrow contract address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IVotingEscrowRemapper.sol\":\"IVotingEscrowRemapper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"getRemoteUser(address,uint16)":{"notice":"Returns the remote user corresponding to an address on the local chain."},"getVotingEscrow()":{"notice":"Returns Voting Escrow contract address."}},"version":1}}},"contracts/mocks/ERC20Mock.sol":{"ERC20Mock":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"@_4557":{"entryPoint":null,"id":4557,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":298,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":481,"id":null,"parameterSlots":2,"returnSlots":2},"extract_byte_array_length":{"entryPoint":587,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":276,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1985:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1658:325:25","statements":[{"nodeType":"YulAssignment","src":"1668:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1682:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1685:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1668:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1699:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1729:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"1735:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1725:3:25"},"nodeType":"YulFunctionCall","src":"1725:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1703:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1776:31:25","statements":[{"nodeType":"YulAssignment","src":"1778:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1792:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1800:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1788:3:25"},"nodeType":"YulFunctionCall","src":"1788:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1778:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1756:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:25"},"nodeType":"YulFunctionCall","src":"1749:26:25"},"nodeType":"YulIf","src":"1746:61:25"},{"body":{"nodeType":"YulBlock","src":"1866:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1887:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1894:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1899:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1890:3:25"},"nodeType":"YulFunctionCall","src":"1890:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:25"},"nodeType":"YulFunctionCall","src":"1880:31:25"},"nodeType":"YulExpressionStatement","src":"1880:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1934:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1924:6:25"},"nodeType":"YulFunctionCall","src":"1924:15:25"},"nodeType":"YulExpressionStatement","src":"1924:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1962:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1952:6:25"},"nodeType":"YulFunctionCall","src":"1952:15:25"},"nodeType":"YulExpressionStatement","src":"1952:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1822:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1845:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1842:2:25"},"nodeType":"YulFunctionCall","src":"1842:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1819:2:25"},"nodeType":"YulFunctionCall","src":"1819:38:25"},"nodeType":"YulIf","src":"1816:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1638:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1603:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000be238038062000be28339810160408190526200003491620001e1565b8151829082906200004d9060039060208501906200006e565b508051620000639060049060208401906200006e565b505050505062000288565b8280546200007c906200024b565b90600052602060002090601f016020900481019282620000a05760008555620000eb565b82601f10620000bb57805160ff1916838001178555620000eb565b82800160010185558215620000eb579182015b82811115620000eb578251825591602001919060010190620000ce565b50620000f9929150620000fd565b5090565b5b80821115620000f95760008155600101620000fe565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013c57600080fd5b81516001600160401b038082111562000159576200015962000114565b604051601f8301601f19908116603f0116810190828211818310171562000184576200018462000114565b81604052838152602092508683858801011115620001a157600080fd5b600091505b83821015620001c55785820183015181830184015290820190620001a6565b83821115620001d75760008385830101525b9695505050505050565b60008060408385031215620001f557600080fd5b82516001600160401b03808211156200020d57600080fd5b6200021b868387016200012a565b935060208501519150808211156200023257600080fd5b5062000241858286016200012a565b9150509250929050565b600181811c908216806200026057607f821691505b602082108114156200028257634e487b7160e01b600052602260045260246000fd5b50919050565b61094a80620002986000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220a999ce877599ec6ac1fad0880e2252e30ef43d5fc38a48310c06dcb2d702326a64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xBE2 CODESIZE SUB DUP1 PUSH3 0xBE2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1E1 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH3 0x4D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x6E JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x63 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x6E JUMP JUMPDEST POP POP POP POP POP PUSH3 0x288 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x7C SWAP1 PUSH3 0x24B JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0xA0 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xEB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xBB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xEB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xEB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xEB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xCE JUMP JUMPDEST POP PUSH3 0xF9 SWAP3 SWAP2 POP PUSH3 0xFD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xFE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x159 JUMPI PUSH3 0x159 PUSH3 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x184 JUMPI PUSH3 0x184 PUSH3 0x114 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1C5 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x1A6 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1D7 JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x21B DUP7 DUP4 DUP8 ADD PUSH3 0x12A JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x241 DUP6 DUP3 DUP7 ADD PUSH3 0x12A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x260 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x282 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94A DUP1 PUSH3 0x298 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 SWAP10 0xCE DUP8 PUSH22 0x99EC6AC1FAD0880E2252E30EF43D5FC38A48310C06DC 0xB2 0xD7 MUL ORIGIN PUSH11 0x64736F6C634300080A0033 ","sourceMap":"132:206:20:-:0;;;166:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13:10;;228:5:20;;235:7;;2042:13:10;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;166:80:20;;132:206;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;132:206:20;;;-1:-1:-1;132:206:20;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1603:380::-;1682:1;1678:12;;;;1725;;;1746:61;;1800:4;1792:6;1788:17;1778:27;;1746:61;1853:2;1845:6;1842:14;1822:18;1819:38;1816:161;;;1899:10;1894:3;1890:20;1887:1;1880:31;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1816:161;;1603:380;;;:::o;:::-;132:206:20;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":902,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":1736,"id":3400,"parameterSlots":2,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1194,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1316,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":859,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":594,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":717,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":654,"id":3225,"parameterSlots":2,"returnSlots":1},"@mint_4570":{"entryPoint":688,"id":4570,"parameterSlots":2,"returnSlots":0},"@name_3051":{"entryPoint":448,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":702,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":618,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":845,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2012,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2176,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2082,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2040,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1927,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2286,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2227,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6166:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"},{"body":{"nodeType":"YulBlock","src":"5983:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6011:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:25"},"nodeType":"YulFunctionCall","src":"5993:21:25"},"nodeType":"YulExpressionStatement","src":"5993:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6034:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6045:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6030:3:25"},"nodeType":"YulFunctionCall","src":"6030:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6050:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6023:6:25"},"nodeType":"YulFunctionCall","src":"6023:30:25"},"nodeType":"YulExpressionStatement","src":"6023:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6069:3:25"},"nodeType":"YulFunctionCall","src":"6069:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"6089:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6062:6:25"},"nodeType":"YulFunctionCall","src":"6062:61:25"},"nodeType":"YulExpressionStatement","src":"6062:61:25"},{"nodeType":"YulAssignment","src":"6132:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6155:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6140:3:25"},"nodeType":"YulFunctionCall","src":"6140:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6132:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5960:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5974:4:25","type":""}],"src":"5809:355:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220a999ce877599ec6ac1fad0880e2252e30ef43d5fc38a48310c06dcb2d702326a64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 SWAP10 0xCE DUP8 PUSH22 0x99EC6AC1FAD0880E2252E30EF43D5FC38A48310C06DC 0xB2 0xD7 MUL ORIGIN PUSH11 0x64736F6C634300080A0033 ","sourceMap":"132:206:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:10;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;252:84:20:-;;;;;;:::i;:::-;;:::i;:::-;;3406:125:10;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;252:84:20:-;310:19;316:3;321:7;310:5;:19::i;:::-;252:84;;:::o;2365:102:10:-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;8567:535;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;6011:2:25;8642:65:10;;;5993:21:25;6050:2;6030:18;;;6023:30;6089:33;6069:18;;;6062:61;6140:18;;8642:65:10;5809:355:25;8642:65:10;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1391:25:25;;;8999:37:10;;1364:18:25;8999:37:10;;;;;;;252:84:20;;:::o;14:597:25:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"475600","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"27089","mint(address,uint256)":"50800","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/ERC20Mock.sol\":\"ERC20Mock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/mocks/ERC20Mock.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\n// this is a MOCK\\ncontract ERC20Mock is ERC20 {\\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}\\n\\n function mint(address _to, uint _amount) public {\\n _mint(_to, _amount);\\n }\\n}\\n\",\"keccak256\":\"0x4077148f681740d57fff93b1cadd78b0cad1dc7b6f69cf3dac26c550c9d3afec\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/L2LayerZeroDelegation.sol":{"L2LayerZeroDelegation":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"onVeBalBridged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onVeBalSupplyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b5060ab8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806396345fb5146037578063df130bfe146039575b600080fd5b005b603760443660046047565b50565b600060208284031215605857600080fd5b81356001600160a01b0381168114606e57600080fd5b939250505056fea26469706673582212207f5e44f660c3cf1b86fe701dee720d8b0e1c7e7ad89861f829e0eaad55a0cd8364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAB DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x96345FB5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xDF130BFE EQ PUSH1 0x39 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x37 PUSH1 0x44 CALLDATASIZE PUSH1 0x4 PUSH1 0x47 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x5E44F660C3CF1B86FE701DEE720D8B0E1C7E7AD89861F829E0EAAD55A0CD8364 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"123:162:21:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@onVeBalBridged_4582":{"entryPoint":null,"id":4582,"parameterSlots":1,"returnSlots":0},"@onVeBalSupplyUpdate_4586":{"entryPoint":null,"id":4586,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":71,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:302:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:216:25","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:25"},"nodeType":"YulFunctionCall","src":"132:12:25"},"nodeType":"YulExpressionStatement","src":"132:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:25"},"nodeType":"YulFunctionCall","src":"101:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:25"},"nodeType":"YulFunctionCall","src":"97:32:25"},"nodeType":"YulIf","src":"94:52:25"},{"nodeType":"YulVariableDeclaration","src":"155:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"181:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"168:12:25"},"nodeType":"YulFunctionCall","src":"168:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"159:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"254:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:25"},"nodeType":"YulFunctionCall","src":"256:12:25"},"nodeType":"YulExpressionStatement","src":"256:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"213:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"244:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"235:3:25"},"nodeType":"YulFunctionCall","src":"235:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"231:3:25"},"nodeType":"YulFunctionCall","src":"231:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"220:3:25"},"nodeType":"YulFunctionCall","src":"220:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"210:2:25"},"nodeType":"YulFunctionCall","src":"210:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"203:6:25"},"nodeType":"YulFunctionCall","src":"203:50:25"},"nodeType":"YulIf","src":"200:70:25"},{"nodeType":"YulAssignment","src":"279:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"289:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"279:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:25","type":""}],"src":"14:286:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060325760003560e01c806396345fb5146037578063df130bfe146039575b600080fd5b005b603760443660046047565b50565b600060208284031215605857600080fd5b81356001600160a01b0381168114606e57600080fd5b939250505056fea26469706673582212207f5e44f660c3cf1b86fe701dee720d8b0e1c7e7ad89861f829e0eaad55a0cd8364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x96345FB5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xDF130BFE EQ PUSH1 0x39 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x37 PUSH1 0x44 CALLDATASIZE PUSH1 0x4 PUSH1 0x47 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x5E44F660C3CF1B86FE701DEE720D8B0E1C7E7AD89861F829E0EAAD55A0CD8364 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"123:162:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241:42;;186:49;;;;;;:::i;:::-;;;14:286:25;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:25;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:25:o"},"gasEstimates":{"creation":{"codeDepositCost":"34200","executionCost":"87","totalCost":"34287"},"external":{"onVeBalBridged(address)":"257","onVeBalSupplyUpdate()":"98"}},"methodIdentifiers":{"onVeBalBridged(address)":"df130bfe","onVeBalSupplyUpdate()":"96345fb5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"onVeBalBridged\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onVeBalSupplyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/L2LayerZeroDelegation.sol\":\"L2LayerZeroDelegation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"},\"contracts/mocks/L2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../interfaces/IL2LayerZeroDelegation.sol\\\";\\n\\ncontract L2LayerZeroDelegation is IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external {}\\n\\n function onVeBalSupplyUpdate() external {}\\n}\\n\",\"keccak256\":\"0xf0c694b6e109e237ddd072f43d55e6605e2fe62f0cf2bb647c786a41641dbd75\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/LZEndpointMock.sol":{"LZMock":{"abi":[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ValueTransferFailed","type":"event"},{"inputs":[],"name":"blockNextMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdapterParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getLengthOfQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lzEndpointLookup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"msgsToDeliver","outputs":[{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMsgBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeConfig","outputs":[{"internalType":"uint256","name":"zroFee","type":"uint256"},{"internalType":"uint256","name":"nativeBP","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerFeeConfig","outputs":[{"internalType":"uint128","name":"dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"baseGas","type":"uint64"},{"internalType":"uint64","name":"gasPerByte","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"setDefaultAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destAddr","type":"address"},{"internalType":"address","name":"lzEndpointAddr","type":"address"}],"name":"setDestLzEndpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleFee","type":"uint256"}],"name":"setOracleFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"},{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"_dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"_dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"_baseGas","type":"uint64"},{"internalType":"uint64","name":"_gasPerByte","type":"uint64"}],"name":"setRelayerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1343":{"entryPoint":null,"id":1343,"parameterSlots":1,"returnSlots":0},"@_4602":{"entryPoint":null,"id":4602,"parameterSlots":1,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":299,"id":258,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":506,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"extract_byte_array_length":{"entryPoint":551,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:958:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"94:196:25","statements":[{"body":{"nodeType":"YulBlock","src":"140:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"149:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"152:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"142:6:25"},"nodeType":"YulFunctionCall","src":"142:12:25"},"nodeType":"YulExpressionStatement","src":"142:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"115:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"124:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"111:3:25"},"nodeType":"YulFunctionCall","src":"111:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"136:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"107:3:25"},"nodeType":"YulFunctionCall","src":"107:32:25"},"nodeType":"YulIf","src":"104:52:25"},{"nodeType":"YulVariableDeclaration","src":"165:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"184:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"178:5:25"},"nodeType":"YulFunctionCall","src":"178:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"246:6:25"},"nodeType":"YulFunctionCall","src":"246:12:25"},"nodeType":"YulExpressionStatement","src":"246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"234:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"223:3:25"},"nodeType":"YulFunctionCall","src":"223:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"213:2:25"},"nodeType":"YulFunctionCall","src":"213:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"206:6:25"},"nodeType":"YulFunctionCall","src":"206:37:25"},"nodeType":"YulIf","src":"203:57:25"},{"nodeType":"YulAssignment","src":"269:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"279:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"269:6:25"}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"60:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"71:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"83:6:25","type":""}],"src":"14:276:25"},{"body":{"nodeType":"YulBlock","src":"440:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"457:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"475:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"488:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"493:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"484:3:25"},"nodeType":"YulFunctionCall","src":"484:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"462:3:25"},"nodeType":"YulFunctionCall","src":"462:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"450:6:25"},"nodeType":"YulFunctionCall","src":"450:51:25"},"nodeType":"YulExpressionStatement","src":"450:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"521:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"526:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"530:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"510:6:25"},"nodeType":"YulFunctionCall","src":"510:27:25"},"nodeType":"YulExpressionStatement","src":"510:27:25"},{"nodeType":"YulAssignment","src":"546:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"557:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"562:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"553:3:25"},"nodeType":"YulFunctionCall","src":"553:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"546:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"408:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"413:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"421:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"432:3:25","type":""}],"src":"295:276:25"},{"body":{"nodeType":"YulBlock","src":"631:325:25","statements":[{"nodeType":"YulAssignment","src":"641:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"655:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"658:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"651:3:25"},"nodeType":"YulFunctionCall","src":"651:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"641:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"672:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"702:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"698:3:25"},"nodeType":"YulFunctionCall","src":"698:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"676:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"749:31:25","statements":[{"nodeType":"YulAssignment","src":"751:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"765:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"773:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"751:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"729:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"722:6:25"},"nodeType":"YulFunctionCall","src":"722:26:25"},"nodeType":"YulIf","src":"719:61:25"},{"body":{"nodeType":"YulBlock","src":"839:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"860:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"867:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"872:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"863:3:25"},"nodeType":"YulFunctionCall","src":"863:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"853:6:25"},"nodeType":"YulFunctionCall","src":"853:31:25"},"nodeType":"YulExpressionStatement","src":"853:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"907:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"897:6:25"},"nodeType":"YulFunctionCall","src":"897:15:25"},"nodeType":"YulExpressionStatement","src":"897:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"932:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"925:6:25"},"nodeType":"YulFunctionCall","src":"925:15:25"},"nodeType":"YulExpressionStatement","src":"925:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"795:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"826:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"815:2:25"},"nodeType":"YulFunctionCall","src":"815:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"792:2:25"},"nodeType":"YulFunctionCall","src":"792:38:25"},"nodeType":"YulIf","src":"789:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"611:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"620:6:25","type":""}],"src":"576:380:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff19166101011790553480156200002057600080fd5b50604051620030ba380380620030ba8339810160408190526200004391620001fa565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e8918301829052600455600555662386f26fc1000060065581906200010c9062030d40906200012b811b62001c9d17901c565b8051620001229160079160209091019062000154565b50505062000264565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b828054620001629062000227565b90600052602060002090601f016020900481019282620001865760008555620001d1565b82601f10620001a157805160ff1916838001178555620001d1565b82800160010185558215620001d1579182015b82811115620001d1578251825591602001919060010190620001b4565b50620001df929150620001e3565b5090565b5b80821115620001df5760008155600101620001e4565b6000602082840312156200020d57600080fd5b815161ffff811681146200022057600080fd5b9392505050565b600181811c908216806200023c57607f821691505b602082108114156200025e57634e487b7160e01b600052602260045260246000fd5b50919050565b612e4680620002746000396000f3fe60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fcd2d38b724f9c9e5d1ac5abffe439ca2f05c406fdb9d323fa90177d94e6804364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x30BA CODESIZE SUB DUP1 PUSH3 0x30BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x43 SWAP2 PUSH3 0x1FA JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP4 AND OR DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH5 0x2540BE400 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0x8AC7230489E80000 DUP3 DUP5 ADD MSTORE PUSH1 0x64 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH21 0x2540BE400000000000000000000000002540BE400 PUSH1 0x2 SSTORE PUSH25 0x1000000000000006400000000000000008AC7230489E80000 PUSH1 0x3 SSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH8 0xDE0B6B3A7640000 DUP1 DUP3 MSTORE PUSH2 0x3E8 SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x4 SSTORE PUSH1 0x5 SSTORE PUSH7 0x2386F26FC10000 PUSH1 0x6 SSTORE DUP2 SWAP1 PUSH3 0x10C SWAP1 PUSH3 0x30D40 SWAP1 PUSH3 0x12B DUP2 SHL PUSH3 0x1C9D OR SWAP1 SHR JUMP JUMPDEST DUP1 MLOAD PUSH3 0x122 SWAP2 PUSH1 0x7 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x154 JUMP JUMPDEST POP POP POP PUSH3 0x264 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x162 SWAP1 PUSH3 0x227 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x186 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1D1 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1A1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1D1 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1D1 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1D1 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B4 JUMP JUMPDEST POP PUSH3 0x1DF SWAP3 SWAP2 POP PUSH3 0x1E3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DF JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH3 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x23C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E46 DUP1 PUSH3 0x274 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xD2 0xD3 DUP12 PUSH19 0x4F9C9E5D1AC5ABFFE439CA2F05C406FDB9D323 STATICCALL SWAP1 OR PUSH30 0x94E6804364736F6C634300080A0033000000000000000000000000000000 ","sourceMap":"768:98:22:-:0;;;1950:38:6;;;-1:-1:-1;;1994:41:6;;;;;808:56:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3418:11:6;:22;;-1:-1:-1;;3418:22:6;;;;;;;3493:222;;;;;;;;3539:4;3493:222;;;;;;;;;;;3647:4;3493:222;;;;3674:3;3493:222;;;;;;;;;;;;3474:241;:16;:241;;;;3745:49;;;;;;;;3772:4;3745:49;;;3788:4;3745:49;;;;;;3725:17;:69;;;3826:4;3814:9;:16;3418:22;;3863:39;;3895:6;;3863:31;;;;;:39;;:::i;:::-;3840:62;;;;:20;;:62;;;;;;:::i;:::-;;3379:530;808:56:22;768:98;;918:238:3;1114:35;;;-1:-1:-1;;;1114:35:3;;;450:51:25;517:11;;;;510:27;;;;1114:35:3;;;;;;;;;;553:12:25;;1114:35:3;;;918:238::o;768:98:22:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;768:98:22;;;-1:-1:-1;768:98:22;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:276:25;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:6;227:5;223:18;216:5;213:29;203:57;;256:1;253;246:12;203:57;279:5;14:276;-1:-1:-1;;;14:276:25:o;576:380::-;655:1;651:12;;;;698;;;719:61;;773:4;765:6;761:17;751:27;;719:61;826:2;818:6;815:14;795:18;792:38;789:161;;;872:10;867:3;863:20;860:1;853:31;907:4;904:1;897:15;935:4;932:1;925:15;789:161;;576:380;;;:::o;:::-;768:98:22;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_2326":{"entryPoint":7837,"id":2326,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_2356":{"entryPoint":7776,"id":2356,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_2452":{"entryPoint":7366,"id":2452,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_2175":{"entryPoint":null,"id":2175,"parameterSlots":0,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":7325,"id":258,"parameterSlots":1,"returnSlots":1},"@decodeAdapterParams_375":{"entryPoint":8340,"id":375,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_1168":{"entryPoint":2595,"id":1168,"parameterSlots":0,"returnSlots":0},"@estimateFees_1824":{"entryPoint":2737,"id":1824,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_2150":{"entryPoint":2992,"id":2150,"parameterSlots":3,"returnSlots":0},"@getChainId_1833":{"entryPoint":null,"id":1833,"parameterSlots":0,"returnSlots":1},"@getConfig_2029":{"entryPoint":null,"id":2029,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_1743":{"entryPoint":7256,"id":1743,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_2167":{"entryPoint":3319,"id":2167,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_1760":{"entryPoint":null,"id":1760,"parameterSlots":2,"returnSlots":1},"@getReceiveLibraryAddress_1990":{"entryPoint":null,"id":1990,"parameterSlots":1,"returnSlots":1},"@getReceiveVersion_2051":{"entryPoint":null,"id":2051,"parameterSlots":1,"returnSlots":1},"@getSendLibraryAddress_1976":{"entryPoint":null,"id":1976,"parameterSlots":1,"returnSlots":1},"@getSendVersion_2040":{"entryPoint":null,"id":2040,"parameterSlots":1,"returnSlots":1},"@hasStoredPayload_1962":{"entryPoint":2272,"id":1962,"parameterSlots":3,"returnSlots":1},"@inboundNonce_1174":{"entryPoint":null,"id":1174,"parameterSlots":0,"returnSlots":0},"@isReceivingPayload_2012":{"entryPoint":null,"id":2012,"parameterSlots":0,"returnSlots":1},"@isSendingPayload_2001":{"entryPoint":null,"id":2001,"parameterSlots":0,"returnSlots":1},"@lzEndpointLookup_1154":{"entryPoint":null,"id":1154,"parameterSlots":0,"returnSlots":0},"@mockChainId_1156":{"entryPoint":null,"id":1156,"parameterSlots":0,"returnSlots":0},"@msgsToDeliver_1195":{"entryPoint":2342,"id":1195,"parameterSlots":0,"returnSlots":0},"@nextMsgBlocked_1158":{"entryPoint":null,"id":1158,"parameterSlots":0,"returnSlots":0},"@oracleFee_1166":{"entryPoint":null,"id":1166,"parameterSlots":0,"returnSlots":0},"@outboundNonce_1180":{"entryPoint":null,"id":1180,"parameterSlots":0,"returnSlots":0},"@protocolFeeConfig_1164":{"entryPoint":null,"id":1164,"parameterSlots":0,"returnSlots":0},"@receivePayload_1726":{"entryPoint":3913,"id":1726,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_1161":{"entryPoint":null,"id":1161,"parameterSlots":0,"returnSlots":0},"@retryPayload_1934":{"entryPoint":3379,"id":1934,"parameterSlots":5,"returnSlots":0},"@send_1519":{"entryPoint":5798,"id":1519,"parameterSlots":7,"returnSlots":0},"@setConfig_2064":{"entryPoint":null,"id":2064,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_2273":{"entryPoint":7233,"id":2273,"parameterSlots":1,"returnSlots":0},"@setDestLzEndpoint_2189":{"entryPoint":null,"id":2189,"parameterSlots":2,"returnSlots":0},"@setOracleFee_2263":{"entryPoint":null,"id":2263,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_2253":{"entryPoint":null,"id":2253,"parameterSlots":2,"returnSlots":0},"@setReceiveVersion_2078":{"entryPoint":null,"id":2078,"parameterSlots":1,"returnSlots":0},"@setRelayerPrice_2233":{"entryPoint":null,"id":2233,"parameterSlots":5,"returnSlots":0},"@setSendVersion_2071":{"entryPoint":null,"id":2071,"parameterSlots":1,"returnSlots":0},"@storedPayload_1187":{"entryPoint":null,"id":1187,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":9058,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":9029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":10242,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":10826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":9696,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":8981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":10034,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":9797,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9130,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":10272,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":10089,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":9957,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":10447,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":9374,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10749,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":10646,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":10217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":9597,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint128":{"entryPoint":9650,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint16":{"entryPoint":8958,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":9673,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":11007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10886,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9537,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11048,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11339,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed":{"entryPoint":11155,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11078,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11695,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11453,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10983,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":11657,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11590,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":11610,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11267,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":10902,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":11312,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint64":{"entryPoint":11228,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10961,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11568,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":11770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11290,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9212,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9008,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:26605:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"143:119:25","statements":[{"nodeType":"YulAssignment","src":"153:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"165:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"176:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"161:3:25"},"nodeType":"YulFunctionCall","src":"161:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"153:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"206:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"188:6:25"},"nodeType":"YulFunctionCall","src":"188:25:25"},"nodeType":"YulExpressionStatement","src":"188:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"233:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"229:3:25"},"nodeType":"YulFunctionCall","src":"229:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"249:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"222:6:25"},"nodeType":"YulFunctionCall","src":"222:34:25"},"nodeType":"YulExpressionStatement","src":"222:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"115:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"123:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"134:4:25","type":""}],"src":"14:248:25"},{"body":{"nodeType":"YulBlock","src":"315:111:25","statements":[{"nodeType":"YulAssignment","src":"325:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"325:5:25"}]},{"body":{"nodeType":"YulBlock","src":"404:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"413:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"416:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"406:6:25"},"nodeType":"YulFunctionCall","src":"406:12:25"},"nodeType":"YulExpressionStatement","src":"406:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"376:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"387:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"394:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"383:3:25"},"nodeType":"YulFunctionCall","src":"383:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"373:2:25"},"nodeType":"YulFunctionCall","src":"373:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"366:6:25"},"nodeType":"YulFunctionCall","src":"366:37:25"},"nodeType":"YulIf","src":"363:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"294:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"305:5:25","type":""}],"src":"267:159:25"},{"body":{"nodeType":"YulBlock","src":"500:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"546:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"555:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"558:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"548:6:25"},"nodeType":"YulFunctionCall","src":"548:12:25"},"nodeType":"YulExpressionStatement","src":"548:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"521:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"530:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"542:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"513:3:25"},"nodeType":"YulFunctionCall","src":"513:32:25"},"nodeType":"YulIf","src":"510:52:25"},{"nodeType":"YulAssignment","src":"571:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"599:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"581:17:25"},"nodeType":"YulFunctionCall","src":"581:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"571:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"466:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"477:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"489:6:25","type":""}],"src":"431:184:25"},{"body":{"nodeType":"YulBlock","src":"665:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"729:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"738:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"741:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"731:6:25"},"nodeType":"YulFunctionCall","src":"731:12:25"},"nodeType":"YulExpressionStatement","src":"731:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"699:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"714:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"719:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"710:3:25"},"nodeType":"YulFunctionCall","src":"710:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"723:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"706:3:25"},"nodeType":"YulFunctionCall","src":"706:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"695:3:25"},"nodeType":"YulFunctionCall","src":"695:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"685:2:25"},"nodeType":"YulFunctionCall","src":"685:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:50:25"},"nodeType":"YulIf","src":"675:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"654:5:25","type":""}],"src":"620:131:25"},{"body":{"nodeType":"YulBlock","src":"826:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"872:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"881:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"884:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"874:6:25"},"nodeType":"YulFunctionCall","src":"874:12:25"},"nodeType":"YulExpressionStatement","src":"874:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"847:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"843:3:25"},"nodeType":"YulFunctionCall","src":"843:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"868:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"839:3:25"},"nodeType":"YulFunctionCall","src":"839:32:25"},"nodeType":"YulIf","src":"836:52:25"},{"nodeType":"YulVariableDeclaration","src":"897:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"910:12:25"},"nodeType":"YulFunctionCall","src":"910:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"901:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"967:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"942:24:25"},"nodeType":"YulFunctionCall","src":"942:31:25"},"nodeType":"YulExpressionStatement","src":"942:31:25"},{"nodeType":"YulAssignment","src":"982:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"992:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"792:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"803:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"815:6:25","type":""}],"src":"756:247:25"},{"body":{"nodeType":"YulBlock","src":"1107:89:25","statements":[{"nodeType":"YulAssignment","src":"1117:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1129:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1125:3:25"},"nodeType":"YulFunctionCall","src":"1125:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1117:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1159:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1174:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1182:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1170:3:25"},"nodeType":"YulFunctionCall","src":"1170:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1152:6:25"},"nodeType":"YulFunctionCall","src":"1152:38:25"},"nodeType":"YulExpressionStatement","src":"1152:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1076:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1087:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1098:4:25","type":""}],"src":"1008:188:25"},{"body":{"nodeType":"YulBlock","src":"1273:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"1322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1324:6:25"},"nodeType":"YulFunctionCall","src":"1324:12:25"},"nodeType":"YulExpressionStatement","src":"1324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1309:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1297:3:25"},"nodeType":"YulFunctionCall","src":"1297:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"1316:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1293:3:25"},"nodeType":"YulFunctionCall","src":"1293:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1286:6:25"},"nodeType":"YulFunctionCall","src":"1286:35:25"},"nodeType":"YulIf","src":"1283:55:25"},{"nodeType":"YulAssignment","src":"1347:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1357:12:25"},"nodeType":"YulFunctionCall","src":"1357:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1347:6:25"}]},{"body":{"nodeType":"YulBlock","src":"1420:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1429:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1432:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1422:6:25"},"nodeType":"YulFunctionCall","src":"1422:12:25"},"nodeType":"YulExpressionStatement","src":"1422:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1392:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1400:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:25"},"nodeType":"YulFunctionCall","src":"1389:30:25"},"nodeType":"YulIf","src":"1386:50:25"},{"nodeType":"YulAssignment","src":"1445:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1461:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1457:3:25"},"nodeType":"YulFunctionCall","src":"1457:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1445:8:25"}]},{"body":{"nodeType":"YulBlock","src":"1526:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1535:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1538:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1528:6:25"},"nodeType":"YulFunctionCall","src":"1528:12:25"},"nodeType":"YulExpressionStatement","src":"1528:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1497:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"1505:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"1514:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1489:3:25"},"nodeType":"YulFunctionCall","src":"1489:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"1521:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1486:2:25"},"nodeType":"YulFunctionCall","src":"1486:39:25"},"nodeType":"YulIf","src":"1483:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1236:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"1244:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1252:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"1262:6:25","type":""}],"src":"1201:347:25"},{"body":{"nodeType":"YulBlock","src":"1658:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"1704:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1713:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1706:6:25"},"nodeType":"YulFunctionCall","src":"1706:12:25"},"nodeType":"YulExpressionStatement","src":"1706:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1679:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1688:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1675:3:25"},"nodeType":"YulFunctionCall","src":"1675:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1700:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1671:3:25"},"nodeType":"YulFunctionCall","src":"1671:32:25"},"nodeType":"YulIf","src":"1668:52:25"},{"nodeType":"YulAssignment","src":"1729:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1757:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1739:17:25"},"nodeType":"YulFunctionCall","src":"1739:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1729:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1776:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1803:3:25"},"nodeType":"YulFunctionCall","src":"1803:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1790:12:25"},"nodeType":"YulFunctionCall","src":"1790:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1865:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1874:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1877:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1867:6:25"},"nodeType":"YulFunctionCall","src":"1867:12:25"},"nodeType":"YulExpressionStatement","src":"1867:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1837:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1845:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1834:2:25"},"nodeType":"YulFunctionCall","src":"1834:30:25"},"nodeType":"YulIf","src":"1831:50:25"},{"nodeType":"YulVariableDeclaration","src":"1890:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1946:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1957:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1942:3:25"},"nodeType":"YulFunctionCall","src":"1942:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1966:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1916:25:25"},"nodeType":"YulFunctionCall","src":"1916:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1894:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1904:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1983:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1993:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1983:6:25"}]},{"nodeType":"YulAssignment","src":"2010:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2020:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2010:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1639:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1553:481:25"},{"body":{"nodeType":"YulBlock","src":"2134:92:25","statements":[{"nodeType":"YulAssignment","src":"2144:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2156:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2167:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2152:3:25"},"nodeType":"YulFunctionCall","src":"2152:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2144:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2186:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2211:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2204:6:25"},"nodeType":"YulFunctionCall","src":"2204:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2197:6:25"},"nodeType":"YulFunctionCall","src":"2197:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:25"},"nodeType":"YulFunctionCall","src":"2179:41:25"},"nodeType":"YulExpressionStatement","src":"2179:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2103:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2114:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2125:4:25","type":""}],"src":"2039:187:25"},{"body":{"nodeType":"YulBlock","src":"2263:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2280:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2287:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2292:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2283:3:25"},"nodeType":"YulFunctionCall","src":"2283:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2273:6:25"},"nodeType":"YulFunctionCall","src":"2273:31:25"},"nodeType":"YulExpressionStatement","src":"2273:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2320:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2323:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2313:6:25"},"nodeType":"YulFunctionCall","src":"2313:15:25"},"nodeType":"YulExpressionStatement","src":"2313:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2344:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2347:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2337:6:25"},"nodeType":"YulFunctionCall","src":"2337:15:25"},"nodeType":"YulExpressionStatement","src":"2337:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2231:127:25"},{"body":{"nodeType":"YulBlock","src":"2415:666:25","statements":[{"body":{"nodeType":"YulBlock","src":"2464:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2473:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2476:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2466:6:25"},"nodeType":"YulFunctionCall","src":"2466:12:25"},"nodeType":"YulExpressionStatement","src":"2466:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2443:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2451:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2439:3:25"},"nodeType":"YulFunctionCall","src":"2439:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"2458:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2435:3:25"},"nodeType":"YulFunctionCall","src":"2435:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2428:6:25"},"nodeType":"YulFunctionCall","src":"2428:35:25"},"nodeType":"YulIf","src":"2425:55:25"},{"nodeType":"YulVariableDeclaration","src":"2489:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2512:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2499:12:25"},"nodeType":"YulFunctionCall","src":"2499:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2493:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2528:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"2538:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2532:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2579:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2581:16:25"},"nodeType":"YulFunctionCall","src":"2581:18:25"},"nodeType":"YulExpressionStatement","src":"2581:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2571:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2575:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2568:2:25"},"nodeType":"YulFunctionCall","src":"2568:10:25"},"nodeType":"YulIf","src":"2565:36:25"},{"nodeType":"YulVariableDeclaration","src":"2610:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2624:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2620:3:25"},"nodeType":"YulFunctionCall","src":"2620:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2614:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2636:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2656:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2650:5:25"},"nodeType":"YulFunctionCall","src":"2650:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2640:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2668:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2690:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2714:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"2718:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2710:3:25"},"nodeType":"YulFunctionCall","src":"2710:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2725:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2706:3:25"},"nodeType":"YulFunctionCall","src":"2706:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2702:3:25"},"nodeType":"YulFunctionCall","src":"2702:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2698:3:25"},"nodeType":"YulFunctionCall","src":"2698:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2686:3:25"},"nodeType":"YulFunctionCall","src":"2686:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2672:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2798:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2800:16:25"},"nodeType":"YulFunctionCall","src":"2800:18:25"},"nodeType":"YulExpressionStatement","src":"2800:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2757:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2769:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2754:2:25"},"nodeType":"YulFunctionCall","src":"2754:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2777:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2789:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2774:2:25"},"nodeType":"YulFunctionCall","src":"2774:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2751:2:25"},"nodeType":"YulFunctionCall","src":"2751:46:25"},"nodeType":"YulIf","src":"2748:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2836:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2840:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2829:6:25"},"nodeType":"YulFunctionCall","src":"2829:22:25"},"nodeType":"YulExpressionStatement","src":"2829:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2867:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2875:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2860:6:25"},"nodeType":"YulFunctionCall","src":"2860:18:25"},"nodeType":"YulExpressionStatement","src":"2860:18:25"},{"body":{"nodeType":"YulBlock","src":"2926:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2935:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2928:6:25"},"nodeType":"YulFunctionCall","src":"2928:12:25"},"nodeType":"YulExpressionStatement","src":"2928:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2901:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2909:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"2914:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2893:3:25"},"nodeType":"YulFunctionCall","src":"2893:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"2921:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2890:2:25"},"nodeType":"YulFunctionCall","src":"2890:35:25"},"nodeType":"YulIf","src":"2887:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2968:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2976:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2964:3:25"},"nodeType":"YulFunctionCall","src":"2964:17:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2983:3:25"},"nodeType":"YulFunctionCall","src":"2983:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3002:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2951:12:25"},"nodeType":"YulFunctionCall","src":"2951:54:25"},"nodeType":"YulExpressionStatement","src":"2951:54:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3029:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3037:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3025:3:25"},"nodeType":"YulFunctionCall","src":"3025:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"3042:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:25"},"nodeType":"YulFunctionCall","src":"3021:26:25"},{"kind":"number","nodeType":"YulLiteral","src":"3049:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3014:6:25"},"nodeType":"YulFunctionCall","src":"3014:37:25"},"nodeType":"YulExpressionStatement","src":"3014:37:25"},{"nodeType":"YulAssignment","src":"3060:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3069:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3060:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2389:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"2397:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2405:5:25","type":""}],"src":"2363:718:25"},{"body":{"nodeType":"YulBlock","src":"3198:348:25","statements":[{"body":{"nodeType":"YulBlock","src":"3244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3246:6:25"},"nodeType":"YulFunctionCall","src":"3246:12:25"},"nodeType":"YulExpressionStatement","src":"3246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3219:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3228:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3215:3:25"},"nodeType":"YulFunctionCall","src":"3215:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3240:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3211:3:25"},"nodeType":"YulFunctionCall","src":"3211:32:25"},"nodeType":"YulIf","src":"3208:52:25"},{"nodeType":"YulAssignment","src":"3269:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3297:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3279:17:25"},"nodeType":"YulFunctionCall","src":"3279:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3269:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3316:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3347:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3358:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3343:3:25"},"nodeType":"YulFunctionCall","src":"3343:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3330:12:25"},"nodeType":"YulFunctionCall","src":"3330:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3320:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3405:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3414:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3417:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3407:6:25"},"nodeType":"YulFunctionCall","src":"3407:12:25"},"nodeType":"YulExpressionStatement","src":"3407:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3377:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3385:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3374:2:25"},"nodeType":"YulFunctionCall","src":"3374:30:25"},"nodeType":"YulIf","src":"3371:50:25"},{"nodeType":"YulAssignment","src":"3430:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3461:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3472:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3457:3:25"},"nodeType":"YulFunctionCall","src":"3457:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3481:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3440:16:25"},"nodeType":"YulFunctionCall","src":"3440:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3430:6:25"}]},{"nodeType":"YulAssignment","src":"3498:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3536:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:25"},"nodeType":"YulFunctionCall","src":"3521:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3508:12:25"},"nodeType":"YulFunctionCall","src":"3508:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3498:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3148:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3159:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3171:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3179:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3187:6:25","type":""}],"src":"3086:460:25"},{"body":{"nodeType":"YulBlock","src":"3600:422:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3610:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3630:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3624:5:25"},"nodeType":"YulFunctionCall","src":"3624:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3614:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3652:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3657:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3645:6:25"},"nodeType":"YulFunctionCall","src":"3645:19:25"},"nodeType":"YulExpressionStatement","src":"3645:19:25"},{"nodeType":"YulVariableDeclaration","src":"3673:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3682:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3677:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3744:110:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3758:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3768:4:25","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3762:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3800:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"3805:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3796:3:25"},"nodeType":"YulFunctionCall","src":"3796:11:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3809:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:25"},"nodeType":"YulFunctionCall","src":"3792:20:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3828:5:25"},{"name":"i","nodeType":"YulIdentifier","src":"3835:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3824:3:25"},"nodeType":"YulFunctionCall","src":"3824:13:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3839:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3820:3:25"},"nodeType":"YulFunctionCall","src":"3820:22:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3814:5:25"},"nodeType":"YulFunctionCall","src":"3814:29:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3785:6:25"},"nodeType":"YulFunctionCall","src":"3785:59:25"},"nodeType":"YulExpressionStatement","src":"3785:59:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3703:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3706:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3700:2:25"},"nodeType":"YulFunctionCall","src":"3700:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3714:21:25","statements":[{"nodeType":"YulAssignment","src":"3716:17:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3725:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"3728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:25"},"nodeType":"YulFunctionCall","src":"3721:12:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3716:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"3696:3:25","statements":[]},"src":"3692:162:25"},{"body":{"nodeType":"YulBlock","src":"3888:62:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3917:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3922:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:25"},"nodeType":"YulFunctionCall","src":"3913:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"3931:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3909:3:25"},"nodeType":"YulFunctionCall","src":"3909:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"3938:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3902:6:25"},"nodeType":"YulFunctionCall","src":"3902:38:25"},"nodeType":"YulExpressionStatement","src":"3902:38:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3869:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3872:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3866:2:25"},"nodeType":"YulFunctionCall","src":"3866:13:25"},"nodeType":"YulIf","src":"3863:87:25"},{"nodeType":"YulAssignment","src":"3959:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3974:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3995:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:25"},"nodeType":"YulFunctionCall","src":"3983:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4004:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3979:3:25"},"nodeType":"YulFunctionCall","src":"3979:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3970:3:25"},"nodeType":"YulFunctionCall","src":"3970:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:25"},"nodeType":"YulFunctionCall","src":"3966:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3959:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3577:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3584:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3592:3:25","type":""}],"src":"3551:471:25"},{"body":{"nodeType":"YulBlock","src":"4200:235:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4232:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4253:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4240:3:25"},"nodeType":"YulFunctionCall","src":"4240:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4228:3:25"},"nodeType":"YulFunctionCall","src":"4228:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4210:6:25"},"nodeType":"YulFunctionCall","src":"4210:51:25"},"nodeType":"YulExpressionStatement","src":"4210:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4281:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4292:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4277:3:25"},"nodeType":"YulFunctionCall","src":"4277:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4297:3:25"},"nodeType":"YulFunctionCall","src":"4297:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:25"},"nodeType":"YulFunctionCall","src":"4270:59:25"},"nodeType":"YulExpressionStatement","src":"4270:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4349:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:25"},"nodeType":"YulFunctionCall","src":"4345:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:25","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4338:6:25"},"nodeType":"YulFunctionCall","src":"4338:30:25"},"nodeType":"YulExpressionStatement","src":"4338:30:25"},{"nodeType":"YulAssignment","src":"4377:52:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4402:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4414:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4425:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:25"},"nodeType":"YulFunctionCall","src":"4410:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4385:16:25"},"nodeType":"YulFunctionCall","src":"4385:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4377:4:25"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4153:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4164:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4172:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4180:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4191:4:25","type":""}],"src":"4027:408:25"},{"body":{"nodeType":"YulBlock","src":"4527:161:25","statements":[{"body":{"nodeType":"YulBlock","src":"4573:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4582:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4585:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4575:6:25"},"nodeType":"YulFunctionCall","src":"4575:12:25"},"nodeType":"YulExpressionStatement","src":"4575:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4548:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4557:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4544:3:25"},"nodeType":"YulFunctionCall","src":"4544:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4569:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4540:3:25"},"nodeType":"YulFunctionCall","src":"4540:32:25"},"nodeType":"YulIf","src":"4537:52:25"},{"nodeType":"YulAssignment","src":"4598:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4608:12:25"},"nodeType":"YulFunctionCall","src":"4608:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4598:6:25"}]},{"nodeType":"YulAssignment","src":"4640:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4663:3:25"},"nodeType":"YulFunctionCall","src":"4663:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4650:12:25"},"nodeType":"YulFunctionCall","src":"4650:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4640:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4485:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4496:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4508:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4516:6:25","type":""}],"src":"4440:248:25"},{"body":{"nodeType":"YulBlock","src":"4812:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4840:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4822:6:25"},"nodeType":"YulFunctionCall","src":"4822:21:25"},"nodeType":"YulExpressionStatement","src":"4822:21:25"},{"nodeType":"YulAssignment","src":"4852:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:25"},"nodeType":"YulFunctionCall","src":"4885:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4860:16:25"},"nodeType":"YulFunctionCall","src":"4860:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4852:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4781:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4792:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4803:4:25","type":""}],"src":"4693:217:25"},{"body":{"nodeType":"YulBlock","src":"4964:139:25","statements":[{"nodeType":"YulAssignment","src":"4974:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4996:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4983:12:25"},"nodeType":"YulFunctionCall","src":"4983:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4974:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5081:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5090:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5093:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5083:6:25"},"nodeType":"YulFunctionCall","src":"5083:12:25"},"nodeType":"YulExpressionStatement","src":"5083:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5025:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5036:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5043:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5032:3:25"},"nodeType":"YulFunctionCall","src":"5032:46:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5022:2:25"},"nodeType":"YulFunctionCall","src":"5022:57:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5015:6:25"},"nodeType":"YulFunctionCall","src":"5015:65:25"},"nodeType":"YulIf","src":"5012:85:25"}]},"name":"abi_decode_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4943:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4954:5:25","type":""}],"src":"4915:188:25"},{"body":{"nodeType":"YulBlock","src":"5156:123:25","statements":[{"nodeType":"YulAssignment","src":"5166:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5188:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5175:12:25"},"nodeType":"YulFunctionCall","src":"5175:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5166:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5259:6:25"},"nodeType":"YulFunctionCall","src":"5259:12:25"},"nodeType":"YulExpressionStatement","src":"5259:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5228:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5235:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5224:3:25"},"nodeType":"YulFunctionCall","src":"5224:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5214:2:25"},"nodeType":"YulFunctionCall","src":"5214:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5207:6:25"},"nodeType":"YulFunctionCall","src":"5207:49:25"},"nodeType":"YulIf","src":"5204:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5135:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5146:5:25","type":""}],"src":"5108:171:25"},{"body":{"nodeType":"YulBlock","src":"5420:344:25","statements":[{"body":{"nodeType":"YulBlock","src":"5467:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5476:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5479:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:25"},"nodeType":"YulFunctionCall","src":"5469:12:25"},"nodeType":"YulExpressionStatement","src":"5469:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5441:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5450:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5437:3:25"},"nodeType":"YulFunctionCall","src":"5437:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5462:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5433:3:25"},"nodeType":"YulFunctionCall","src":"5433:33:25"},"nodeType":"YulIf","src":"5430:53:25"},{"nodeType":"YulAssignment","src":"5492:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5521:9:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5502:18:25"},"nodeType":"YulFunctionCall","src":"5502:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5492:6:25"}]},{"nodeType":"YulAssignment","src":"5540:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5573:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5584:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5569:3:25"},"nodeType":"YulFunctionCall","src":"5569:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5550:18:25"},"nodeType":"YulFunctionCall","src":"5550:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5540:6:25"}]},{"nodeType":"YulAssignment","src":"5597:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5630:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5641:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5626:3:25"},"nodeType":"YulFunctionCall","src":"5626:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5607:18:25"},"nodeType":"YulFunctionCall","src":"5607:38:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5597:6:25"}]},{"nodeType":"YulAssignment","src":"5654:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5686:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5697:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5682:3:25"},"nodeType":"YulFunctionCall","src":"5682:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5664:17:25"},"nodeType":"YulFunctionCall","src":"5664:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5654:6:25"}]},{"nodeType":"YulAssignment","src":"5710:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5753:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:25"},"nodeType":"YulFunctionCall","src":"5738:19:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5720:17:25"},"nodeType":"YulFunctionCall","src":"5720:38:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5710:6:25"}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5354:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5365:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5377:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5385:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5393:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5401:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5409:6:25","type":""}],"src":"5284:480:25"},{"body":{"nodeType":"YulBlock","src":"5921:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"5968:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5977:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5980:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5970:6:25"},"nodeType":"YulFunctionCall","src":"5970:12:25"},"nodeType":"YulExpressionStatement","src":"5970:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5938:3:25"},"nodeType":"YulFunctionCall","src":"5938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5963:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5934:3:25"},"nodeType":"YulFunctionCall","src":"5934:33:25"},"nodeType":"YulIf","src":"5931:53:25"},{"nodeType":"YulAssignment","src":"5993:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6021:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6003:17:25"},"nodeType":"YulFunctionCall","src":"6003:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5993:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6040:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6070:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6081:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6066:3:25"},"nodeType":"YulFunctionCall","src":"6066:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6053:12:25"},"nodeType":"YulFunctionCall","src":"6053:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6044:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6119:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6094:24:25"},"nodeType":"YulFunctionCall","src":"6094:31:25"},"nodeType":"YulExpressionStatement","src":"6094:31:25"},{"nodeType":"YulAssignment","src":"6134:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6144:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6134:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6158:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6185:3:25"},"nodeType":"YulFunctionCall","src":"6185:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6172:12:25"},"nodeType":"YulFunctionCall","src":"6172:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6162:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6213:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6217:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6268:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6280:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6270:6:25"},"nodeType":"YulFunctionCall","src":"6270:12:25"},"nodeType":"YulExpressionStatement","src":"6270:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6256:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6264:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6253:2:25"},"nodeType":"YulFunctionCall","src":"6253:14:25"},"nodeType":"YulIf","src":"6250:34:25"},{"nodeType":"YulAssignment","src":"6293:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6324:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6335:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6320:3:25"},"nodeType":"YulFunctionCall","src":"6320:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6344:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6303:16:25"},"nodeType":"YulFunctionCall","src":"6303:49:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6293:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6361:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6393:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6404:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6389:3:25"},"nodeType":"YulFunctionCall","src":"6389:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6376:12:25"},"nodeType":"YulFunctionCall","src":"6376:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6365:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6465:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6474:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6477:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6467:6:25"},"nodeType":"YulFunctionCall","src":"6467:12:25"},"nodeType":"YulExpressionStatement","src":"6467:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6430:7:25"},{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6453:7:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6446:6:25"},"nodeType":"YulFunctionCall","src":"6446:15:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6439:6:25"},"nodeType":"YulFunctionCall","src":"6439:23:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6427:2:25"},"nodeType":"YulFunctionCall","src":"6427:36:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6420:6:25"},"nodeType":"YulFunctionCall","src":"6420:44:25"},"nodeType":"YulIf","src":"6417:64:25"},{"nodeType":"YulAssignment","src":"6490:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6500:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6490:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6516:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6549:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6560:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6545:3:25"},"nodeType":"YulFunctionCall","src":"6545:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6532:12:25"},"nodeType":"YulFunctionCall","src":"6532:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6520:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6594:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6603:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6606:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6596:6:25"},"nodeType":"YulFunctionCall","src":"6596:12:25"},"nodeType":"YulExpressionStatement","src":"6596:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6580:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6590:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6577:2:25"},"nodeType":"YulFunctionCall","src":"6577:16:25"},"nodeType":"YulIf","src":"6574:36:25"},{"nodeType":"YulAssignment","src":"6619:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6650:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6661:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6646:3:25"},"nodeType":"YulFunctionCall","src":"6646:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6672:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6629:16:25"},"nodeType":"YulFunctionCall","src":"6629:51:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6619:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5855:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5866:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5878:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5886:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5894:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5902:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5910:6:25","type":""}],"src":"5769:917:25"},{"body":{"nodeType":"YulBlock","src":"6792:102:25","statements":[{"nodeType":"YulAssignment","src":"6802:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6814:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6825:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6810:3:25"},"nodeType":"YulFunctionCall","src":"6810:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6802:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6844:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6859:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6875:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6880:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6871:3:25"},"nodeType":"YulFunctionCall","src":"6871:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6884:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6867:3:25"},"nodeType":"YulFunctionCall","src":"6867:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6855:3:25"},"nodeType":"YulFunctionCall","src":"6855:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6837:6:25"},"nodeType":"YulFunctionCall","src":"6837:51:25"},"nodeType":"YulExpressionStatement","src":"6837:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6761:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6772:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6783:4:25","type":""}],"src":"6691:203:25"},{"body":{"nodeType":"YulBlock","src":"6994:297:25","statements":[{"body":{"nodeType":"YulBlock","src":"7040:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7049:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7052:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7042:6:25"},"nodeType":"YulFunctionCall","src":"7042:12:25"},"nodeType":"YulExpressionStatement","src":"7042:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7015:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7011:3:25"},"nodeType":"YulFunctionCall","src":"7011:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7036:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:32:25"},"nodeType":"YulIf","src":"7004:52:25"},{"nodeType":"YulAssignment","src":"7065:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7093:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7075:17:25"},"nodeType":"YulFunctionCall","src":"7075:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7065:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7112:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7143:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7154:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7139:3:25"},"nodeType":"YulFunctionCall","src":"7139:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7126:12:25"},"nodeType":"YulFunctionCall","src":"7126:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7116:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7201:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7210:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7213:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7203:6:25"},"nodeType":"YulFunctionCall","src":"7203:12:25"},"nodeType":"YulExpressionStatement","src":"7203:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7173:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7181:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7170:2:25"},"nodeType":"YulFunctionCall","src":"7170:30:25"},"nodeType":"YulIf","src":"7167:50:25"},{"nodeType":"YulAssignment","src":"7226:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7257:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"7268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:25"},"nodeType":"YulFunctionCall","src":"7253:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7277:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7236:16:25"},"nodeType":"YulFunctionCall","src":"7236:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7226:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6952:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6963:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6975:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6983:6:25","type":""}],"src":"6899:392:25"},{"body":{"nodeType":"YulBlock","src":"7451:213:25","statements":[{"nodeType":"YulAssignment","src":"7461:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7473:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7484:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7469:3:25"},"nodeType":"YulFunctionCall","src":"7469:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7461:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7503:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7518:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7526:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7514:3:25"},"nodeType":"YulFunctionCall","src":"7514:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7496:6:25"},"nodeType":"YulFunctionCall","src":"7496:50:25"},"nodeType":"YulExpressionStatement","src":"7496:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7566:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7577:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7562:3:25"},"nodeType":"YulFunctionCall","src":"7562:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7586:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7602:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7607:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7598:3:25"},"nodeType":"YulFunctionCall","src":"7598:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7611:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7594:3:25"},"nodeType":"YulFunctionCall","src":"7594:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7582:3:25"},"nodeType":"YulFunctionCall","src":"7582:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7555:6:25"},"nodeType":"YulFunctionCall","src":"7555:60:25"},"nodeType":"YulExpressionStatement","src":"7555:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7635:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7646:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7631:3:25"},"nodeType":"YulFunctionCall","src":"7631:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"7651:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7624:6:25"},"nodeType":"YulFunctionCall","src":"7624:34:25"},"nodeType":"YulExpressionStatement","src":"7624:34:25"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7404:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7415:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7423:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7431:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7442:4:25","type":""}],"src":"7296:368:25"},{"body":{"nodeType":"YulBlock","src":"7755:233:25","statements":[{"body":{"nodeType":"YulBlock","src":"7801:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7810:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7813:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7803:6:25"},"nodeType":"YulFunctionCall","src":"7803:12:25"},"nodeType":"YulExpressionStatement","src":"7803:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7776:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7785:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7772:3:25"},"nodeType":"YulFunctionCall","src":"7772:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7797:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7768:3:25"},"nodeType":"YulFunctionCall","src":"7768:32:25"},"nodeType":"YulIf","src":"7765:52:25"},{"nodeType":"YulAssignment","src":"7826:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7854:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7836:17:25"},"nodeType":"YulFunctionCall","src":"7836:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7826:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7873:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7903:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7914:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7899:3:25"},"nodeType":"YulFunctionCall","src":"7899:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7886:12:25"},"nodeType":"YulFunctionCall","src":"7886:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7877:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7952:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7927:24:25"},"nodeType":"YulFunctionCall","src":"7927:31:25"},"nodeType":"YulExpressionStatement","src":"7927:31:25"},{"nodeType":"YulAssignment","src":"7967:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7977:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7967:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7713:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7724:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7736:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7744:6:25","type":""}],"src":"7669:319:25"},{"body":{"nodeType":"YulBlock","src":"8092:101:25","statements":[{"nodeType":"YulAssignment","src":"8102:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8125:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8110:3:25"},"nodeType":"YulFunctionCall","src":"8110:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8102:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8159:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8167:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8155:3:25"},"nodeType":"YulFunctionCall","src":"8155:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8137:6:25"},"nodeType":"YulFunctionCall","src":"8137:50:25"},"nodeType":"YulExpressionStatement","src":"8137:50:25"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8061:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8072:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8083:4:25","type":""}],"src":"7993:200:25"},{"body":{"nodeType":"YulBlock","src":"8299:76:25","statements":[{"nodeType":"YulAssignment","src":"8309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8317:3:25"},"nodeType":"YulFunctionCall","src":"8317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8351:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8362:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8344:6:25"},"nodeType":"YulFunctionCall","src":"8344:25:25"},"nodeType":"YulExpressionStatement","src":"8344:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8290:4:25","type":""}],"src":"8198:177:25"},{"body":{"nodeType":"YulBlock","src":"8589:385:25","statements":[{"nodeType":"YulAssignment","src":"8599:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8611:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8622:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8607:3:25"},"nodeType":"YulFunctionCall","src":"8607:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8599:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"8635:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8645:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8639:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8695:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8710:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8718:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8706:3:25"},"nodeType":"YulFunctionCall","src":"8706:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8688:6:25"},"nodeType":"YulFunctionCall","src":"8688:34:25"},"nodeType":"YulExpressionStatement","src":"8688:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8738:3:25"},"nodeType":"YulFunctionCall","src":"8738:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8762:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8770:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8758:3:25"},"nodeType":"YulFunctionCall","src":"8758:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8731:6:25"},"nodeType":"YulFunctionCall","src":"8731:43:25"},"nodeType":"YulExpressionStatement","src":"8731:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8805:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8790:3:25"},"nodeType":"YulFunctionCall","src":"8790:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8814:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8822:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8810:3:25"},"nodeType":"YulFunctionCall","src":"8810:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8783:6:25"},"nodeType":"YulFunctionCall","src":"8783:43:25"},"nodeType":"YulExpressionStatement","src":"8783:43:25"},{"nodeType":"YulVariableDeclaration","src":"8835:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8845:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8839:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8894:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8879:3:25"},"nodeType":"YulFunctionCall","src":"8879:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8903:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8911:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8899:3:25"},"nodeType":"YulFunctionCall","src":"8899:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8872:6:25"},"nodeType":"YulFunctionCall","src":"8872:43:25"},"nodeType":"YulExpressionStatement","src":"8872:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8935:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8946:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8931:3:25"},"nodeType":"YulFunctionCall","src":"8931:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8956:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8952:3:25"},"nodeType":"YulFunctionCall","src":"8952:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8924:6:25"},"nodeType":"YulFunctionCall","src":"8924:44:25"},"nodeType":"YulExpressionStatement","src":"8924:44:25"}]},"name":"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8526:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8537:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8545:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8553:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8561:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8569:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8580:4:25","type":""}],"src":"8380:594:25"},{"body":{"nodeType":"YulBlock","src":"9120:648:25","statements":[{"body":{"nodeType":"YulBlock","src":"9166:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9175:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9178:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9168:6:25"},"nodeType":"YulFunctionCall","src":"9168:12:25"},"nodeType":"YulExpressionStatement","src":"9168:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9141:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9137:3:25"},"nodeType":"YulFunctionCall","src":"9137:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9162:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9133:3:25"},"nodeType":"YulFunctionCall","src":"9133:32:25"},"nodeType":"YulIf","src":"9130:52:25"},{"nodeType":"YulAssignment","src":"9191:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9219:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9201:17:25"},"nodeType":"YulFunctionCall","src":"9201:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9191:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9238:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:25"},"nodeType":"YulFunctionCall","src":"9265:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9252:12:25"},"nodeType":"YulFunctionCall","src":"9252:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9242:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9293:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"9303:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9297:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9348:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9357:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9360:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9350:6:25"},"nodeType":"YulFunctionCall","src":"9350:12:25"},"nodeType":"YulExpressionStatement","src":"9350:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9336:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9344:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9333:2:25"},"nodeType":"YulFunctionCall","src":"9333:14:25"},"nodeType":"YulIf","src":"9330:34:25"},{"nodeType":"YulVariableDeclaration","src":"9373:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9429:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9425:3:25"},"nodeType":"YulFunctionCall","src":"9425:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9449:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9399:25:25"},"nodeType":"YulFunctionCall","src":"9399:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"9377:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"9387:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9466:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"9476:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9466:6:25"}]},{"nodeType":"YulAssignment","src":"9493:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"9503:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9493:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9520:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9553:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9564:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9549:3:25"},"nodeType":"YulFunctionCall","src":"9549:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9536:12:25"},"nodeType":"YulFunctionCall","src":"9536:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9524:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9597:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9606:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9609:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9599:6:25"},"nodeType":"YulFunctionCall","src":"9599:12:25"},"nodeType":"YulExpressionStatement","src":"9599:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9583:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9593:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9580:2:25"},"nodeType":"YulFunctionCall","src":"9580:16:25"},"nodeType":"YulIf","src":"9577:36:25"},{"nodeType":"YulVariableDeclaration","src":"9622:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9678:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9689:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9674:3:25"},"nodeType":"YulFunctionCall","src":"9674:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9700:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9648:25:25"},"nodeType":"YulFunctionCall","src":"9648:60:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9626:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9636:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9717:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9727:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9717:6:25"}]},{"nodeType":"YulAssignment","src":"9744:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9754:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9744:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9054:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9065:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9077:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9085:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9093:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9101:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9109:6:25","type":""}],"src":"8979:789:25"},{"body":{"nodeType":"YulBlock","src":"9843:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"9889:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9901:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9891:6:25"},"nodeType":"YulFunctionCall","src":"9891:12:25"},"nodeType":"YulExpressionStatement","src":"9891:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9864:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9873:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9860:3:25"},"nodeType":"YulFunctionCall","src":"9860:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9885:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9856:3:25"},"nodeType":"YulFunctionCall","src":"9856:32:25"},"nodeType":"YulIf","src":"9853:52:25"},{"nodeType":"YulAssignment","src":"9914:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9937:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9924:12:25"},"nodeType":"YulFunctionCall","src":"9924:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9914:6:25"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9809:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9820:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9832:6:25","type":""}],"src":"9773:180:25"},{"body":{"nodeType":"YulBlock","src":"10045:301:25","statements":[{"body":{"nodeType":"YulBlock","src":"10091:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10100:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10103:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10093:6:25"},"nodeType":"YulFunctionCall","src":"10093:12:25"},"nodeType":"YulExpressionStatement","src":"10093:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10066:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10075:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10062:3:25"},"nodeType":"YulFunctionCall","src":"10062:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10058:3:25"},"nodeType":"YulFunctionCall","src":"10058:32:25"},"nodeType":"YulIf","src":"10055:52:25"},{"nodeType":"YulVariableDeclaration","src":"10116:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10142:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10129:12:25"},"nodeType":"YulFunctionCall","src":"10129:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10120:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10161:24:25"},"nodeType":"YulFunctionCall","src":"10161:31:25"},"nodeType":"YulExpressionStatement","src":"10161:31:25"},{"nodeType":"YulAssignment","src":"10201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10201:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10225:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10257:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10268:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10253:3:25"},"nodeType":"YulFunctionCall","src":"10253:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10240:12:25"},"nodeType":"YulFunctionCall","src":"10240:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10229:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10306:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10281:24:25"},"nodeType":"YulFunctionCall","src":"10281:33:25"},"nodeType":"YulExpressionStatement","src":"10281:33:25"},{"nodeType":"YulAssignment","src":"10323:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10333:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10323:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10003:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10014:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10026:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10034:6:25","type":""}],"src":"9958:388:25"},{"body":{"nodeType":"YulBlock","src":"10542:876:25","statements":[{"body":{"nodeType":"YulBlock","src":"10589:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10598:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10601:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10591:6:25"},"nodeType":"YulFunctionCall","src":"10591:12:25"},"nodeType":"YulExpressionStatement","src":"10591:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10563:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10572:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10559:3:25"},"nodeType":"YulFunctionCall","src":"10559:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10584:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10555:3:25"},"nodeType":"YulFunctionCall","src":"10555:33:25"},"nodeType":"YulIf","src":"10552:53:25"},{"nodeType":"YulAssignment","src":"10614:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10642:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10624:17:25"},"nodeType":"YulFunctionCall","src":"10624:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10614:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10661:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10703:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10688:3:25"},"nodeType":"YulFunctionCall","src":"10688:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10675:12:25"},"nodeType":"YulFunctionCall","src":"10675:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10665:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10716:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"10726:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10771:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10780:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10783:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10773:6:25"},"nodeType":"YulFunctionCall","src":"10773:12:25"},"nodeType":"YulExpressionStatement","src":"10773:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10759:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"10767:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10756:2:25"},"nodeType":"YulFunctionCall","src":"10756:14:25"},"nodeType":"YulIf","src":"10753:34:25"},{"nodeType":"YulVariableDeclaration","src":"10796:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10852:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"10863:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10848:3:25"},"nodeType":"YulFunctionCall","src":"10848:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10872:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10822:25:25"},"nodeType":"YulFunctionCall","src":"10822:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"10800:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"10810:8:25","type":""}]},{"nodeType":"YulAssignment","src":"10889:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"10899:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10889:6:25"}]},{"nodeType":"YulAssignment","src":"10916:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"10926:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10943:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10973:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10984:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:25"},"nodeType":"YulFunctionCall","src":"10969:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10956:12:25"},"nodeType":"YulFunctionCall","src":"10956:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10947:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11022:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10997:24:25"},"nodeType":"YulFunctionCall","src":"10997:31:25"},"nodeType":"YulExpressionStatement","src":"10997:31:25"},{"nodeType":"YulAssignment","src":"11037:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"11047:5:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11037:6:25"}]},{"nodeType":"YulAssignment","src":"11061:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11093:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11104:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11089:3:25"},"nodeType":"YulFunctionCall","src":"11089:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"11071:17:25"},"nodeType":"YulFunctionCall","src":"11071:37:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11061:6:25"}]},{"nodeType":"YulAssignment","src":"11117:43:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11155:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11140:3:25"},"nodeType":"YulFunctionCall","src":"11140:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11127:12:25"},"nodeType":"YulFunctionCall","src":"11127:33:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"11117:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11169:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11213:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11198:3:25"},"nodeType":"YulFunctionCall","src":"11198:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11185:12:25"},"nodeType":"YulFunctionCall","src":"11185:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11173:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11247:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11256:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11259:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11249:6:25"},"nodeType":"YulFunctionCall","src":"11249:12:25"},"nodeType":"YulExpressionStatement","src":"11249:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"11233:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11243:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11230:2:25"},"nodeType":"YulFunctionCall","src":"11230:16:25"},"nodeType":"YulIf","src":"11227:36:25"},{"nodeType":"YulVariableDeclaration","src":"11272:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11328:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"11339:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11324:3:25"},"nodeType":"YulFunctionCall","src":"11324:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11350:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"11298:25:25"},"nodeType":"YulFunctionCall","src":"11298:60:25"},"variables":[{"name":"value6_1","nodeType":"YulTypedName","src":"11276:8:25","type":""},{"name":"value7_1","nodeType":"YulTypedName","src":"11286:8:25","type":""}]},{"nodeType":"YulAssignment","src":"11367:18:25","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"11377:8:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"11367:6:25"}]},{"nodeType":"YulAssignment","src":"11394:18:25","value":{"name":"value7_1","nodeType":"YulIdentifier","src":"11404:8:25"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"11394:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10452:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10463:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10475:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10483:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10491:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10499:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10507:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10515:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"10523:6:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"10531:6:25","type":""}],"src":"10351:1067:25"},{"body":{"nodeType":"YulBlock","src":"11622:986:25","statements":[{"body":{"nodeType":"YulBlock","src":"11669:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11678:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11681:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11671:6:25"},"nodeType":"YulFunctionCall","src":"11671:12:25"},"nodeType":"YulExpressionStatement","src":"11671:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11643:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11639:3:25"},"nodeType":"YulFunctionCall","src":"11639:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"11664:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11635:3:25"},"nodeType":"YulFunctionCall","src":"11635:33:25"},"nodeType":"YulIf","src":"11632:53:25"},{"nodeType":"YulAssignment","src":"11694:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11722:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"11704:17:25"},"nodeType":"YulFunctionCall","src":"11704:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11694:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11741:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11772:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11783:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11768:3:25"},"nodeType":"YulFunctionCall","src":"11768:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11755:12:25"},"nodeType":"YulFunctionCall","src":"11755:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11745:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11796:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"11806:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11800:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11851:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11860:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11863:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11853:6:25"},"nodeType":"YulFunctionCall","src":"11853:12:25"},"nodeType":"YulExpressionStatement","src":"11853:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11839:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11847:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11836:2:25"},"nodeType":"YulFunctionCall","src":"11836:14:25"},"nodeType":"YulIf","src":"11833:34:25"},{"nodeType":"YulAssignment","src":"11876:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11907:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"11918:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11903:3:25"},"nodeType":"YulFunctionCall","src":"11903:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11927:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"11886:16:25"},"nodeType":"YulFunctionCall","src":"11886:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11876:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11944:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11973:3:25"},"nodeType":"YulFunctionCall","src":"11973:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11960:12:25"},"nodeType":"YulFunctionCall","src":"11960:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11948:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12021:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12030:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12033:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12023:6:25"},"nodeType":"YulFunctionCall","src":"12023:12:25"},"nodeType":"YulExpressionStatement","src":"12023:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12007:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12017:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12004:2:25"},"nodeType":"YulFunctionCall","src":"12004:16:25"},"nodeType":"YulIf","src":"12001:36:25"},{"nodeType":"YulVariableDeclaration","src":"12046:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12102:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"12113:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12098:3:25"},"nodeType":"YulFunctionCall","src":"12098:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12124:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"12072:25:25"},"nodeType":"YulFunctionCall","src":"12072:60:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"12050:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"12060:8:25","type":""}]},{"nodeType":"YulAssignment","src":"12141:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"12151:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12141:6:25"}]},{"nodeType":"YulAssignment","src":"12168:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"12178:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12168:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12195:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12221:3:25"},"nodeType":"YulFunctionCall","src":"12221:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12208:12:25"},"nodeType":"YulFunctionCall","src":"12208:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12199:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12274:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12249:24:25"},"nodeType":"YulFunctionCall","src":"12249:31:25"},"nodeType":"YulExpressionStatement","src":"12249:31:25"},{"nodeType":"YulAssignment","src":"12289:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"12299:5:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"12289:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12313:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12345:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12356:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12341:3:25"},"nodeType":"YulFunctionCall","src":"12341:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12328:12:25"},"nodeType":"YulFunctionCall","src":"12328:33:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"12317:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"12395:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12370:24:25"},"nodeType":"YulFunctionCall","src":"12370:33:25"},"nodeType":"YulExpressionStatement","src":"12370:33:25"},{"nodeType":"YulAssignment","src":"12412:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"12422:7:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"12412:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12438:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12471:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12482:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12467:3:25"},"nodeType":"YulFunctionCall","src":"12467:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12454:12:25"},"nodeType":"YulFunctionCall","src":"12454:33:25"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"12442:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12516:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12525:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12528:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12518:6:25"},"nodeType":"YulFunctionCall","src":"12518:12:25"},"nodeType":"YulExpressionStatement","src":"12518:12:25"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"12502:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12512:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12499:2:25"},"nodeType":"YulFunctionCall","src":"12499:16:25"},"nodeType":"YulIf","src":"12496:36:25"},{"nodeType":"YulAssignment","src":"12541:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12572:9:25"},{"name":"offset_2","nodeType":"YulIdentifier","src":"12583:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12568:3:25"},"nodeType":"YulFunctionCall","src":"12568:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12594:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"12551:16:25"},"nodeType":"YulFunctionCall","src":"12551:51:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"12541:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11540:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11551:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11563:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11571:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11579:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11587:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11595:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"11603:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"11611:6:25","type":""}],"src":"11423:1185:25"},{"body":{"nodeType":"YulBlock","src":"12741:405:25","statements":[{"body":{"nodeType":"YulBlock","src":"12788:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12797:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12800:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12790:6:25"},"nodeType":"YulFunctionCall","src":"12790:12:25"},"nodeType":"YulExpressionStatement","src":"12790:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12762:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"12771:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12758:3:25"},"nodeType":"YulFunctionCall","src":"12758:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"12783:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12754:3:25"},"nodeType":"YulFunctionCall","src":"12754:33:25"},"nodeType":"YulIf","src":"12751:53:25"},{"nodeType":"YulAssignment","src":"12813:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12841:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12823:17:25"},"nodeType":"YulFunctionCall","src":"12823:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12813:6:25"}]},{"nodeType":"YulAssignment","src":"12860:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12888:3:25"},"nodeType":"YulFunctionCall","src":"12888:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12870:17:25"},"nodeType":"YulFunctionCall","src":"12870:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12860:6:25"}]},{"nodeType":"YulAssignment","src":"12916:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12943:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12954:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12939:3:25"},"nodeType":"YulFunctionCall","src":"12939:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12926:12:25"},"nodeType":"YulFunctionCall","src":"12926:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12967:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13009:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12994:3:25"},"nodeType":"YulFunctionCall","src":"12994:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12981:12:25"},"nodeType":"YulFunctionCall","src":"12981:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12971:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13056:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13065:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13068:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13058:6:25"},"nodeType":"YulFunctionCall","src":"13058:12:25"},"nodeType":"YulExpressionStatement","src":"13058:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13028:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13036:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13025:2:25"},"nodeType":"YulFunctionCall","src":"13025:30:25"},"nodeType":"YulIf","src":"13022:50:25"},{"nodeType":"YulAssignment","src":"13081:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13112:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13123:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13108:3:25"},"nodeType":"YulFunctionCall","src":"13108:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13132:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13091:16:25"},"nodeType":"YulFunctionCall","src":"13091:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13081:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12683:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12694:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12706:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12714:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12722:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12730:6:25","type":""}],"src":"12613:533:25"},{"body":{"nodeType":"YulBlock","src":"13270:341:25","statements":[{"body":{"nodeType":"YulBlock","src":"13317:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13326:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13329:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13319:6:25"},"nodeType":"YulFunctionCall","src":"13319:12:25"},"nodeType":"YulExpressionStatement","src":"13319:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13291:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13300:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13287:3:25"},"nodeType":"YulFunctionCall","src":"13287:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13312:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13283:3:25"},"nodeType":"YulFunctionCall","src":"13283:33:25"},"nodeType":"YulIf","src":"13280:53:25"},{"nodeType":"YulAssignment","src":"13342:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13370:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13352:17:25"},"nodeType":"YulFunctionCall","src":"13352:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13342:6:25"}]},{"nodeType":"YulAssignment","src":"13389:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13421:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13432:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13417:3:25"},"nodeType":"YulFunctionCall","src":"13417:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13399:17:25"},"nodeType":"YulFunctionCall","src":"13399:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13389:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"13445:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13475:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13486:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13471:3:25"},"nodeType":"YulFunctionCall","src":"13471:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13458:12:25"},"nodeType":"YulFunctionCall","src":"13458:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13449:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13524:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"13499:24:25"},"nodeType":"YulFunctionCall","src":"13499:31:25"},"nodeType":"YulExpressionStatement","src":"13499:31:25"},{"nodeType":"YulAssignment","src":"13539:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"13549:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13539:6:25"}]},{"nodeType":"YulAssignment","src":"13563:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13590:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13601:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13586:3:25"},"nodeType":"YulFunctionCall","src":"13586:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13573:12:25"},"nodeType":"YulFunctionCall","src":"13573:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13212:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13223:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13235:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13243:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13251:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13259:6:25","type":""}],"src":"13151:460:25"},{"body":{"nodeType":"YulBlock","src":"13695:241:25","statements":[{"body":{"nodeType":"YulBlock","src":"13741:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13750:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13753:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13743:6:25"},"nodeType":"YulFunctionCall","src":"13743:12:25"},"nodeType":"YulExpressionStatement","src":"13743:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13716:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13725:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13712:3:25"},"nodeType":"YulFunctionCall","src":"13712:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13737:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13708:3:25"},"nodeType":"YulFunctionCall","src":"13708:32:25"},"nodeType":"YulIf","src":"13705:52:25"},{"nodeType":"YulVariableDeclaration","src":"13766:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13793:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13780:12:25"},"nodeType":"YulFunctionCall","src":"13780:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13770:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13846:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13855:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13858:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13848:6:25"},"nodeType":"YulFunctionCall","src":"13848:12:25"},"nodeType":"YulExpressionStatement","src":"13848:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13826:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13815:2:25"},"nodeType":"YulFunctionCall","src":"13815:30:25"},"nodeType":"YulIf","src":"13812:50:25"},{"nodeType":"YulAssignment","src":"13871:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13902:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13913:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13898:3:25"},"nodeType":"YulFunctionCall","src":"13898:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13922:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13881:16:25"},"nodeType":"YulFunctionCall","src":"13881:49:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13871:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13661:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13672:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13684:6:25","type":""}],"src":"13616:320:25"},{"body":{"nodeType":"YulBlock","src":"14088:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14111:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"14116:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14124:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"14098:12:25"},"nodeType":"YulFunctionCall","src":"14098:33:25"},"nodeType":"YulExpressionStatement","src":"14098:33:25"},{"nodeType":"YulVariableDeclaration","src":"14140:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14154:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14159:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14150:3:25"},"nodeType":"YulFunctionCall","src":"14150:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14144:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14182:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"14186:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14175:6:25"},"nodeType":"YulFunctionCall","src":"14175:13:25"},"nodeType":"YulExpressionStatement","src":"14175:13:25"},{"nodeType":"YulAssignment","src":"14197:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"14204:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14197:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14056:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14061:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14069:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14080:3:25","type":""}],"src":"13941:271:25"},{"body":{"nodeType":"YulBlock","src":"14272:325:25","statements":[{"nodeType":"YulAssignment","src":"14282:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"14299:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14292:3:25"},"nodeType":"YulFunctionCall","src":"14292:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14282:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"14313:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14343:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"14349:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14339:3:25"},"nodeType":"YulFunctionCall","src":"14339:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14317:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14390:31:25","statements":[{"nodeType":"YulAssignment","src":"14392:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14406:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14414:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14402:3:25"},"nodeType":"YulFunctionCall","src":"14402:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14392:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14370:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14363:6:25"},"nodeType":"YulFunctionCall","src":"14363:26:25"},"nodeType":"YulIf","src":"14360:61:25"},{"body":{"nodeType":"YulBlock","src":"14480:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14501:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14508:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14513:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14504:3:25"},"nodeType":"YulFunctionCall","src":"14504:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14494:6:25"},"nodeType":"YulFunctionCall","src":"14494:31:25"},"nodeType":"YulExpressionStatement","src":"14494:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14545:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14548:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14538:6:25"},"nodeType":"YulFunctionCall","src":"14538:15:25"},"nodeType":"YulExpressionStatement","src":"14538:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14576:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14566:6:25"},"nodeType":"YulFunctionCall","src":"14566:15:25"},"nodeType":"YulExpressionStatement","src":"14566:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14436:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14459:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14467:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14456:2:25"},"nodeType":"YulFunctionCall","src":"14456:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14433:2:25"},"nodeType":"YulFunctionCall","src":"14433:38:25"},"nodeType":"YulIf","src":"14430:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14252:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14261:6:25","type":""}],"src":"14217:380:25"},{"body":{"nodeType":"YulBlock","src":"14634:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14651:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14658:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14663:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14654:3:25"},"nodeType":"YulFunctionCall","src":"14654:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14644:6:25"},"nodeType":"YulFunctionCall","src":"14644:31:25"},"nodeType":"YulExpressionStatement","src":"14644:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14694:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:15:25"},"nodeType":"YulExpressionStatement","src":"14684:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14715:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14718:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14708:6:25"},"nodeType":"YulFunctionCall","src":"14708:15:25"},"nodeType":"YulExpressionStatement","src":"14708:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14602:127:25"},{"body":{"nodeType":"YulBlock","src":"14782:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"14809:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14811:16:25"},"nodeType":"YulFunctionCall","src":"14811:18:25"},"nodeType":"YulExpressionStatement","src":"14811:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14798:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14805:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14801:3:25"},"nodeType":"YulFunctionCall","src":"14801:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14795:2:25"},"nodeType":"YulFunctionCall","src":"14795:13:25"},"nodeType":"YulIf","src":"14792:39:25"},{"nodeType":"YulAssignment","src":"14840:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"14854:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14847:3:25"},"nodeType":"YulFunctionCall","src":"14847:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"14840:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14765:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"14768:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"14774:3:25","type":""}],"src":"14734:128:25"},{"body":{"nodeType":"YulBlock","src":"15041:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15051:6:25"},"nodeType":"YulFunctionCall","src":"15051:21:25"},"nodeType":"YulExpressionStatement","src":"15051:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15092:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15103:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15088:3:25"},"nodeType":"YulFunctionCall","src":"15088:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15108:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15081:6:25"},"nodeType":"YulFunctionCall","src":"15081:30:25"},"nodeType":"YulExpressionStatement","src":"15081:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15131:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15127:3:25"},"nodeType":"YulFunctionCall","src":"15127:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"15147:34:25","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15120:6:25"},"nodeType":"YulFunctionCall","src":"15120:62:25"},"nodeType":"YulExpressionStatement","src":"15120:62:25"},{"nodeType":"YulAssignment","src":"15191:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15203:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15214:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15199:3:25"},"nodeType":"YulFunctionCall","src":"15199:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15191:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15018:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15032:4:25","type":""}],"src":"14867:356:25"},{"body":{"nodeType":"YulBlock","src":"15402:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15419:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15430:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15412:6:25"},"nodeType":"YulFunctionCall","src":"15412:21:25"},"nodeType":"YulExpressionStatement","src":"15412:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15449:3:25"},"nodeType":"YulFunctionCall","src":"15449:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15469:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15442:6:25"},"nodeType":"YulFunctionCall","src":"15442:30:25"},"nodeType":"YulExpressionStatement","src":"15442:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15492:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15503:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15488:3:25"},"nodeType":"YulFunctionCall","src":"15488:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"15508:31:25","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15481:6:25"},"nodeType":"YulFunctionCall","src":"15481:59:25"},"nodeType":"YulExpressionStatement","src":"15481:59:25"},{"nodeType":"YulAssignment","src":"15549:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15572:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15557:3:25"},"nodeType":"YulFunctionCall","src":"15557:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15549:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15379:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15393:4:25","type":""}],"src":"15228:353:25"},{"body":{"nodeType":"YulBlock","src":"15652:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15669:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15674:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15662:6:25"},"nodeType":"YulFunctionCall","src":"15662:19:25"},"nodeType":"YulExpressionStatement","src":"15662:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15707:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"15712:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15703:3:25"},"nodeType":"YulFunctionCall","src":"15703:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"15719:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"15726:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"15690:12:25"},"nodeType":"YulFunctionCall","src":"15690:43:25"},"nodeType":"YulExpressionStatement","src":"15690:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15757:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15762:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15753:3:25"},"nodeType":"YulFunctionCall","src":"15753:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"15771:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15749:3:25"},"nodeType":"YulFunctionCall","src":"15749:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"15778:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15742:6:25"},"nodeType":"YulFunctionCall","src":"15742:38:25"},"nodeType":"YulExpressionStatement","src":"15742:38:25"},{"nodeType":"YulAssignment","src":"15789:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15804:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15817:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15825:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15813:3:25"},"nodeType":"YulFunctionCall","src":"15813:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15834:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15830:3:25"},"nodeType":"YulFunctionCall","src":"15830:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15809:3:25"},"nodeType":"YulFunctionCall","src":"15809:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15800:3:25"},"nodeType":"YulFunctionCall","src":"15800:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"15841:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15796:3:25"},"nodeType":"YulFunctionCall","src":"15796:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15789:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"15621:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"15628:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15636:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15644:3:25","type":""}],"src":"15586:266:25"},{"body":{"nodeType":"YulBlock","src":"16012:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16029:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16044:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16052:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16040:3:25"},"nodeType":"YulFunctionCall","src":"16040:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16022:6:25"},"nodeType":"YulFunctionCall","src":"16022:38:25"},"nodeType":"YulExpressionStatement","src":"16022:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16080:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16091:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16076:3:25"},"nodeType":"YulFunctionCall","src":"16076:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16096:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16069:6:25"},"nodeType":"YulFunctionCall","src":"16069:30:25"},"nodeType":"YulExpressionStatement","src":"16069:30:25"},{"nodeType":"YulAssignment","src":"16108:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16142:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16150:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16162:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16173:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16158:3:25"},"nodeType":"YulFunctionCall","src":"16158:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16116:25:25"},"nodeType":"YulFunctionCall","src":"16116:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16108:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15965:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15976:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15984:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15992:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16003:4:25","type":""}],"src":"15857:326:25"},{"body":{"nodeType":"YulBlock","src":"16362:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16390:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16372:6:25"},"nodeType":"YulFunctionCall","src":"16372:21:25"},"nodeType":"YulExpressionStatement","src":"16372:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16413:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16424:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16409:3:25"},"nodeType":"YulFunctionCall","src":"16409:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16429:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16402:6:25"},"nodeType":"YulFunctionCall","src":"16402:30:25"},"nodeType":"YulExpressionStatement","src":"16402:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:25"},"nodeType":"YulFunctionCall","src":"16448:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"16468:32:25","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:25"},"nodeType":"YulFunctionCall","src":"16441:60:25"},"nodeType":"YulExpressionStatement","src":"16441:60:25"},{"nodeType":"YulAssignment","src":"16510:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16533:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16518:3:25"},"nodeType":"YulFunctionCall","src":"16518:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16510:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16339:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16353:4:25","type":""}],"src":"16188:354:25"},{"body":{"nodeType":"YulBlock","src":"16784:372:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16801:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16816:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16824:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16812:3:25"},"nodeType":"YulFunctionCall","src":"16812:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16794:6:25"},"nodeType":"YulFunctionCall","src":"16794:38:25"},"nodeType":"YulExpressionStatement","src":"16794:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16852:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16863:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16848:3:25"},"nodeType":"YulFunctionCall","src":"16848:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16868:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16841:6:25"},"nodeType":"YulFunctionCall","src":"16841:31:25"},"nodeType":"YulExpressionStatement","src":"16841:31:25"},{"nodeType":"YulVariableDeclaration","src":"16881:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16921:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16929:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16937:3:25"},"nodeType":"YulFunctionCall","src":"16937:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16895:25:25"},"nodeType":"YulFunctionCall","src":"16895:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16885:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16973:3:25"},"nodeType":"YulFunctionCall","src":"16973:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16997:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17005:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16993:3:25"},"nodeType":"YulFunctionCall","src":"16993:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16966:6:25"},"nodeType":"YulFunctionCall","src":"16966:59:25"},"nodeType":"YulExpressionStatement","src":"16966:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17045:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17056:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17041:3:25"},"nodeType":"YulFunctionCall","src":"17041:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17065:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17073:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17061:3:25"},"nodeType":"YulFunctionCall","src":"17061:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17034:6:25"},"nodeType":"YulFunctionCall","src":"17034:50:25"},"nodeType":"YulExpressionStatement","src":"17034:50:25"},{"nodeType":"YulAssignment","src":"17093:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17127:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"17135:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17143:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17101:25:25"},"nodeType":"YulFunctionCall","src":"17101:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17093:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16713:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16724:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16732:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16740:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16748:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16756:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16764:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16775:4:25","type":""}],"src":"16547:609:25"},{"body":{"nodeType":"YulBlock","src":"17370:310:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17387:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17402:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17410:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17398:3:25"},"nodeType":"YulFunctionCall","src":"17398:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17380:6:25"},"nodeType":"YulFunctionCall","src":"17380:38:25"},"nodeType":"YulExpressionStatement","src":"17380:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17438:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17449:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17434:3:25"},"nodeType":"YulFunctionCall","src":"17434:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17454:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17427:6:25"},"nodeType":"YulFunctionCall","src":"17427:31:25"},"nodeType":"YulExpressionStatement","src":"17427:31:25"},{"nodeType":"YulAssignment","src":"17467:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17501:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"17509:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17521:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17532:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17517:3:25"},"nodeType":"YulFunctionCall","src":"17517:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17475:25:25"},"nodeType":"YulFunctionCall","src":"17475:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17467:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17568:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17553:3:25"},"nodeType":"YulFunctionCall","src":"17553:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17577:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17585:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17573:3:25"},"nodeType":"YulFunctionCall","src":"17573:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17546:6:25"},"nodeType":"YulFunctionCall","src":"17546:59:25"},"nodeType":"YulExpressionStatement","src":"17546:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17625:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17636:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17621:3:25"},"nodeType":"YulFunctionCall","src":"17621:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17645:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17661:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17666:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17657:3:25"},"nodeType":"YulFunctionCall","src":"17657:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17670:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17653:3:25"},"nodeType":"YulFunctionCall","src":"17653:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17641:3:25"},"nodeType":"YulFunctionCall","src":"17641:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17614:6:25"},"nodeType":"YulFunctionCall","src":"17614:60:25"},"nodeType":"YulExpressionStatement","src":"17614:60:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17307:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17318:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17326:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17334:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17342:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17350:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17361:4:25","type":""}],"src":"17161:519:25"},{"body":{"nodeType":"YulBlock","src":"17859:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17876:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17887:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17869:6:25"},"nodeType":"YulFunctionCall","src":"17869:21:25"},"nodeType":"YulExpressionStatement","src":"17869:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17910:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17921:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17906:3:25"},"nodeType":"YulFunctionCall","src":"17906:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17926:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17899:6:25"},"nodeType":"YulFunctionCall","src":"17899:30:25"},"nodeType":"YulExpressionStatement","src":"17899:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17949:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17960:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17945:3:25"},"nodeType":"YulFunctionCall","src":"17945:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nodeType":"YulLiteral","src":"17965:34:25","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17938:6:25"},"nodeType":"YulFunctionCall","src":"17938:62:25"},"nodeType":"YulExpressionStatement","src":"17938:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18020:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18031:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18016:3:25"},"nodeType":"YulFunctionCall","src":"18016:18:25"},{"hexValue":"616e6379","kind":"string","nodeType":"YulLiteral","src":"18036:6:25","type":"","value":"ancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18009:6:25"},"nodeType":"YulFunctionCall","src":"18009:34:25"},"nodeType":"YulExpressionStatement","src":"18009:34:25"},{"nodeType":"YulAssignment","src":"18052:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18064:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18075:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18060:3:25"},"nodeType":"YulFunctionCall","src":"18060:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18052:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17836:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17850:4:25","type":""}],"src":"17685:400:25"},{"body":{"nodeType":"YulBlock","src":"18136:163:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18146:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"18156:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18150:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18183:29:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18202:5:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18209:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18198:3:25"},"nodeType":"YulFunctionCall","src":"18198:14:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"18187:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"18240:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18242:16:25"},"nodeType":"YulFunctionCall","src":"18242:18:25"},"nodeType":"YulExpressionStatement","src":"18242:18:25"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18227:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18236:2:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18224:2:25"},"nodeType":"YulFunctionCall","src":"18224:15:25"},"nodeType":"YulIf","src":"18221:41:25"},{"nodeType":"YulAssignment","src":"18271:22:25","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18282:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"18291:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18278:3:25"},"nodeType":"YulFunctionCall","src":"18278:15:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18271:3:25"}]}]},"name":"increment_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18118:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18128:3:25","type":""}],"src":"18090:209:25"},{"body":{"nodeType":"YulBlock","src":"18478:176:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18506:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18488:6:25"},"nodeType":"YulFunctionCall","src":"18488:21:25"},"nodeType":"YulExpressionStatement","src":"18488:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18540:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18525:3:25"},"nodeType":"YulFunctionCall","src":"18525:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18545:2:25","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18518:6:25"},"nodeType":"YulFunctionCall","src":"18518:30:25"},"nodeType":"YulExpressionStatement","src":"18518:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18568:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18579:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18564:3:25"},"nodeType":"YulFunctionCall","src":"18564:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nodeType":"YulLiteral","src":"18584:28:25","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18557:6:25"},"nodeType":"YulFunctionCall","src":"18557:56:25"},"nodeType":"YulExpressionStatement","src":"18557:56:25"},{"nodeType":"YulAssignment","src":"18622:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18630:3:25"},"nodeType":"YulFunctionCall","src":"18630:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18622:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18455:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18469:4:25","type":""}],"src":"18304:350:25"},{"body":{"nodeType":"YulBlock","src":"18708:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"18730:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18732:16:25"},"nodeType":"YulFunctionCall","src":"18732:18:25"},"nodeType":"YulExpressionStatement","src":"18732:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18724:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18727:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18721:2:25"},"nodeType":"YulFunctionCall","src":"18721:8:25"},"nodeType":"YulIf","src":"18718:34:25"},{"nodeType":"YulAssignment","src":"18761:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18773:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18776:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18769:3:25"},"nodeType":"YulFunctionCall","src":"18769:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"18761:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18690:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"18693:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"18699:4:25","type":""}],"src":"18659:125:25"},{"body":{"nodeType":"YulBlock","src":"18821:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18838:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18845:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18850:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18841:3:25"},"nodeType":"YulFunctionCall","src":"18841:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18831:6:25"},"nodeType":"YulFunctionCall","src":"18831:31:25"},"nodeType":"YulExpressionStatement","src":"18831:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18878:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18881:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18871:6:25"},"nodeType":"YulFunctionCall","src":"18871:15:25"},"nodeType":"YulExpressionStatement","src":"18871:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18902:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18905:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18895:6:25"},"nodeType":"YulFunctionCall","src":"18895:15:25"},"nodeType":"YulExpressionStatement","src":"18895:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"18789:127:25"},{"body":{"nodeType":"YulBlock","src":"18968:88:25","statements":[{"body":{"nodeType":"YulBlock","src":"18999:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19001:16:25"},"nodeType":"YulFunctionCall","src":"19001:18:25"},"nodeType":"YulExpressionStatement","src":"19001:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18984:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18995:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18991:3:25"},"nodeType":"YulFunctionCall","src":"18991:6:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18981:2:25"},"nodeType":"YulFunctionCall","src":"18981:17:25"},"nodeType":"YulIf","src":"18978:43:25"},{"nodeType":"YulAssignment","src":"19030:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19041:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"19048:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19037:3:25"},"nodeType":"YulFunctionCall","src":"19037:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19030:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18950:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18960:3:25","type":""}],"src":"18921:135:25"},{"body":{"nodeType":"YulBlock","src":"19372:557:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19389:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19404:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19412:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19400:3:25"},"nodeType":"YulFunctionCall","src":"19400:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19382:6:25"},"nodeType":"YulFunctionCall","src":"19382:38:25"},"nodeType":"YulExpressionStatement","src":"19382:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19440:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19451:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19456:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19429:6:25"},"nodeType":"YulFunctionCall","src":"19429:31:25"},"nodeType":"YulExpressionStatement","src":"19429:31:25"},{"nodeType":"YulVariableDeclaration","src":"19469:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19509:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19517:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19540:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19525:3:25"},"nodeType":"YulFunctionCall","src":"19525:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19483:25:25"},"nodeType":"YulFunctionCall","src":"19483:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19473:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19565:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19576:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19561:3:25"},"nodeType":"YulFunctionCall","src":"19561:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19585:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19601:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19606:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19597:3:25"},"nodeType":"YulFunctionCall","src":"19597:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"19610:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19593:3:25"},"nodeType":"YulFunctionCall","src":"19593:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19581:3:25"},"nodeType":"YulFunctionCall","src":"19581:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19554:6:25"},"nodeType":"YulFunctionCall","src":"19554:60:25"},"nodeType":"YulExpressionStatement","src":"19554:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:25"},"nodeType":"YulFunctionCall","src":"19630:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"19654:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19662:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19650:3:25"},"nodeType":"YulFunctionCall","src":"19650:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19623:6:25"},"nodeType":"YulFunctionCall","src":"19623:59:25"},"nodeType":"YulExpressionStatement","src":"19623:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19702:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19713:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19698:3:25"},"nodeType":"YulFunctionCall","src":"19698:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19723:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19731:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19719:3:25"},"nodeType":"YulFunctionCall","src":"19719:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19691:6:25"},"nodeType":"YulFunctionCall","src":"19691:51:25"},"nodeType":"YulExpressionStatement","src":"19691:51:25"},{"nodeType":"YulVariableDeclaration","src":"19751:63:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"19791:6:25"},{"name":"value6","nodeType":"YulIdentifier","src":"19799:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"19807:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19765:25:25"},"nodeType":"YulFunctionCall","src":"19765:49:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"19755:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19834:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19845:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19830:3:25"},"nodeType":"YulFunctionCall","src":"19830:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"19855:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19863:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19851:3:25"},"nodeType":"YulFunctionCall","src":"19851:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19823:6:25"},"nodeType":"YulFunctionCall","src":"19823:51:25"},"nodeType":"YulExpressionStatement","src":"19823:51:25"},{"nodeType":"YulAssignment","src":"19883:40:25","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"19908:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"19916:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19891:16:25"},"nodeType":"YulFunctionCall","src":"19891:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19883:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19285:9:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"19296:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"19304:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"19312:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19320:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19328:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19336:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19344:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19352:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19363:4:25","type":""}],"src":"19061:868:25"},{"body":{"nodeType":"YulBlock","src":"20108:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20136:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20118:6:25"},"nodeType":"YulFunctionCall","src":"20118:21:25"},"nodeType":"YulExpressionStatement","src":"20118:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20155:3:25"},"nodeType":"YulFunctionCall","src":"20155:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20175:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20148:6:25"},"nodeType":"YulFunctionCall","src":"20148:30:25"},"nodeType":"YulExpressionStatement","src":"20148:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20209:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20194:3:25"},"nodeType":"YulFunctionCall","src":"20194:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nodeType":"YulLiteral","src":"20214:34:25","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20187:6:25"},"nodeType":"YulFunctionCall","src":"20187:62:25"},"nodeType":"YulExpressionStatement","src":"20187:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20280:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20265:3:25"},"nodeType":"YulFunctionCall","src":"20265:18:25"},{"hexValue":"79","kind":"string","nodeType":"YulLiteral","src":"20285:3:25","type":"","value":"y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20258:6:25"},"nodeType":"YulFunctionCall","src":"20258:31:25"},"nodeType":"YulExpressionStatement","src":"20258:31:25"},{"nodeType":"YulAssignment","src":"20298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20306:3:25"},"nodeType":"YulFunctionCall","src":"20306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20085:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"19934:397:25"},{"body":{"nodeType":"YulBlock","src":"20510:234:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20527:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20538:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20520:6:25"},"nodeType":"YulFunctionCall","src":"20520:21:25"},"nodeType":"YulExpressionStatement","src":"20520:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20572:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20557:3:25"},"nodeType":"YulFunctionCall","src":"20557:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20577:2:25","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20550:6:25"},"nodeType":"YulFunctionCall","src":"20550:30:25"},"nodeType":"YulExpressionStatement","src":"20550:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20600:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20611:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20596:3:25"},"nodeType":"YulFunctionCall","src":"20596:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nodeType":"YulLiteral","src":"20616:34:25","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20589:6:25"},"nodeType":"YulFunctionCall","src":"20589:62:25"},"nodeType":"YulExpressionStatement","src":"20589:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20667:3:25"},"nodeType":"YulFunctionCall","src":"20667:18:25"},{"hexValue":"616464726573732073697a65","kind":"string","nodeType":"YulLiteral","src":"20687:14:25","type":"","value":"address size"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20660:6:25"},"nodeType":"YulFunctionCall","src":"20660:42:25"},"nodeType":"YulExpressionStatement","src":"20660:42:25"},{"nodeType":"YulAssignment","src":"20711:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20723:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20734:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20719:3:25"},"nodeType":"YulFunctionCall","src":"20719:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20711:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20487:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20501:4:25","type":""}],"src":"20336:408:25"},{"body":{"nodeType":"YulBlock","src":"20923:245:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20951:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20933:6:25"},"nodeType":"YulFunctionCall","src":"20933:21:25"},"nodeType":"YulExpressionStatement","src":"20933:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20974:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20985:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20970:3:25"},"nodeType":"YulFunctionCall","src":"20970:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20990:2:25","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20963:6:25"},"nodeType":"YulFunctionCall","src":"20963:30:25"},"nodeType":"YulExpressionStatement","src":"20963:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21024:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21009:3:25"},"nodeType":"YulFunctionCall","src":"21009:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nodeType":"YulLiteral","src":"21029:34:25","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21002:6:25"},"nodeType":"YulFunctionCall","src":"21002:62:25"},"nodeType":"YulExpressionStatement","src":"21002:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21084:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21095:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21080:3:25"},"nodeType":"YulFunctionCall","src":"21080:18:25"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nodeType":"YulLiteral","src":"21100:25:25","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21073:6:25"},"nodeType":"YulFunctionCall","src":"21073:53:25"},"nodeType":"YulExpressionStatement","src":"21073:53:25"},{"nodeType":"YulAssignment","src":"21135:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21158:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21143:3:25"},"nodeType":"YulFunctionCall","src":"21143:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21135:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20900:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20914:4:25","type":""}],"src":"20749:419:25"},{"body":{"nodeType":"YulBlock","src":"21347:231:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21364:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21375:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21357:6:25"},"nodeType":"YulFunctionCall","src":"21357:21:25"},"nodeType":"YulExpressionStatement","src":"21357:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21398:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21409:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21394:3:25"},"nodeType":"YulFunctionCall","src":"21394:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21414:2:25","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21387:6:25"},"nodeType":"YulFunctionCall","src":"21387:30:25"},"nodeType":"YulExpressionStatement","src":"21387:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21437:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21448:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21433:3:25"},"nodeType":"YulFunctionCall","src":"21433:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nodeType":"YulLiteral","src":"21453:34:25","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21426:6:25"},"nodeType":"YulFunctionCall","src":"21426:62:25"},"nodeType":"YulExpressionStatement","src":"21426:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21508:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21519:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21504:3:25"},"nodeType":"YulFunctionCall","src":"21504:18:25"},{"hexValue":"20666f722066656573","kind":"string","nodeType":"YulLiteral","src":"21524:11:25","type":"","value":" for fees"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21497:6:25"},"nodeType":"YulFunctionCall","src":"21497:39:25"},"nodeType":"YulExpressionStatement","src":"21497:39:25"},{"nodeType":"YulAssignment","src":"21545:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21568:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21553:3:25"},"nodeType":"YulFunctionCall","src":"21553:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21545:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21324:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21338:4:25","type":""}],"src":"21173:405:25"},{"body":{"nodeType":"YulBlock","src":"21774:14:25","statements":[{"nodeType":"YulAssignment","src":"21776:10:25","value":{"name":"pos","nodeType":"YulIdentifier","src":"21783:3:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21776:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21758:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21766:3:25","type":""}],"src":"21583:205:25"},{"body":{"nodeType":"YulBlock","src":"21967:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21977:6:25"},"nodeType":"YulFunctionCall","src":"21977:21:25"},"nodeType":"YulExpressionStatement","src":"21977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22014:3:25"},"nodeType":"YulFunctionCall","src":"22014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22034:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22007:6:25"},"nodeType":"YulFunctionCall","src":"22007:30:25"},"nodeType":"YulExpressionStatement","src":"22007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22053:3:25"},"nodeType":"YulFunctionCall","src":"22053:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nodeType":"YulLiteral","src":"22073:33:25","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22046:6:25"},"nodeType":"YulFunctionCall","src":"22046:61:25"},"nodeType":"YulExpressionStatement","src":"22046:61:25"},{"nodeType":"YulAssignment","src":"22116:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22124:3:25"},"nodeType":"YulFunctionCall","src":"22124:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22116:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21958:4:25","type":""}],"src":"21793:355:25"},{"body":{"nodeType":"YulBlock","src":"22300:186:25","statements":[{"nodeType":"YulVariableDeclaration","src":"22310:41:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22324:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22320:3:25"},"nodeType":"YulFunctionCall","src":"22320:31:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22314:2:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22367:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22380:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"22384:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22393:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22372:3:25"},"nodeType":"YulFunctionCall","src":"22372:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22360:6:25"},"nodeType":"YulFunctionCall","src":"22360:37:25"},"nodeType":"YulExpressionStatement","src":"22360:37:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22417:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22422:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22413:3:25"},"nodeType":"YulFunctionCall","src":"22413:12:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22435:2:25","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"22439:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22431:3:25"},"nodeType":"YulFunctionCall","src":"22431:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22448:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22427:3:25"},"nodeType":"YulFunctionCall","src":"22427:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22406:6:25"},"nodeType":"YulFunctionCall","src":"22406:46:25"},"nodeType":"YulExpressionStatement","src":"22406:46:25"},{"nodeType":"YulAssignment","src":"22461:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22472:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22477:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22468:3:25"},"nodeType":"YulFunctionCall","src":"22468:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22461:3:25"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22268:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22273:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22281:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22292:3:25","type":""}],"src":"22153:333:25"},{"body":{"nodeType":"YulBlock","src":"22764:452:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22781:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22796:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22804:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22792:3:25"},"nodeType":"YulFunctionCall","src":"22792:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22774:6:25"},"nodeType":"YulFunctionCall","src":"22774:38:25"},"nodeType":"YulExpressionStatement","src":"22774:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22832:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22843:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22828:3:25"},"nodeType":"YulFunctionCall","src":"22828:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22848:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22821:6:25"},"nodeType":"YulFunctionCall","src":"22821:31:25"},"nodeType":"YulExpressionStatement","src":"22821:31:25"},{"nodeType":"YulVariableDeclaration","src":"22861:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22892:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22904:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22915:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22900:3:25"},"nodeType":"YulFunctionCall","src":"22900:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"22875:16:25"},"nodeType":"YulFunctionCall","src":"22875:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22865:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22951:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22936:3:25"},"nodeType":"YulFunctionCall","src":"22936:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22960:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22976:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22981:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22972:3:25"},"nodeType":"YulFunctionCall","src":"22972:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22985:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22968:3:25"},"nodeType":"YulFunctionCall","src":"22968:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22956:3:25"},"nodeType":"YulFunctionCall","src":"22956:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22929:6:25"},"nodeType":"YulFunctionCall","src":"22929:60:25"},"nodeType":"YulExpressionStatement","src":"22929:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23009:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23020:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23005:3:25"},"nodeType":"YulFunctionCall","src":"23005:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23029:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23037:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23025:3:25"},"nodeType":"YulFunctionCall","src":"23025:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22998:6:25"},"nodeType":"YulFunctionCall","src":"22998:59:25"},"nodeType":"YulExpressionStatement","src":"22998:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23077:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23088:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23073:3:25"},"nodeType":"YulFunctionCall","src":"23073:19:25"},{"name":"value4","nodeType":"YulIdentifier","src":"23094:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23066:6:25"},"nodeType":"YulFunctionCall","src":"23066:35:25"},"nodeType":"YulExpressionStatement","src":"23066:35:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23121:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23132:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23117:3:25"},"nodeType":"YulFunctionCall","src":"23117:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"23142:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23138:3:25"},"nodeType":"YulFunctionCall","src":"23138:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23110:6:25"},"nodeType":"YulFunctionCall","src":"23110:51:25"},"nodeType":"YulExpressionStatement","src":"23110:51:25"},{"nodeType":"YulAssignment","src":"23170:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"23195:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"23203:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23178:16:25"},"nodeType":"YulFunctionCall","src":"23178:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23170:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22693:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"22704:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22712:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22720:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22728:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22736:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22744:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22755:4:25","type":""}],"src":"22491:725:25"},{"body":{"nodeType":"YulBlock","src":"23366:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23383:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23396:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"23401:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23392:3:25"},"nodeType":"YulFunctionCall","src":"23392:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23414:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"23419:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23388:3:25"},"nodeType":"YulFunctionCall","src":"23388:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23376:6:25"},"nodeType":"YulFunctionCall","src":"23376:51:25"},"nodeType":"YulExpressionStatement","src":"23376:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23447:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23452:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23443:3:25"},"nodeType":"YulFunctionCall","src":"23443:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"23456:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23436:6:25"},"nodeType":"YulFunctionCall","src":"23436:27:25"},"nodeType":"YulExpressionStatement","src":"23436:27:25"},{"nodeType":"YulAssignment","src":"23472:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23483:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23488:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23479:3:25"},"nodeType":"YulFunctionCall","src":"23479:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23472:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23334:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23339:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23347:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23358:3:25","type":""}],"src":"23221:276:25"},{"body":{"nodeType":"YulBlock","src":"23676:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23693:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23704:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23686:6:25"},"nodeType":"YulFunctionCall","src":"23686:21:25"},"nodeType":"YulExpressionStatement","src":"23686:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23738:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23723:3:25"},"nodeType":"YulFunctionCall","src":"23723:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23743:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23716:6:25"},"nodeType":"YulFunctionCall","src":"23716:30:25"},"nodeType":"YulExpressionStatement","src":"23716:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23777:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23762:3:25"},"nodeType":"YulFunctionCall","src":"23762:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nodeType":"YulLiteral","src":"23782:34:25","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23755:6:25"},"nodeType":"YulFunctionCall","src":"23755:62:25"},"nodeType":"YulExpressionStatement","src":"23755:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23837:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23848:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23833:3:25"},"nodeType":"YulFunctionCall","src":"23833:18:25"},{"hexValue":"6c6172676520","kind":"string","nodeType":"YulLiteral","src":"23853:8:25","type":"","value":"large "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23826:6:25"},"nodeType":"YulFunctionCall","src":"23826:36:25"},"nodeType":"YulExpressionStatement","src":"23826:36:25"},{"nodeType":"YulAssignment","src":"23871:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23894:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23879:3:25"},"nodeType":"YulFunctionCall","src":"23879:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23871:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23653:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23667:4:25","type":""}],"src":"23502:402:25"},{"body":{"nodeType":"YulBlock","src":"23961:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"24020:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24022:16:25"},"nodeType":"YulFunctionCall","src":"24022:18:25"},"nodeType":"YulExpressionStatement","src":"24022:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23992:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23985:6:25"},"nodeType":"YulFunctionCall","src":"23985:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23978:6:25"},"nodeType":"YulFunctionCall","src":"23978:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24000:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24011:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24007:3:25"},"nodeType":"YulFunctionCall","src":"24007:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"24015:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24003:3:25"},"nodeType":"YulFunctionCall","src":"24003:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23997:2:25"},"nodeType":"YulFunctionCall","src":"23997:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23974:3:25"},"nodeType":"YulFunctionCall","src":"23974:45:25"},"nodeType":"YulIf","src":"23971:71:25"},{"nodeType":"YulAssignment","src":"24051:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24066:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24069:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24062:3:25"},"nodeType":"YulFunctionCall","src":"24062:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24051:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23940:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"23943:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23949:7:25","type":""}],"src":"23909:168:25"},{"body":{"nodeType":"YulBlock","src":"24114:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24131:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24138:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24143:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24134:3:25"},"nodeType":"YulFunctionCall","src":"24134:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24124:6:25"},"nodeType":"YulFunctionCall","src":"24124:31:25"},"nodeType":"YulExpressionStatement","src":"24124:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24171:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24174:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24164:6:25"},"nodeType":"YulFunctionCall","src":"24164:15:25"},"nodeType":"YulExpressionStatement","src":"24164:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24195:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24198:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24188:6:25"},"nodeType":"YulFunctionCall","src":"24188:15:25"},"nodeType":"YulExpressionStatement","src":"24188:15:25"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"24082:127:25"},{"body":{"nodeType":"YulBlock","src":"24260:74:25","statements":[{"body":{"nodeType":"YulBlock","src":"24283:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24285:16:25"},"nodeType":"YulFunctionCall","src":"24285:18:25"},"nodeType":"YulExpressionStatement","src":"24285:18:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24280:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24273:6:25"},"nodeType":"YulFunctionCall","src":"24273:9:25"},"nodeType":"YulIf","src":"24270:35:25"},{"nodeType":"YulAssignment","src":"24314:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24323:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24326:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24319:3:25"},"nodeType":"YulFunctionCall","src":"24319:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24314:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24245:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24248:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24254:1:25","type":""}],"src":"24214:120:25"},{"body":{"nodeType":"YulBlock","src":"24391:235:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24401:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24411:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24405:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24454:21:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24469:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24472:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24465:3:25"},"nodeType":"YulFunctionCall","src":"24465:10:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"24458:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24484:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24499:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24502:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24495:3:25"},"nodeType":"YulFunctionCall","src":"24495:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24488:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24565:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24567:16:25"},"nodeType":"YulFunctionCall","src":"24567:18:25"},"nodeType":"YulExpressionStatement","src":"24567:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24535:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24528:6:25"},"nodeType":"YulFunctionCall","src":"24528:11:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24521:6:25"},"nodeType":"YulFunctionCall","src":"24521:19:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24545:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24554:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"24558:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24550:3:25"},"nodeType":"YulFunctionCall","src":"24550:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24542:2:25"},"nodeType":"YulFunctionCall","src":"24542:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24517:3:25"},"nodeType":"YulFunctionCall","src":"24517:47:25"},"nodeType":"YulIf","src":"24514:73:25"},{"nodeType":"YulAssignment","src":"24596:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24611:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24616:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24607:3:25"},"nodeType":"YulFunctionCall","src":"24607:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24596:7:25"}]}]},"name":"checked_mul_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24370:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24373:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"24379:7:25","type":""}],"src":"24339:287:25"},{"body":{"nodeType":"YulBlock","src":"24677:170:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24687:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24697:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24691:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24740:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24755:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24758:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24751:3:25"},"nodeType":"YulFunctionCall","src":"24751:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24744:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24785:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24787:16:25"},"nodeType":"YulFunctionCall","src":"24787:18:25"},"nodeType":"YulExpressionStatement","src":"24787:18:25"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24780:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24773:6:25"},"nodeType":"YulFunctionCall","src":"24773:11:25"},"nodeType":"YulIf","src":"24770:37:25"},{"nodeType":"YulAssignment","src":"24816:25:25","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24829:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24832:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:10:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24837:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24821:3:25"},"nodeType":"YulFunctionCall","src":"24821:20:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24816:1:25"}]}]},"name":"checked_div_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24662:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24665:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24671:1:25","type":""}],"src":"24631:216:25"},{"body":{"nodeType":"YulBlock","src":"25079:355:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25096:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25111:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25119:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25107:3:25"},"nodeType":"YulFunctionCall","src":"25107:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25089:6:25"},"nodeType":"YulFunctionCall","src":"25089:38:25"},"nodeType":"YulExpressionStatement","src":"25089:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25158:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25143:3:25"},"nodeType":"YulFunctionCall","src":"25143:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25163:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25136:6:25"},"nodeType":"YulFunctionCall","src":"25136:31:25"},"nodeType":"YulExpressionStatement","src":"25136:31:25"},{"nodeType":"YulVariableDeclaration","src":"25176:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25216:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"25224:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25236:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25247:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25232:3:25"},"nodeType":"YulFunctionCall","src":"25232:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"25190:25:25"},"nodeType":"YulFunctionCall","src":"25190:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"25180:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25272:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25283:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25268:3:25"},"nodeType":"YulFunctionCall","src":"25268:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"25292:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25300:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25288:3:25"},"nodeType":"YulFunctionCall","src":"25288:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25261:6:25"},"nodeType":"YulFunctionCall","src":"25261:59:25"},"nodeType":"YulExpressionStatement","src":"25261:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25340:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25351:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25336:3:25"},"nodeType":"YulFunctionCall","src":"25336:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"25360:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25368:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25356:3:25"},"nodeType":"YulFunctionCall","src":"25356:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25329:6:25"},"nodeType":"YulFunctionCall","src":"25329:50:25"},"nodeType":"YulExpressionStatement","src":"25329:50:25"},{"nodeType":"YulAssignment","src":"25388:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25413:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"25421:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25396:16:25"},"nodeType":"YulFunctionCall","src":"25396:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25388:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25016:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25027:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25035:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25043:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25051:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25059:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25070:4:25","type":""}],"src":"24852:582:25"},{"body":{"nodeType":"YulBlock","src":"25471:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25488:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25495:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25500:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25491:3:25"},"nodeType":"YulFunctionCall","src":"25491:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25481:6:25"},"nodeType":"YulFunctionCall","src":"25481:31:25"},"nodeType":"YulExpressionStatement","src":"25481:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25528:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25531:4:25","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25521:6:25"},"nodeType":"YulFunctionCall","src":"25521:15:25"},"nodeType":"YulExpressionStatement","src":"25521:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25552:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25555:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25545:6:25"},"nodeType":"YulFunctionCall","src":"25545:15:25"},"nodeType":"YulExpressionStatement","src":"25545:15:25"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"25439:127:25"},{"body":{"nodeType":"YulBlock","src":"25745:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25762:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25773:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25755:6:25"},"nodeType":"YulFunctionCall","src":"25755:21:25"},"nodeType":"YulExpressionStatement","src":"25755:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25796:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25807:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25812:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25785:6:25"},"nodeType":"YulFunctionCall","src":"25785:30:25"},"nodeType":"YulExpressionStatement","src":"25785:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25835:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25846:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25831:3:25"},"nodeType":"YulFunctionCall","src":"25831:18:25"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nodeType":"YulLiteral","src":"25851:23:25","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25824:6:25"},"nodeType":"YulFunctionCall","src":"25824:51:25"},"nodeType":"YulExpressionStatement","src":"25824:51:25"},{"nodeType":"YulAssignment","src":"25884:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25907:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25892:3:25"},"nodeType":"YulFunctionCall","src":"25892:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25884:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25722:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25736:4:25","type":""}],"src":"25571:345:25"},{"body":{"nodeType":"YulBlock","src":"26095:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26112:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26123:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26105:6:25"},"nodeType":"YulFunctionCall","src":"26105:21:25"},"nodeType":"YulExpressionStatement","src":"26105:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26146:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26157:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26142:3:25"},"nodeType":"YulFunctionCall","src":"26142:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26162:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26135:6:25"},"nodeType":"YulFunctionCall","src":"26135:30:25"},"nodeType":"YulExpressionStatement","src":"26135:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26185:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26196:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26181:3:25"},"nodeType":"YulFunctionCall","src":"26181:18:25"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nodeType":"YulLiteral","src":"26201:20:25","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26174:6:25"},"nodeType":"YulFunctionCall","src":"26174:48:25"},"nodeType":"YulExpressionStatement","src":"26174:48:25"},{"nodeType":"YulAssignment","src":"26231:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26243:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26254:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26239:3:25"},"nodeType":"YulFunctionCall","src":"26239:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26231:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26072:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26086:4:25","type":""}],"src":"25921:342:25"},{"body":{"nodeType":"YulBlock","src":"26442:161:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26470:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26452:6:25"},"nodeType":"YulFunctionCall","src":"26452:21:25"},"nodeType":"YulExpressionStatement","src":"26452:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26493:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26504:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26489:3:25"},"nodeType":"YulFunctionCall","src":"26489:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26509:2:25","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26482:6:25"},"nodeType":"YulFunctionCall","src":"26482:30:25"},"nodeType":"YulExpressionStatement","src":"26482:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26543:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26528:3:25"},"nodeType":"YulFunctionCall","src":"26528:18:25"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nodeType":"YulLiteral","src":"26548:13:25","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26521:6:25"},"nodeType":"YulFunctionCall","src":"26521:41:25"},"nodeType":"YulExpressionStatement","src":"26521:41:25"},{"nodeType":"YulAssignment","src":"26571:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26583:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26594:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26579:3:25"},"nodeType":"YulFunctionCall","src":"26579:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26571:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26419:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26433:4:25","type":""}],"src":"26268:335:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), 0)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_uint128(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint128(headStart)\n value1 := abi_decode_uint128(add(headStart, 32))\n value2 := abi_decode_uint128(add(headStart, 64))\n value3 := abi_decode_uint64(add(headStart, 96))\n value4 := abi_decode_uint64(add(headStart, 128))\n }\n function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let value_1 := calldataload(add(headStart, 96))\n if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n value3 := value_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n let _1 := 0xffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n let _2 := 0xffffffffffffffff\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, _2))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value3 := value\n value4 := abi_decode_uint64(add(headStart, 96))\n value5 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value4 := value\n let value_1 := calldataload(add(headStart, 128))\n validator_revert_address(value_1)\n value5 := value_1\n let offset_2 := calldataload(add(headStart, 160))\n if gt(offset_2, _1) { revert(0, 0) }\n value6 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"LayerZeroMock: no stored payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), and(value4, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"LayerZeroMock: no receive reentr\")\n mstore(add(headStart, 96), \"ancy\")\n tail := add(headStart, 128)\n }\n function increment_t_uint64(value) -> ret\n {\n let _1 := 0xffffffffffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"LayerZeroMock: wrong nonce\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 192))\n mstore(add(headStart, 64), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value4, 0xffffffffffffffff))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes_calldata(value5, value6, tail_1)\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value7, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"LayerZeroMock: no send reentranc\")\n mstore(add(headStart, 96), \"y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"LayerZeroMock: incorrect remote \")\n mstore(add(headStart, 96), \"address size\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 55)\n mstore(add(headStart, 64), \"LayerZeroMock: destination Layer\")\n mstore(add(headStart, 96), \"Zero Endpoint not found\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"LayerZeroMock: not enough native\")\n mstore(add(headStart, 96), \" for fees\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"LayerZeroMock: failed to refund\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let _1 := not(0xffffffffffffffffffffffff)\n mstore(pos, and(shl(96, value0), _1))\n mstore(add(pos, 20), and(shl(96, value1), _1))\n end := add(pos, 40)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), sub(tail_1, headStart))\n tail := abi_encode_bytes(value5, tail_1)\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LayerZeroMock: dstNativeAmt too \")\n mstore(add(headStart, 96), \"large \")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_mul_t_uint128(x, y) -> product\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_div_t_uint128(x, y) -> r\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Invalid adapterParams\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unsupported txType\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 11)\n mstore(add(headStart, 64), \"Gas too low\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fcd2d38b724f9c9e5d1ac5abffe439ca2f05c406fdb9d323fa90177d94e6804364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xD2 0xD3 DUP12 PUSH19 0x4F9C9E5D1AC5ABFFE439CA2F05C406FDB9D323 STATICCALL SWAP1 OR PUSH30 0x94E6804364736F6C634300080A0033000000000000000000000000000000 ","sourceMap":"768:98:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:42:6;;;;;;;;;;-1:-1:-1;1144:42:6;;;;;;;;;;;;;188:25:25;;;244:2;229:18;;222:34;;;;161:18;1144:42:6;;;;;;;;11660:78;;;;;;;;;;-1:-1:-1;11660:78:6;;;;;:::i;:::-;;;;;11206:133;;;;;;;;;;-1:-1:-1;11206:133:6;;;;;:::i;:::-;-1:-1:-1;11331:1:6;;11206:133;;;;1182:6:25;1170:19;;;1152:38;;1140:2;1125:18;11206:133:6;1008:188:25;10246:228:6;;;;;;;;;;-1:-1:-1;10246:228:6;;;;;:::i;:::-;;:::i;:::-;;;2204:14:25;;2197:22;2179:41;;2167:2;2152:18;10246:228:6;2039:187:25;1846:73:6;;;;;;;;;;-1:-1:-1;1846:73:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13583:162::-;;;;;;;;;;-1:-1:-1;13583:162:6;;;;;:::i;:::-;13656:17;:34;;;;13700:26;:38;13583:162;1219:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13145:432::-;;;;;;;;;;-1:-1:-1;13145:432:6;;;;;:::i;:::-;-1:-1:-1;;;;;13303:47:6;;;-1:-1:-1;;;13360:53:6;;;;;;13303:16;13360:53;13423:32;:51;;;;;;-1:-1:-1;;;;;;13484:35:6;;;;;;;-1:-1:-1;;;;;13484:35:6;;;;;;;;;;-1:-1:-1;;;;;13529:41:6;-1:-1:-1;;;13529:41:6;;;;;;;;13145:432;9344:97;;;;;;;;;;-1:-1:-1;9423:11:6;;;;9344:97;;1047:26;;;;;;;;;;-1:-1:-1;1047:26:6;;;;;;;;;;;8645:693;;;;;;;;;;-1:-1:-1;8645:693:6;;;;;:::i;:::-;;:::i;11831:720::-;;;;;;;;;;-1:-1:-1;11831:720:6;;;;;:::i;:::-;;:::i;10604:121::-;;;;;;;;;;-1:-1:-1;10604:121:6;;;;;:::i;:::-;-1:-1:-1;10713:4:6;;10604:121;;;;-1:-1:-1;;;;;6855:32:25;;;6837:51;;6825:2;6810:18;10604:121:6;6691:203:25;1728:71:6;;;;;;;;;;-1:-1:-1;1728:71:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1728:71:6;;;-1:-1:-1;;;1728:71:6;;-1:-1:-1;;;;;1728:71:6;;;;;;;;-1:-1:-1;;;;;7514:31:25;;;7496:50;;-1:-1:-1;;;;;7582:32:25;;;7577:2;7562:18;;7555:60;7631:18;;;7624:34;7484:2;7469:18;1728:71:6;7296:368:25;8475:164:6;;;;;;;;;;-1:-1:-1;8475:164:6;;;;;:::i;:::-;8596:23;;;8571:6;8596:23;;;:13;:23;;;;;;;;-1:-1:-1;;;;;8596:36:6;;;;;;;;;;-1:-1:-1;;;;;8596:36:6;8475:164;;;;;;;;-1:-1:-1;;;;;8155:31:25;;;8137:50;;8125:2;8110:18;8475:164:6;7993:200:25;12679:173:6;;;;;;;;;;-1:-1:-1;12679:173:6;;;;;:::i;:::-;;:::i;:::-;;;8344:25:25;;;8332:2;8317:18;12679:173:6;8198:177:25;1098:40:6;;;;;;;;;;-1:-1:-1;1098:40:6;;;;;;-1:-1:-1;;;;;1098:40:6;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;;;-1:-1:-1;;;;;1098:40:6;;;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;-1:-1:-1;;;;;8706:15:25;;;8688:34;;8758:15;;;8753:2;8738:18;;8731:43;8810:15;;;;8790:18;;;8783:43;;;;-1:-1:-1;;;;;8899:15:25;;;8894:2;8879:18;;8872:43;8952:15;;;8946:3;8931:19;;8924:44;8622:3;8607:19;1098:40:6;8380:594:25;1345:63:6;;;;;;;;;;-1:-1:-1;1345:63:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1345:63:6;;;9447:793;;;;;;;;;;-1:-1:-1;9447:793:6;;;;;:::i;:::-;;:::i;1489:66::-;;;;;;;;;;-1:-1:-1;1489:66:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1489:66:6;;;13751:87;;;;;;;;;;-1:-1:-1;13751:87:6;;;;;:::i;:::-;13809:9;:22;13751:87;13001:138;;;;;;;;;;-1:-1:-1;13001:138:6;;;;;:::i;:::-;-1:-1:-1;;;;;13089:26:6;;;:16;:26;;;;;;;;;;:43;;-1:-1:-1;;;;;;13089:43:6;;;;;;;;13001:138;6031:2275;;;;;;;;;;-1:-1:-1;6031:2275:6;;;;;:::i;:::-;;:::i;4013:2012::-;;;;;;:::i;:::-;;:::i;958:51::-;;;;;;;;;;-1:-1:-1;958:51:6;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;958:51:6;;;10858:126;;;;;;;;;;;;10943:22;;;;;:34;:22;950:1;10943:34;;10858:126;11487:167;;;;;;;;;;-1:-1:-1;11487:167:6;;;;;:::i;:::-;11919:632;11831:720;;;;12924:71;;;;;;;;;;;;12984:4;12967:21;;-1:-1:-1;;12967:21:6;;;;;12924:71;1016:25;;;;;;;;;;-1:-1:-1;1016:25:6;;;;;;;;10731:121;;;;;;;;;;;;10814:19;;:31;:19;950:1;10814:31;;10731:121;10990:210;;;;;;;;;;-1:-1:-1;10990:210:6;;;;;:::i;:::-;11184:9;;;;;;;;;-1:-1:-1;11184:9:6;;10990:210;;;;;;;1192:21;;;;;;;;;;;;;;;;13844:125;;;;;;;;;;-1:-1:-1;13844:125:6;;;;;:::i;:::-;;:::i;8312:157::-;;;;;;;;;;-1:-1:-1;8312:157:6;;;;;:::i;:::-;;:::i;10246:228::-;10389:26;;;10346:4;10389:26;;;:13;:26;;;;;;:33;;10346:4;;10389:26;:33;;10416:5;;;;10389:33;:::i;:::-;;;;;;;;;;;;;;10439:14;;;:28;;;-1:-1:-1;;10246:228:6;;;;;;:::o;1846:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1846:73:6;;;-1:-1:-1;;;;1846:73:6;;;-1:-1:-1;;;;;1846:73:6;;-1:-1:-1;1846:73:6;;-1:-1:-1;1846:73:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1219:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8645:693::-;8802:14;8818:11;8841:26;8894:1;8870:14;:21;:25;:65;;8915:20;8870:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8898:14;8870:65;8841:94;;8969:15;8987:80;9002:11;9015:1;9018:16;9036:8;:15;9053:13;8987:14;:80::i;:::-;8969:98;;9103:16;9122:50;9139:9;9150:10;9162:9;;9122:16;:50::i;:::-;9103:69;;9182:9;:58;;9229:11;9217:23;;;9182:58;;;9203:11;9194:20;;;9182:58;-1:-1:-1;9322:9:6;;9297:22;9309:10;9297:9;:22;:::i;:::-;:34;;;;:::i;:::-;9285:46;;8831:507;;;8645:693;;;;;;;;:::o;11831:720::-;11956:26;;;11929:24;11956:26;;;:13;:26;;;;;;:33;;;;11983:5;;;;11956:33;:::i;:::-;;;;;;;;;;;;;;12085:14;;;;11956:33;;-1:-1:-1;12077:73:6;;;;-1:-1:-1;;;12077:73:6;;15069:2:25;12077:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;12077:73:6;;;;;;;;;12168:13;;-1:-1:-1;;;12168:13:6;;-1:-1:-1;;;;;12168:13:6;12185:10;12168:27;12160:69;;;;-1:-1:-1;;;12160:69:6;;15430:2:25;12160:69:6;;;15412:21:25;15469:2;15449:18;;;15442:30;15508:31;15488:18;;;15481:59;15557:18;;12160:69:6;15228:353:25;12160:69:6;12275:20;;-1:-1:-1;;;;;;12305:26:6;;;12294:1;12275:20;12341:14;;:27;12384:40;;;;;;12405:11;;12418:5;;;;12384:40;:::i;:::-;;;;;;;;12512:32;12525:11;12538:5;;12512:12;:32::i;12679:173::-;12799:26;;;12776:4;12799:26;;;:13;:26;;;;;;:39;;;;12826:11;;;;12799:39;:::i;:::-;;;;;;;;;;;;;;:46;;-1:-1:-1;12679:173:6;;;;;:::o;9447:793::-;9591:26;;;9564:24;9591:26;;;:13;:26;;;;;;:33;;;;9618:5;;;;9591:33;:::i;:::-;;;;;;;;;;;;;;9642:14;;;;9591:33;;-1:-1:-1;9634:73:6;;;;-1:-1:-1;;;9634:73:6;;15069:2:25;9634:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;9634:73:6;14867:356:25;9634:73:6;9744:16;;-1:-1:-1;;;;;9744:16:6;9725:35;;:76;;;;;9787:2;:14;;;9774:8;;9764:19;;;;;;;:::i;:::-;;;;;;;;:37;9725:76;9717:119;;;;-1:-1:-1;;;9717:119:6;;16390:2:25;9717:119:6;;;16372:21:25;16429:2;16409:18;;;16402:30;16468:32;16448:18;;;16441:60;16518:18;;9717:119:6;16188:354:25;9717:119:6;9868:13;;-1:-1:-1;;;;;;9956:26:6;;;;-1:-1:-1;;9992:14:6;;:27;;;10045:25;;;;;9868:13;10045:25;;;;;;:32;;-1:-1:-1;;;9868:13:6;;;-1:-1:-1;;;;;9868:13:6;;10045:32;;10071:5;;;;10045:32;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;10088:77:6;;-1:-1:-1;;;;;10045:32:6;;-1:-1:-1;;;;;;10088:40:6;;;;;:77;;10129:11;;10142:5;;;;10045:32;;10156:8;;;;10088:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10180:53;10195:11;10208:5;;10215;10222:10;10180:53;;;;;;;;;;:::i;:::-;;;;;;;;9554:686;;;9447:793;;;;;:::o;6031:2275::-;2823:22;;;;;:38;:22;908:1;2823:38;2815:87;;;;-1:-1:-1;;;2815:87:6;;17887:2:25;2815:87:6;;;17869:21:25;17926:2;17906:18;;;17899:30;17965:34;17945:18;;;17938:62;-1:-1:-1;;;18016:18:25;;;18009:34;18060:19;;2815:87:6;17685:400:25;2815:87:6;2912:22;:33;;-1:-1:-1;;2912:33:6;;;;;6249:26:::1;::::0;::::1;-1:-1:-1::0;6249:26:6;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6276:5;;;;6249:33:::1;:::i;:::-;;;;;;;;;;;;;6222:60;;6377:12;:25;6390:11;6377:25;;;;;;;;;;;;;;;6403:5;;6377:32;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;6375:34;;6377:32:::1;::::0;6375:34:::1;::::0;-1:-1:-1;;;;;6375:34:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6365:44:6::1;:6;-1:-1:-1::0;;;;;6365:44:6::1;;6357:83;;;::::0;-1:-1:-1;;;6357:83:6;;18506:2:25;6357:83:6::1;::::0;::::1;18488:21:25::0;18545:2;18525:18;;;18518:30;18584:28;18564:18;;;18557:56;18630:18;;6357:83:6::1;18304:350:25::0;6357:83:6::1;6578:14;::::0;::::1;::::0;:28;6574:1726:::1;;6653:26;::::0;::::1;6622:28;6653:26:::0;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6680:5;;;;6653:33:::1;:::i;:::-;;;;;;;;;;;;;6622:64;;6700:27;6730:44;;;;;;;;6744:11;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6757:6;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6765:8;;6730:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6730:44:6;;-1:-1:-1;6980:11:6;;6700:74;;-1:-1:-1;6980:15:6;6976:436:::1;;7051:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7051:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7051:17:6::1;-1:-1:-1::0;;;7051:17:6::1;-1:-1:-1::0;;;;;;7051:17:6;;;-1:-1:-1;;;;;7051:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7061:6;;7051:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;7146:6;7141:105;7162:11:::0;;:15:::1;::::0;7176:1:::1;::::0;7162:15:::1;:::i;:::-;7158:1;:19;7141:105;;;7220:4;7225:1;7220:7;;;;;;;;:::i;:::-;;;;;;;;;;;7206:4;7211:1;7215;7211:5;;;;:::i;:::-;7206:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21;;:11:::1;::::0;;::::1;;:21:::0;;-1:-1:-1;;;;;7206:21:6;;::::1;-1:-1:-1::0;;;;;;7206:21:6;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;7206:21:6;;;;-1:-1:-1;;;7206:21:6;;;::::1;-1:-1:-1::0;;;;;7206:21:6::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7206:21:6;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;:::i;:::-;;;;;7179:3;;;;;:::i;:::-;;;;7141:105;;;;7335:6;7325:4;7330:1;7325:7;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:16;;:7:::1;::::0;;::::1;;:16:::0;;;;::::1;::::0;-1:-1:-1;;;;;7325:16:6::1;-1:-1:-1::0;;;7325:16:6::1;-1:-1:-1::0;;;;;;7325:16:6;;;-1:-1:-1;;;;;7325:16:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:7;;:16:::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;;;;6976:436;;;7380:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7380:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7380:17:6::1;-1:-1:-1::0;;;7380:17:6::1;-1:-1:-1::0;;;;;;7380:17:6;;;-1:-1:-1;;;;;7380:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7390:6;;7380:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;6976:436;6608:814;;6574:1726;;;7432:14;::::0;;;::::1;;;7428:872;;;7498:72;;;;;;;;7519:8;;:15;;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7537:11;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7560:8;;7550:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7498:72;;;7462:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7489:5;;;;7462:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7462:108:6::1;-1:-1:-1::0;;;7462:108:6::1;-1:-1:-1::0;;;;;;7462:108:6;;;-1:-1:-1;;;;;7462:108:6;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;7654:9;;::::1;::::0;;7462:108:::1;7654:9:::0;;7589:75;;::::1;::::0;::::1;::::0;7603:11;;7616:5;;;;7623:11;;7636:6;;7644:8;;;;7462:33;7589:75:::1;:::i;:::-;;;;;;;;7752:14;:22:::0;;-1:-1:-1;;7752:22:6::1;::::0;;7428:872:::1;;;7809:95;::::0;-1:-1:-1;;;7809:95:6;;-1:-1:-1;;;;;7809:41:6;::::1;::::0;::::1;::::0;7856:9;;7809:95:::1;::::0;7867:11;;7880:5;;;;7887:6;;7895:8;;;;7809:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;7805:485;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:72;;;;;;;;8011:8;;:15;;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8029:11;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8052:8;;8042:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7990:72;;;7954:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7981:5;;;;7954:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7954:108:6::1;-1:-1:-1::0;;;7954:108:6::1;-1:-1:-1::0;;;;;;7954:108:6;;;-1:-1:-1;;;;;7954:108:6;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;8085:72:::1;::::0;::::1;::::0;8099:11;;8112:5;;;;8119:11;;8132:6;;8140:8;;;;8150:6;;8085:72:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;8253:14:6::1;:22:::0;;-1:-1:-1;;8253:22:6::1;::::0;;7805:485:::1;-1:-1:-1::0;;2966:22:6;:37;;-1:-1:-1;;2966:37:6;;;;;-1:-1:-1;;;;;;;6031:2275:6:o;4013:2012::-;2593:19;;:35;:19;908:1;2593:35;2585:81;;;;-1:-1:-1;;;2585:81:6;;20136:2:25;2585:81:6;;;20118:21:25;20175:2;20155:18;;;20148:30;20214:34;20194:18;;;20187:62;-1:-1:-1;;;20265:18:25;;;20258:31;20306:19;;2585:81:6;19934:397:25;2585:81:6;2676:19;:30;;-1:-1:-1;;2676:30:6;950:1;2676:30;;;4239:12;;4255:2:::1;4239:18;4231:75;;;::::0;-1:-1:-1;;;4231:75:6;;20538:2:25;4231:75:6::1;::::0;::::1;20520:21:25::0;20577:2;20557:18;;;20550:30;20616:34;20596:18;;;20589:62;-1:-1:-1;;;20667:18:25;;;20660:42;20719:19;;4231:75:6::1;20336:408:25::0;4231:75:6::1;4420:2;4409:14:::0;::::1;4403:21:::0;-1:-1:-1;;;;;4465:25:6;;::::1;4344:15;4465:25:::0;;;::::1;::::0;;;;;;;::::1;4508:24:::0;4500:92:::1;;;::::0;-1:-1:-1;;;4500:92:6;;20951:2:25;4500:92:6::1;::::0;::::1;20933:21:25::0;20990:2;20970:18;;;20963:30;21029:34;21009:18;;;21002:62;21100:25;21080:18;;;21073:53;21143:19;;4500:92:6::1;20749:419:25::0;4500:92:6::1;4635:26;4688:1:::0;4664:14:::1;:21;:25;:65;;4709:20;4664:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:14;4664:65;4635:94;;4740:14;4760:95;4773:8;4783:10;4795:8;;4760:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;4805:34:6;::::1;::::0;::::1;4841:13:::0;4760:12:::1;:95::i;:::-;4739:116;;;4886:9;4873;:22;;4865:76;;;::::0;-1:-1:-1;;;4865:76:6;;21375:2:25;4865:76:6::1;::::0;::::1;21357:21:25::0;21414:2;21394:18;;;21387:30;21453:34;21433:18;;;21426:62;-1:-1:-1;;;21504:18:25;;;21497:39;21553:19;;4865:76:6::1;21173:405:25::0;4865:76:6::1;4969:23;::::0;::::1;4952:12;4969:23:::0;;;:13:::1;:23;::::0;;;;;;;4993:10:::1;4969:35:::0;;;;;;;4967:37;;4952:12;;4967:37:::1;::::0;-1:-1:-1;;;;;4967:37:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;4952:52;;5055:11;5081:9;5069;:21;;;;:::i;:::-;5055:35:::0;-1:-1:-1;5104:10:6;;5100:163:::1;;5131:12;5149:14;-1:-1:-1::0;;;;;5149:19:6::1;5176:6;5149:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5130:57;;;5209:7;5201:51;;;::::0;-1:-1:-1;;;5201:51:6;;21995:2:25;5201:51:6::1;::::0;::::1;21977:21:25::0;22034:2;22014:18;;;22007:30;22073:33;22053:18;;;22046:61;22124:18;;5201:51:6::1;21793:355:25::0;5201:51:6::1;5116:147;5100:163;5420:13;5435:17:::0;5454:29:::1;5487:40;5513:13;5487:25;:40::i;:::-;5417:110:::0;;-1:-1:-1;5417:110:6;-1:-1:-1;5417:110:6;-1:-1:-1;;5541:16:6;;5537:222:::1;;5574:12;5592:13;-1:-1:-1::0;;;;;5592:18:6::1;5618:12;5592:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:62;;;5654:7;5649:100;;5686:48;::::0;5721:12;;-1:-1:-1;;;;;5686:48:6;::::1;::::0;::::1;::::0;;;::::1;5649:100;5559:200;5537:222;5797:37;::::0;-1:-1:-1;;5814:10:6::1;22380:2:25::0;22376:15;;;22372:24;;5797:37:6::1;::::0;::::1;22360::25::0;22431:15;;;22427:24;22413:12;;;22406:46;5769:25:6::1;::::0;22468:12:25;;5797:37:6::1;;;;;;;;;;;;5769:65;;5874:20;5897:8;;5874:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5930:10;-1:-1:-1::0;;;;;5915:41:6::1;;5957:11;;;;;;;;;;;5970:12;5984:7;5993:5;6000:8;6010:7;5915:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2727:19:6;:34;;-1:-1:-1;;2727:34:6;908:1;2727:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4013:2012:6:o;13844:125::-;13925:37;;;;:20;;:37;;;;;:::i;:::-;;13844:125;:::o;8312:157::-;8433:22;;;8408:6;8433:22;;;:12;:22;;;;;;:29;;;;8456:5;;;;8433:29;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;8433:29:6;;-1:-1:-1;8312:157:6;;;;;:::o;918:238:3:-;1114:35;;;-1:-1:-1;;;1114:35:3;;;23376:51:25;23443:11;;;;23436:27;;;;1114:35:3;;;;;;;;;;23479:12:25;;1114:35:3;;;918:238::o;14960:1322:6:-;15192:4;15209:13;15224;15239:17;15262:41;15288:14;15262:25;:41::i;:::-;15208:95;;;;;;;15313:21;15395:6;:11;;15405:1;15395:11;15391:187;;;15430:32;;-1:-1:-1;;;;;15430:32:6;:48;-1:-1:-1;15430:48:6;15422:99;;;;-1:-1:-1;;;15422:99:6;;23704:2:25;15422:99:6;;;23686:21:25;23743:2;23723:18;;;23716:30;23782:34;23762:18;;;23755:62;-1:-1:-1;;;23833:18:25;;;23826:36;23879:19;;15422:99:6;23502:402:25;15422:99:6;15535:32;15555:12;15535:32;;:::i;:::-;;;15391:187;15714:24;;15655:19;;15714:35;;15741:8;;-1:-1:-1;;;15714:24:6;;-1:-1:-1;;;;;15714:24:6;:35;:::i;:::-;15677:16;:33;:73;;;-1:-1:-1;;;15677:33:6;;-1:-1:-1;;;;;15677:33:6;:73;:::i;:::-;15655:95;-1:-1:-1;15760:34:6;15655:95;15760:34;;:::i;:::-;15959:16;:30;15760:34;;-1:-1:-1;15922:14:6;;15993:6;;15940:49;;-1:-1:-1;;;;;15959:30:6;15760:34;15940:49;:::i;:::-;15939:60;;;;:::i;:::-;16178:16;:30;16148:27;;15922:77;;-1:-1:-1;16091:17:6;;16212:6;;-1:-1:-1;;;;;16178:30:6;;;;16112:63;;-1:-1:-1;;;16148:27:6;;;-1:-1:-1;;;;;16148:27:6;;-1:-1:-1;;;16112:33:6;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16111:107;;;;:::i;:::-;-1:-1:-1;;;;;16091:127:6;;-1:-1:-1;16248:27:6;16091:127;16248:12;:27;:::i;:::-;16236:39;;:9;:39;:::i;:::-;16229:46;14960:1322;-1:-1:-1;;;;;;;;;;;;;14960:1322:6:o;14658:296::-;14758:4;14778:9;14774:174;;;-1:-1:-1;14810:17:6;:24;14803:31;;14774:174;14902:26;;14932:5;;14874:24;14888:10;14874:11;:24;:::i;:::-;14873:55;;;;:::i;:::-;14872:65;;;;:::i;:::-;14865:72;;;;14154:498;14268:26;;;14237:28;14268:26;;;:13;:26;;;;;;:33;;;;14295:5;;;;14268:33;:::i;:::-;;;;;;;;;;;;;14237:64;;14407:239;14414:11;;:15;14407:239;;14481:11;;14445:28;;14476:4;;14481:15;;14495:1;;14481:15;:::i;:::-;14476:21;;;;;;;;:::i;:::-;;;;;;;;;;14445:52;;;;;;;;14476:21;;;;;;;14445:52;;-1:-1:-1;;;;;14445:52:6;;;;-1:-1:-1;;;;;;;;14445:52:6;;;;;;;;;;;;;;;;;;14476:21;14445:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14530:7;:18;;;-1:-1:-1;;;;;14511:48:6;;14560:11;14573:5;;14580:7;:13;;;14595:7;:15;;;14511:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14625:4;:10;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;14625:10:6;;;;;;;;;-1:-1:-1;;;;;;14625:10:6;;;;;;;;;;:::i;:::-;;;;;14431:215;14407:239;;2036:715:3;2117:13;2132:10;2144:18;2164:30;2214:14;:21;2239:2;2214:27;:57;;;;2269:2;2245:14;:21;:26;2214:57;2206:91;;;;-1:-1:-1;;;2206:91:3;;25773:2:25;2206:91:3;;;25755:21:25;25812:2;25792:18;;;25785:30;-1:-1:-1;;;25831:18:25;;;25824:51;25892:18;;2206:91:3;25571:345:25;2206:91:3;2366:1;2350:14;2346:22;2340:29;2330:39;;2417:2;2401:14;2397:23;2391:30;2382:39;;2448:6;:11;;2458:1;2448:11;:26;;;;2463:6;:11;;2473:1;2463:11;2448:26;2440:57;;;;-1:-1:-1;;;2440:57:3;;26123:2:25;2440:57:3;;;26105:21:25;26162:2;26142:18;;;26135:30;-1:-1:-1;;;26181:18:25;;;26174:48;26239:18;;2440:57:3;25921:342:25;2440:57:3;2523:1;2515:5;:9;2507:33;;;;-1:-1:-1;;;2507:33:3;;26470:2:25;2507:33:3;;;26452:21:25;26509:2;26489:18;;;26482:30;-1:-1:-1;;;26528:18:25;;;26521:41;26579:18;;2507:33:3;26268:335:25;2507:33:3;2555:6;:11;;2565:1;2555:11;2551:194;;;-1:-1:-1;;2652:2:3;2632:23;;2626:30;2717:2;2697:23;;2691:30;2551:194;2036:715;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;267:159:25;334:20;;394:6;383:18;;373:29;;363:57;;416:1;413;406:12;363:57;267:159;;;:::o;431:184::-;489:6;542:2;530:9;521:7;517:23;513:32;510:52;;;558:1;555;548:12;510:52;581:28;599:9;581:28;:::i;620:131::-;-1:-1:-1;;;;;695:31:25;;685:42;;675:70;;741:1;738;731:12;756:247;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;923:9;910:23;942:31;967:5;942:31;:::i;1201:347::-;1252:8;1262:6;1316:3;1309:4;1301:6;1297:17;1293:27;1283:55;;1334:1;1331;1324:12;1283:55;-1:-1:-1;1357:20:25;;-1:-1:-1;;;;;1389:30:25;;1386:50;;;1432:1;1429;1422:12;1386:50;1469:4;1461:6;1457:17;1445:29;;1521:3;1514:4;1505:6;1497;1493:19;1489:30;1486:39;1483:59;;;1538:1;1535;1528:12;1483:59;1201:347;;;;;:::o;1553:481::-;1631:6;1639;1647;1700:2;1688:9;1679:7;1675:23;1671:32;1668:52;;;1716:1;1713;1706:12;1668:52;1739:28;1757:9;1739:28;:::i;:::-;1729:38;;1818:2;1807:9;1803:18;1790:32;-1:-1:-1;;;;;1837:6:25;1834:30;1831:50;;;1877:1;1874;1867:12;1831:50;1916:58;1966:7;1957:6;1946:9;1942:22;1916:58;:::i;:::-;1553:481;;1993:8;;-1:-1:-1;1890:84:25;;-1:-1:-1;;;;1553:481:25:o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:718;2405:5;2458:3;2451:4;2443:6;2439:17;2435:27;2425:55;;2476:1;2473;2466:12;2425:55;2512:6;2499:20;-1:-1:-1;;;;;2575:2:25;2571;2568:10;2565:36;;;2581:18;;:::i;:::-;2656:2;2650:9;2624:2;2710:13;;-1:-1:-1;;2706:22:25;;;2730:2;2702:31;2698:40;2686:53;;;2754:18;;;2774:22;;;2751:46;2748:72;;;2800:18;;:::i;:::-;2840:10;2836:2;2829:22;2875:2;2867:6;2860:18;2921:3;2914:4;2909:2;2901:6;2897:15;2893:26;2890:35;2887:55;;;2938:1;2935;2928:12;2887:55;3002:2;2995:4;2987:6;2983:17;2976:4;2968:6;2964:17;2951:54;3049:1;3042:4;3037:2;3029:6;3025:15;3021:26;3014:37;3069:6;3060:15;;;;;;2363:718;;;;:::o;3086:460::-;3171:6;3179;3187;3240:2;3228:9;3219:7;3215:23;3211:32;3208:52;;;3256:1;3253;3246:12;3208:52;3279:28;3297:9;3279:28;:::i;:::-;3269:38;;3358:2;3347:9;3343:18;3330:32;-1:-1:-1;;;;;3377:6:25;3374:30;3371:50;;;3417:1;3414;3407:12;3371:50;3440:49;3481:7;3472:6;3461:9;3457:22;3440:49;:::i;:::-;3430:59;;;3536:2;3525:9;3521:18;3508:32;3498:42;;3086:460;;;;;:::o;3551:471::-;3592:3;3630:5;3624:12;3657:6;3652:3;3645:19;3682:1;3692:162;3706:6;3703:1;3700:13;3692:162;;;3768:4;3824:13;;;3820:22;;3814:29;3796:11;;;3792:20;;3785:59;3721:12;3692:162;;;3872:6;3869:1;3866:13;3863:87;;;3938:1;3931:4;3922:6;3917:3;3913:16;3909:27;3902:38;3863:87;-1:-1:-1;4004:2:25;3983:15;-1:-1:-1;;3979:29:25;3970:39;;;;4011:4;3966:50;;3551:471;-1:-1:-1;;3551:471:25:o;4027:408::-;-1:-1:-1;;;;;4228:32:25;;4210:51;;-1:-1:-1;;;;;4297:31:25;;4292:2;4277:18;;4270:59;4365:2;4360;4345:18;;4338:30;;;-1:-1:-1;;4385:44:25;;4410:18;;4402:6;4385:44;:::i;:::-;4377:52;4027:408;-1:-1:-1;;;;;4027:408:25:o;4440:248::-;4508:6;4516;4569:2;4557:9;4548:7;4544:23;4540:32;4537:52;;;4585:1;4582;4575:12;4537:52;-1:-1:-1;;4608:23:25;;;4678:2;4663:18;;;4650:32;;-1:-1:-1;4440:248:25:o;4693:217::-;4840:2;4829:9;4822:21;4803:4;4860:44;4900:2;4889:9;4885:18;4877:6;4860:44;:::i;4915:188::-;4983:20;;-1:-1:-1;;;;;5032:46:25;;5022:57;;5012:85;;5093:1;5090;5083:12;5108:171;5175:20;;-1:-1:-1;;;;;5224:30:25;;5214:41;;5204:69;;5269:1;5266;5259:12;5284:480;5377:6;5385;5393;5401;5409;5462:3;5450:9;5441:7;5437:23;5433:33;5430:53;;;5479:1;5476;5469:12;5430:53;5502:29;5521:9;5502:29;:::i;:::-;5492:39;;5550:38;5584:2;5573:9;5569:18;5550:38;:::i;:::-;5540:48;;5607:38;5641:2;5630:9;5626:18;5607:38;:::i;:::-;5597:48;;5664:37;5697:2;5686:9;5682:18;5664:37;:::i;:::-;5654:47;;5720:38;5753:3;5742:9;5738:19;5720:38;:::i;:::-;5710:48;;5284:480;;;;;;;;:::o;5769:917::-;5878:6;5886;5894;5902;5910;5963:3;5951:9;5942:7;5938:23;5934:33;5931:53;;;5980:1;5977;5970:12;5931:53;6003:28;6021:9;6003:28;:::i;:::-;5993:38;;6081:2;6070:9;6066:18;6053:32;6094:31;6119:5;6094:31;:::i;:::-;6144:5;-1:-1:-1;6200:2:25;6185:18;;6172:32;-1:-1:-1;;;;;6253:14:25;;;6250:34;;;6280:1;6277;6270:12;6250:34;6303:49;6344:7;6335:6;6324:9;6320:22;6303:49;:::i;:::-;6293:59;;6404:2;6393:9;6389:18;6376:32;6361:47;;6453:7;6446:15;6439:23;6430:7;6427:36;6417:64;;6477:1;6474;6467:12;6417:64;6500:7;;-1:-1:-1;6560:3:25;6545:19;;6532:33;;6577:16;;;6574:36;;;6606:1;6603;6596:12;6574:36;;6629:51;6672:7;6661:8;6650:9;6646:24;6629:51;:::i;:::-;6619:61;;;5769:917;;;;;;;;:::o;6899:392::-;6975:6;6983;7036:2;7024:9;7015:7;7011:23;7007:32;7004:52;;;7052:1;7049;7042:12;7004:52;7075:28;7093:9;7075:28;:::i;:::-;7065:38;;7154:2;7143:9;7139:18;7126:32;-1:-1:-1;;;;;7173:6:25;7170:30;7167:50;;;7213:1;7210;7203:12;7167:50;7236:49;7277:7;7268:6;7257:9;7253:22;7236:49;:::i;:::-;7226:59;;;6899:392;;;;;:::o;7669:319::-;7736:6;7744;7797:2;7785:9;7776:7;7772:23;7768:32;7765:52;;;7813:1;7810;7803:12;7765:52;7836:28;7854:9;7836:28;:::i;:::-;7826:38;;7914:2;7903:9;7899:18;7886:32;7927:31;7952:5;7927:31;:::i;:::-;7977:5;7967:15;;;7669:319;;;;;:::o;8979:789::-;9077:6;9085;9093;9101;9109;9162:2;9150:9;9141:7;9137:23;9133:32;9130:52;;;9178:1;9175;9168:12;9130:52;9201:28;9219:9;9201:28;:::i;:::-;9191:38;;9280:2;9269:9;9265:18;9252:32;-1:-1:-1;;;;;9344:2:25;9336:6;9333:14;9330:34;;;9360:1;9357;9350:12;9330:34;9399:58;9449:7;9440:6;9429:9;9425:22;9399:58;:::i;:::-;9476:8;;-1:-1:-1;9373:84:25;-1:-1:-1;9564:2:25;9549:18;;9536:32;;-1:-1:-1;9580:16:25;;;9577:36;;;9609:1;9606;9599:12;9577:36;;9648:60;9700:7;9689:8;9678:9;9674:24;9648:60;:::i;:::-;8979:789;;;;-1:-1:-1;8979:789:25;;-1:-1:-1;9727:8:25;;9622:86;8979:789;-1:-1:-1;;;8979:789:25:o;9773:180::-;9832:6;9885:2;9873:9;9864:7;9860:23;9856:32;9853:52;;;9901:1;9898;9891:12;9853:52;-1:-1:-1;9924:23:25;;9773:180;-1:-1:-1;9773:180:25:o;9958:388::-;10026:6;10034;10087:2;10075:9;10066:7;10062:23;10058:32;10055:52;;;10103:1;10100;10093:12;10055:52;10142:9;10129:23;10161:31;10186:5;10161:31;:::i;10351:1067::-;10475:6;10483;10491;10499;10507;10515;10523;10531;10584:3;10572:9;10563:7;10559:23;10555:33;10552:53;;;10601:1;10598;10591:12;10552:53;10624:28;10642:9;10624:28;:::i;:::-;10614:38;;10703:2;10692:9;10688:18;10675:32;-1:-1:-1;;;;;10767:2:25;10759:6;10756:14;10753:34;;;10783:1;10780;10773:12;10753:34;10822:58;10872:7;10863:6;10852:9;10848:22;10822:58;:::i;:::-;10899:8;;-1:-1:-1;10796:84:25;-1:-1:-1;10984:2:25;10969:18;;10956:32;;-1:-1:-1;10997:31:25;10956:32;10997:31;:::i;:::-;11047:5;11037:15;;11071:37;11104:2;11093:9;11089:18;11071:37;:::i;:::-;11061:47;;11155:3;11144:9;11140:19;11127:33;11117:43;;11213:3;11202:9;11198:19;11185:33;11169:49;;11243:2;11233:8;11230:16;11227:36;;;11259:1;11256;11249:12;11227:36;;11298:60;11350:7;11339:8;11328:9;11324:24;11298:60;:::i;:::-;10351:1067;;;;-1:-1:-1;10351:1067:25;;-1:-1:-1;10351:1067:25;;;;;;11377:8;-1:-1:-1;;;10351:1067:25:o;11423:1185::-;11563:6;11571;11579;11587;11595;11603;11611;11664:3;11652:9;11643:7;11639:23;11635:33;11632:53;;;11681:1;11678;11671:12;11632:53;11704:28;11722:9;11704:28;:::i;:::-;11694:38;;11783:2;11772:9;11768:18;11755:32;-1:-1:-1;;;;;11847:2:25;11839:6;11836:14;11833:34;;;11863:1;11860;11853:12;11833:34;11886:49;11927:7;11918:6;11907:9;11903:22;11886:49;:::i;:::-;11876:59;;11988:2;11977:9;11973:18;11960:32;11944:48;;12017:2;12007:8;12004:16;12001:36;;;12033:1;12030;12023:12;12001:36;12072:60;12124:7;12113:8;12102:9;12098:24;12072:60;:::i;:::-;12151:8;;-1:-1:-1;12046:86:25;-1:-1:-1;12236:2:25;12221:18;;12208:32;;-1:-1:-1;12249:31:25;12208:32;12249:31;:::i;:::-;12299:5;;-1:-1:-1;12356:3:25;12341:19;;12328:33;;12370;12328;12370;:::i;:::-;12422:7;;-1:-1:-1;12482:3:25;12467:19;;12454:33;;12499:16;;;12496:36;;;12528:1;12525;12518:12;12496:36;;12551:51;12594:7;12583:8;12572:9;12568:24;12551:51;:::i;:::-;12541:61;;;11423:1185;;;;;;;;;;:::o;12613:533::-;12706:6;12714;12722;12730;12783:3;12771:9;12762:7;12758:23;12754:33;12751:53;;;12800:1;12797;12790:12;12751:53;12823:28;12841:9;12823:28;:::i;:::-;12813:38;;12870:37;12903:2;12892:9;12888:18;12870:37;:::i;:::-;12860:47;;12954:2;12943:9;12939:18;12926:32;12916:42;;13009:2;12998:9;12994:18;12981:32;-1:-1:-1;;;;;13028:6:25;13025:30;13022:50;;;13068:1;13065;13058:12;13022:50;13091:49;13132:7;13123:6;13112:9;13108:22;13091:49;:::i;:::-;13081:59;;;12613:533;;;;;;;:::o;13151:460::-;13235:6;13243;13251;13259;13312:3;13300:9;13291:7;13287:23;13283:33;13280:53;;;13329:1;13326;13319:12;13280:53;13352:28;13370:9;13352:28;:::i;:::-;13342:38;;13399:37;13432:2;13421:9;13417:18;13399:37;:::i;:::-;13389:47;;13486:2;13475:9;13471:18;13458:32;13499:31;13524:5;13499:31;:::i;:::-;13151:460;;;;-1:-1:-1;13549:5:25;;13601:2;13586:18;13573:32;;-1:-1:-1;;13151:460:25:o;13616:320::-;13684:6;13737:2;13725:9;13716:7;13712:23;13708:32;13705:52;;;13753:1;13750;13743:12;13705:52;13793:9;13780:23;-1:-1:-1;;;;;13818:6:25;13815:30;13812:50;;;13858:1;13855;13848:12;13812:50;13881:49;13922:7;13913:6;13902:9;13898:22;13881:49;:::i;:::-;13871:59;13616:320;-1:-1:-1;;;;13616:320:25:o;13941:271::-;14124:6;14116;14111:3;14098:33;14080:3;14150:16;;14175:13;;;14150:16;13941:271;-1:-1:-1;13941:271:25:o;14217:380::-;14296:1;14292:12;;;;14339;;;14360:61;;14414:4;14406:6;14402:17;14392:27;;14360:61;14467:2;14459:6;14456:14;14436:18;14433:38;14430:161;;;14513:10;14508:3;14504:20;14501:1;14494:31;14548:4;14545:1;14538:15;14576:4;14573:1;14566:15;14430:161;;14217:380;;;:::o;14602:127::-;14663:10;14658:3;14654:20;14651:1;14644:31;14694:4;14691:1;14684:15;14718:4;14715:1;14708:15;14734:128;14774:3;14805:1;14801:6;14798:1;14795:13;14792:39;;;14811:18;;:::i;:::-;-1:-1:-1;14847:9:25;;14734:128::o;15586:266::-;15674:6;15669:3;15662:19;15726:6;15719:5;15712:4;15707:3;15703:14;15690:43;-1:-1:-1;15778:1:25;15753:16;;;15771:4;15749:27;;;15742:38;;;;15834:2;15813:15;;;-1:-1:-1;;15809:29:25;15800:39;;;15796:50;;15586:266::o;15857:326::-;16052:6;16044;16040:19;16029:9;16022:38;16096:2;16091;16080:9;16076:18;16069:30;16003:4;16116:61;16173:2;16162:9;16158:18;16150:6;16142;16116:61;:::i;16547:609::-;16824:6;16816;16812:19;16801:9;16794:38;16868:3;16863:2;16852:9;16848:18;16841:31;16775:4;16895:62;16952:3;16941:9;16937:19;16929:6;16921;16895:62;:::i;:::-;-1:-1:-1;;;;;16997:6:25;16993:31;16988:2;16977:9;16973:18;16966:59;17073:9;17065:6;17061:22;17056:2;17045:9;17041:18;17034:50;17101:49;17143:6;17135;17127;17101:49;:::i;:::-;17093:57;16547:609;-1:-1:-1;;;;;;;;;16547:609:25:o;17161:519::-;17410:6;17402;17398:19;17387:9;17380:38;17454:3;17449:2;17438:9;17434:18;17427:31;17361:4;17475:62;17532:3;17521:9;17517:19;17509:6;17501;17475:62;:::i;:::-;-1:-1:-1;;;;;17573:31:25;;;;17568:2;17553:18;;17546:59;-1:-1:-1;;;;;;17641:32:25;;;;17636:2;17621:18;;;17614:60;17467:70;17161:519;-1:-1:-1;;;17161:519:25:o;18090:209::-;18128:3;-1:-1:-1;;;;;18209:2:25;18202:5;18198:14;18236:2;18227:7;18224:15;18221:41;;;18242:18;;:::i;:::-;18291:1;18278:15;;18090:209;-1:-1:-1;;;18090:209:25:o;18659:125::-;18699:4;18727:1;18724;18721:8;18718:34;;;18732:18;;:::i;:::-;-1:-1:-1;18769:9:25;;18659:125::o;18789:127::-;18850:10;18845:3;18841:20;18838:1;18831:31;18881:4;18878:1;18871:15;18905:4;18902:1;18895:15;18921:135;18960:3;-1:-1:-1;;18981:17:25;;18978:43;;;19001:18;;:::i;:::-;-1:-1:-1;19048:1:25;19037:13;;18921:135::o;19061:868::-;19412:6;19404;19400:19;19389:9;19382:38;19456:3;19451:2;19440:9;19436:18;19429:31;19363:4;19483:62;19540:3;19529:9;19525:19;19517:6;19509;19483:62;:::i;:::-;-1:-1:-1;;;;;19581:32:25;;19576:2;19561:18;;19554:60;-1:-1:-1;;;;;19650:31:25;;19645:2;19630:18;;19623:59;19719:22;;;19713:3;19698:19;;19691:51;19765:49;19723:6;19799;19791;19765:49;:::i;:::-;19751:63;;19863:9;19855:6;19851:22;19845:3;19834:9;19830:19;19823:51;19891:32;19916:6;19908;19891:32;:::i;:::-;19883:40;19061:868;-1:-1:-1;;;;;;;;;;;19061:868:25:o;22491:725::-;22804:6;22796;22792:19;22781:9;22774:38;22848:3;22843:2;22832:9;22828:18;22821:31;22755:4;22875:45;22915:3;22904:9;22900:19;22892:6;22875:45;:::i;:::-;-1:-1:-1;;;;;22956:32:25;;22951:2;22936:18;;22929:60;-1:-1:-1;;;;;23025:31:25;;23020:2;23005:18;;22998:59;23088:3;23073:19;;23066:35;;;23138:22;;;22976:3;23117:19;;23110:51;23178:32;23142:6;23195;23178:32;:::i;23909:168::-;23949:7;24015:1;24011;24007:6;24003:14;24000:1;23997:21;23992:1;23985:9;23978:17;23974:45;23971:71;;;24022:18;;:::i;:::-;-1:-1:-1;24062:9:25;;23909:168::o;24082:127::-;24143:10;24138:3;24134:20;24131:1;24124:31;24174:4;24171:1;24164:15;24198:4;24195:1;24188:15;24214:120;24254:1;24280;24270:35;;24285:18;;:::i;:::-;-1:-1:-1;24319:9:25;;24214:120::o;24339:287::-;24379:7;-1:-1:-1;;;;;24472:2:25;24469:1;24465:10;24502:2;24499:1;24495:10;24558:3;24554:2;24550:12;24545:3;24542:21;24535:3;24528:11;24521:19;24517:47;24514:73;;;24567:18;;:::i;:::-;24607:13;;24339:287;-1:-1:-1;;;;24339:287:25:o;24631:216::-;24671:1;-1:-1:-1;;;;;24758:2:25;24755:1;24751:10;24780:3;24770:37;;24787:18;;:::i;:::-;24825:10;;24821:20;;;;;24631:216;-1:-1:-1;;24631:216:25:o;24852:582::-;25119:6;25111;25107:19;25096:9;25089:38;25163:3;25158:2;25147:9;25143:18;25136:31;25070:4;25190:62;25247:3;25236:9;25232:19;25224:6;25216;25190:62;:::i;:::-;-1:-1:-1;;;;;25292:6:25;25288:31;25283:2;25272:9;25268:18;25261:59;25368:9;25360:6;25356:22;25351:2;25340:9;25336:18;25329:50;25396:32;25421:6;25413;25396:32;:::i;:::-;25388:40;24852:582;-1:-1:-1;;;;;;;;24852:582:25:o;25439:127::-;25500:10;25495:3;25491:20;25488:1;25481:31;25531:4;25528:1;25521:15;25555:4;25552:1;25545:15"},"gasEstimates":{"creation":{"codeDepositCost":"2369200","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24445","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2353","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"2842","getReceiveLibraryAddress(address)":"414","getReceiveVersion(address)":"469","getSendLibraryAddress(address)":"437","getSendVersion(address)":"449","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2369","isSendingPayload()":"2357","lzEndpointLookup(address)":"2688","mockChainId()":"2446","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2389","oracleFee()":"2383","outboundNonce(uint16,address)":"2831","protocolFeeConfig()":"4464","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"4807","retryPayload(uint16,bytes,bytes)":"infinite","send(uint16,bytes,bytes,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setDefaultAdapterParams(bytes)":"infinite","setDestLzEndpoint(address,address)":"infinite","setOracleFee(uint256)":"22357","setProtocolFee(uint256,uint256)":"44537","setReceiveVersion(uint16)":"326","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"349","storedPayload(uint16,bytes)":"infinite"}},"methodIdentifiers":{"blockNextMsg()":"d23104f1","defaultAdapterParams()":"272bd384","estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getLengthOfQueue(uint16,bytes)":"7f6df8e6","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","inboundNonce(uint16,bytes)":"9924d33b","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","lzEndpointLookup(address)":"c81b383a","mockChainId()":"db14f305","msgsToDeliver(uint16,bytes,uint256)":"12a9ee6b","nextMsgBlocked()":"3e0dd83e","oracleFee()":"f9cd3ceb","outboundNonce(uint16,address)":"b2086499","protocolFeeConfig()":"07d3277f","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","relayerFeeConfig()":"907c5e7e","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setDefaultAdapterParams(bytes)":"fbba623b","setDestLzEndpoint(address,address)":"c08f15a1","setOracleFee(uint256)":"b6d9ef60","setProtocolFee(uint256,uint256)":"240de277","setReceiveVersion(uint16)":"10ddb137","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"2c365e25","setSendVersion(uint16)":"07e0db17","storedPayload(uint16,bytes)":"76a386dc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"}],\"name\":\"PayloadCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PayloadStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"UaForceResumeReceive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"ValueTransferFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockNextMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdapterParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getLengthOfQueue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lzEndpointLookup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"msgsToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextMsgBlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeBP\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerFeeConfig\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasPerByte\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"setDefaultAdapterParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpointAddr\",\"type\":\"address\"}],\"name\":\"setDestLzEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_oracleFee\",\"type\":\"uint256\"}],\"name\":\"setOracleFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nativeBP\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"_baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_gasPerByte\",\"type\":\"uint64\"}],\"name\":\"setRelayerPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"storedPayload\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"payloadLength\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/LZEndpointMock.sol\":\"LZMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n uint8 internal constant _NOT_ENTERED = 1;\\n uint8 internal constant _ENTERED = 2;\\n\\n mapping(address => address) public lzEndpointLookup;\\n\\n uint16 public mockChainId;\\n bool public nextMsgBlocked;\\n\\n // fee config\\n RelayerFeeConfig public relayerFeeConfig;\\n ProtocolFeeConfig public protocolFeeConfig;\\n uint public oracleFee;\\n bytes public defaultAdapterParams;\\n\\n // path = remote addrss + local address\\n // inboundNonce = [srcChainId][path].\\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n //todo: this is a hack\\n // outboundNonce = [dstChainId][srcAddress]\\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n // // outboundNonce = [dstChainId][path].\\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n // storedPayload = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n // msgToDeliver = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n // reentrancy guard\\n uint8 internal _send_entered_state = 1;\\n uint8 internal _receive_entered_state = 1;\\n\\n struct ProtocolFeeConfig {\\n uint zroFee;\\n uint nativeBP;\\n }\\n\\n struct RelayerFeeConfig {\\n uint128 dstPriceRatio; // 10^10\\n uint128 dstGasPriceInWei;\\n uint128 dstNativeAmtCap;\\n uint64 baseGas;\\n uint64 gasPerByte;\\n }\\n\\n struct StoredPayload {\\n uint64 payloadLength;\\n address dstAddress;\\n bytes32 payloadHash;\\n }\\n\\n struct QueuedPayload {\\n address dstAddress;\\n uint64 nonce;\\n bytes payload;\\n }\\n\\n modifier sendNonReentrant() {\\n require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n _send_entered_state = _ENTERED;\\n _;\\n _send_entered_state = _NOT_ENTERED;\\n }\\n\\n modifier receiveNonReentrant() {\\n require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n _receive_entered_state = _ENTERED;\\n _;\\n _receive_entered_state = _NOT_ENTERED;\\n }\\n\\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n constructor(uint16 _chainId) {\\n mockChainId = _chainId;\\n\\n // init config\\n relayerFeeConfig = RelayerFeeConfig({\\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n dstGasPriceInWei: 1e10,\\n dstNativeAmtCap: 1e19,\\n baseGas: 100,\\n gasPerByte: 1\\n });\\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n oracleFee = 1e16;\\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n }\\n\\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\\n require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n address dstAddr;\\n assembly {\\n dstAddr := mload(add(_path, 20))\\n }\\n\\n address lzEndpoint = lzEndpointLookup[dstAddr];\\n require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n // not handle zro token\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n // refund if they send too much\\n uint amount = msg.value - nativeFee;\\n if (amount > 0) {\\n (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n require(success, \\\"LayerZeroMock: failed to refund\\\");\\n }\\n\\n // Mock the process of receiving msg on dst chain\\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n if (dstNativeAmt > 0) {\\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n if (!success) {\\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n }\\n }\\n\\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n bytes memory payload = _payload;\\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n }\\n\\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n // assert and increment the nonce. no message shuffling\\n require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n if (sp.payloadHash != bytes32(0)) {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n // shift all the msgs over so we can treat this like a fifo via array.pop()\\n if (msgs.length > 0) {\\n // extend the array\\n msgs.push(newMsg);\\n\\n // shift all the indexes up for pop()\\n for (uint i = 0; i < msgs.length - 1; i++) {\\n msgs[i + 1] = msgs[i];\\n }\\n\\n // put the newMsg at the bottom of the stack\\n msgs[0] = newMsg;\\n } else {\\n msgs.push(newMsg);\\n }\\n } else if (nextMsgBlocked) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n } else {\\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n }\\n }\\n }\\n\\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n return inboundNonce[_chainID][_path];\\n }\\n\\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n return outboundNonce[_chainID][_srcAddress];\\n }\\n\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n // Relayer Fee\\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n // LayerZero Fee\\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n // return the sum of fees\\n nativeFee = nativeFee + relayerFee + oracleFee;\\n }\\n\\n function getChainId() external view override returns (uint16) {\\n return mockChainId;\\n }\\n\\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n address dstAddress = sp.dstAddress;\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n }\\n\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n return sp.payloadHash != bytes32(0);\\n }\\n\\n function getSendLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function getReceiveLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function isSendingPayload() external view override returns (bool) {\\n return _send_entered_state == _ENTERED;\\n }\\n\\n function isReceivingPayload() external view override returns (bool) {\\n return _receive_entered_state == _ENTERED;\\n }\\n\\n function getConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n address, /*_ua*/\\n uint /*_configType*/\\n ) external pure override returns (bytes memory) {\\n return \\\"\\\";\\n }\\n\\n function getSendVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function getReceiveVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function setConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n uint, /*_configType*/\\n bytes memory /*_config*/\\n ) external override {}\\n\\n function setSendVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function setReceiveVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n // revert if no messages are cached. safeguard malicious UA behaviour\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n emit UaForceResumeReceive(_srcChainId, _path);\\n\\n // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n _clearMsgQue(_srcChainId, _path);\\n }\\n\\n // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n return msgsToDeliver[_srcChainId][_srcAddress].length;\\n }\\n\\n // used to simulate messages received get stored as a payload\\n function blockNextMsg() external {\\n nextMsgBlocked = true;\\n }\\n\\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n lzEndpointLookup[destAddr] = lzEndpointAddr;\\n }\\n\\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n relayerFeeConfig.baseGas = _baseGas;\\n relayerFeeConfig.gasPerByte = _gasPerByte;\\n }\\n\\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n protocolFeeConfig.zroFee = _zroFee;\\n protocolFeeConfig.nativeBP = _nativeBP;\\n }\\n\\n function setOracleFee(uint _oracleFee) external {\\n oracleFee = _oracleFee;\\n }\\n\\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n defaultAdapterParams = _adapterParams;\\n }\\n\\n // --------------------- Internal Functions ---------------------\\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n while (msgs.length > 0) {\\n QueuedPayload memory payload = msgs[msgs.length - 1];\\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n msgs.pop();\\n }\\n }\\n\\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\\n if (_payInZro) {\\n return protocolFeeConfig.zroFee;\\n } else {\\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n }\\n }\\n\\n function _getRelayerFee(\\n uint16, /* _dstChainId */\\n uint16, /* _outboundProofType */\\n address, /* _userApplication */\\n uint _payloadSize,\\n bytes memory _adapterParams\\n ) internal view returns (uint) {\\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n if (txType == 2) {\\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n totalRemoteToken += dstNativeAmt;\\n }\\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n totalRemoteToken += remoteGasTotal;\\n\\n // tokenConversionRate = dstPrice / localPrice\\n // basePrice = totalRemoteToken * tokenConversionRate\\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n return basePrice + _payloadSize * pricePerByte;\\n }\\n}\\n\",\"keccak256\":\"0xed3c937bc98dda9c5c4e05379b87629540e8fa628d0e62c4e3d01e25b47bbedf\",\"license\":\"BUSL-1.1\"},\"contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZMock is LZEndpointMock {\\n constructor(uint16 _chainId) LZEndpointMock(_chainId) {}\\n}\\n\",\"keccak256\":\"0x5b8e06ee92de392b6c452eadba78aa10b02ea4f0b57469119fc007a0b0b449d1\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1154,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"lzEndpointLookup","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"},{"astId":1156,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"mockChainId","offset":0,"slot":"1","type":"t_uint16"},{"astId":1158,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nextMsgBlocked","offset":2,"slot":"1","type":"t_bool"},{"astId":1161,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"relayerFeeConfig","offset":0,"slot":"2","type":"t_struct(RelayerFeeConfig)1217_storage"},{"astId":1164,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"protocolFeeConfig","offset":0,"slot":"4","type":"t_struct(ProtocolFeeConfig)1206_storage"},{"astId":1166,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"oracleFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":1168,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"defaultAdapterParams","offset":0,"slot":"7","type":"t_bytes_storage"},{"astId":1174,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"inboundNonce","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))"},{"astId":1180,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"outboundNonce","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_mapping(t_address,t_uint64))"},{"astId":1187,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"storedPayload","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))"},{"astId":1195,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"msgsToDeliver","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))"},{"astId":1198,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"_send_entered_state","offset":0,"slot":"12","type":"t_uint8"},{"astId":1201,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"_receive_entered_state","offset":1,"slot":"12","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage":{"base":"t_struct(QueuedPayload)1231_storage","encoding":"dynamic_array","label":"struct LZEndpointMock.QueuedPayload[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_uint64)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])","numberOfBytes":"32","value":"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage"},"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.StoredPayload)","numberOfBytes":"32","value":"t_struct(StoredPayload)1224_storage"},"t_mapping(t_bytes_memory_ptr,t_uint64)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_uint16,t_mapping(t_address,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => uint64))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint64)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => uint64))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_uint64)"},"t_struct(ProtocolFeeConfig)1206_storage":{"encoding":"inplace","label":"struct LZEndpointMock.ProtocolFeeConfig","members":[{"astId":1203,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"zroFee","offset":0,"slot":"0","type":"t_uint256"},{"astId":1205,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nativeBP","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_struct(QueuedPayload)1231_storage":{"encoding":"inplace","label":"struct LZEndpointMock.QueuedPayload","members":[{"astId":1226,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstAddress","offset":0,"slot":"0","type":"t_address"},{"astId":1228,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nonce","offset":20,"slot":"0","type":"t_uint64"},{"astId":1230,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"numberOfBytes":"64"},"t_struct(RelayerFeeConfig)1217_storage":{"encoding":"inplace","label":"struct LZEndpointMock.RelayerFeeConfig","members":[{"astId":1208,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstPriceRatio","offset":0,"slot":"0","type":"t_uint128"},{"astId":1210,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstGasPriceInWei","offset":16,"slot":"0","type":"t_uint128"},{"astId":1212,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstNativeAmtCap","offset":0,"slot":"1","type":"t_uint128"},{"astId":1214,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"baseGas","offset":16,"slot":"1","type":"t_uint64"},{"astId":1216,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"gasPerByte","offset":24,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_struct(StoredPayload)1224_storage":{"encoding":"inplace","label":"struct LZEndpointMock.StoredPayload","members":[{"astId":1219,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payloadLength","offset":0,"slot":"0","type":"t_uint64"},{"astId":1221,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstAddress","offset":8,"slot":"0","type":"t_address"},{"astId":1223,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payloadHash","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/MockToken.sol":{"MockToken":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"@_4630":{"entryPoint":null,"id":4630,"parameterSlots":2,"returnSlots":0},"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":140,"id":3400,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":526,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":709,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":815,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":854,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":504,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2757:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1777:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1805:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1787:6:25"},"nodeType":"YulFunctionCall","src":"1787:21:25"},"nodeType":"YulExpressionStatement","src":"1787:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1828:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1824:3:25"},"nodeType":"YulFunctionCall","src":"1824:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1817:6:25"},"nodeType":"YulFunctionCall","src":"1817:30:25"},"nodeType":"YulExpressionStatement","src":"1817:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1867:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1878:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1863:3:25"},"nodeType":"YulFunctionCall","src":"1863:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"1883:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1856:6:25"},"nodeType":"YulFunctionCall","src":"1856:61:25"},"nodeType":"YulExpressionStatement","src":"1856:61:25"},{"nodeType":"YulAssignment","src":"1926:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1938:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1949:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1934:3:25"},"nodeType":"YulFunctionCall","src":"1934:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1926:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1754:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1768:4:25","type":""}],"src":"1603:355:25"},{"body":{"nodeType":"YulBlock","src":"2011:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2046:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2067:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2079:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2070:3:25"},"nodeType":"YulFunctionCall","src":"2070:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2060:6:25"},"nodeType":"YulFunctionCall","src":"2060:31:25"},"nodeType":"YulExpressionStatement","src":"2060:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2111:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2114:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2104:6:25"},"nodeType":"YulFunctionCall","src":"2104:15:25"},"nodeType":"YulExpressionStatement","src":"2104:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2139:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2142:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2132:6:25"},"nodeType":"YulFunctionCall","src":"2132:15:25"},"nodeType":"YulExpressionStatement","src":"2132:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2027:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2034:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2030:3:25"},"nodeType":"YulFunctionCall","src":"2030:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2024:2:25"},"nodeType":"YulFunctionCall","src":"2024:13:25"},"nodeType":"YulIf","src":"2021:136:25"},{"nodeType":"YulAssignment","src":"2166:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2177:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"2180:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2173:3:25"},"nodeType":"YulFunctionCall","src":"2173:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2166:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1994:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"1997:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2003:3:25","type":""}],"src":"1963:225:25"},{"body":{"nodeType":"YulBlock","src":"2294:76:25","statements":[{"nodeType":"YulAssignment","src":"2304:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2316:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2327:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2312:3:25"},"nodeType":"YulFunctionCall","src":"2312:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2304:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2346:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2357:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2339:6:25"},"nodeType":"YulFunctionCall","src":"2339:25:25"},"nodeType":"YulExpressionStatement","src":"2339:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2263:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2274:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2285:4:25","type":""}],"src":"2193:177:25"},{"body":{"nodeType":"YulBlock","src":"2430:325:25","statements":[{"nodeType":"YulAssignment","src":"2440:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2454:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2457:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2450:3:25"},"nodeType":"YulFunctionCall","src":"2450:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2440:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2471:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2501:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2507:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2497:3:25"},"nodeType":"YulFunctionCall","src":"2497:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2475:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2548:31:25","statements":[{"nodeType":"YulAssignment","src":"2550:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2564:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2572:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2560:3:25"},"nodeType":"YulFunctionCall","src":"2560:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2550:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2528:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2521:6:25"},"nodeType":"YulFunctionCall","src":"2521:26:25"},"nodeType":"YulIf","src":"2518:61:25"},{"body":{"nodeType":"YulBlock","src":"2638:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2659:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2666:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2671:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2662:3:25"},"nodeType":"YulFunctionCall","src":"2662:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2652:6:25"},"nodeType":"YulFunctionCall","src":"2652:31:25"},"nodeType":"YulExpressionStatement","src":"2652:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2703:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2706:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2696:6:25"},"nodeType":"YulFunctionCall","src":"2696:15:25"},"nodeType":"YulExpressionStatement","src":"2696:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2731:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2734:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2724:6:25"},"nodeType":"YulFunctionCall","src":"2724:15:25"},"nodeType":"YulExpressionStatement","src":"2724:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2594:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2617:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2625:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2614:2:25"},"nodeType":"YulFunctionCall","src":"2614:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2591:2:25"},"nodeType":"YulFunctionCall","src":"2591:38:25"},"nodeType":"YulIf","src":"2588:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2410:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2419:6:25","type":""}],"src":"2375:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000ced38038062000ced8339810160408190526200003491620002c5565b8151829082906200004d90600390602085019062000152565b5080516200006390600490602084019062000152565b50505062000084336b033b2e3c9fd0803ce80000006200008c60201b60201c565b505062000393565b6001600160a01b038216620000e75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000fb91906200032f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620001609062000356565b90600052602060002090601f016020900481019282620001845760008555620001cf565b82601f106200019f57805160ff1916838001178555620001cf565b82800160010185558215620001cf579182015b82811115620001cf578251825591602001919060010190620001b2565b50620001dd929150620001e1565b5090565b5b80821115620001dd5760008155600101620001e2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022057600080fd5b81516001600160401b03808211156200023d576200023d620001f8565b604051601f8301601f19908116603f01168101908282118183101715620002685762000268620001f8565b816040528381526020925086838588010111156200028557600080fd5b600091505b83821015620002a957858201830151818301840152908201906200028a565b83821115620002bb5760008385830101525b9695505050505050565b60008060408385031215620002d957600080fd5b82516001600160401b0380821115620002f157600080fd5b620002ff868387016200020e565b935060208501519150808211156200031657600080fd5b5062000325858286016200020e565b9150509250929050565b600082198211156200035157634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200036b57607f821691505b602082108114156200038d57634e487b7160e01b600052602260045260246000fd5b50919050565b61094a80620003a36000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220d350a2881b88d96973635c8ba61f870672c14e6174c25fb0f313da0f13e2dad564736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xCED CODESIZE SUB DUP1 PUSH3 0xCED DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x2C5 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH3 0x4D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x152 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x63 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x152 JUMP JUMPDEST POP POP POP PUSH3 0x84 CALLER PUSH12 0x33B2E3C9FD0803CE8000000 PUSH3 0x8C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH3 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0xE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0xFB SWAP2 SWAP1 PUSH3 0x32F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x160 SWAP1 PUSH3 0x356 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x184 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1CF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x19F JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1CF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1CF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1CF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B2 JUMP JUMPDEST POP PUSH3 0x1DD SWAP3 SWAP2 POP PUSH3 0x1E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DD JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x23D JUMPI PUSH3 0x23D PUSH3 0x1F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x268 JUMPI PUSH3 0x268 PUSH3 0x1F8 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x2A9 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x28A JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x2BB JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x2D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2FF DUP7 DUP4 DUP8 ADD PUSH3 0x20E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x325 DUP6 DUP3 DUP7 ADD PUSH3 0x20E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x351 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x36B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x38D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94A DUP1 PUSH3 0x3A3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 POP LOG2 DUP9 SHL DUP9 0xD9 PUSH10 0x73635C8BA61F870672C1 0x4E PUSH2 0x74C2 0x5F 0xB0 RETURN SGT 0xDA 0xF SGT 0xE2 0xDA 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"133:332:23:-:0;;;189:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13:10;;251:5:23;;258:7;;2042:13:10;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;277:41:23::1;283:10;295:22;277:5;;;:41;;:::i;:::-;189:162:::0;;133:332;;8567:535:10;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;1805:2:25;8642:65:10;;;1787:21:25;1844:2;1824:18;;;1817:30;1883:33;1863:18;;;1856:61;1934:18;;8642:65:10;;;;;;;;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;2339:25:25;;;8999:37:10;;2312:18:25;8999:37:10;;;;;;;8567:535;;:::o;133:332:23:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;133:332:23;;;-1:-1:-1;133:332:23;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1963:225::-;2003:3;2034:1;2030:6;2027:1;2024:13;2021:136;;;2079:10;2074:3;2070:20;2067:1;2060:31;2114:4;2111:1;2104:15;2142:4;2139:1;2132:15;2021:136;-1:-1:-1;2173:9:25;;1963:225::o;2375:380::-;2454:1;2450:12;;;;2497;;;2518:61;;2572:4;2564:6;2560:17;2550:27;;2518:61;2625:2;2617:6;2614:14;2594:18;2591:38;2588:161;;;2671:10;2666:3;2662:20;2659:1;2652:31;2706:4;2703:1;2696:15;2734:4;2731:1;2724:15;2588:161;;2375:380;;;:::o;:::-;133:332:23;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":902,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":1736,"id":3400,"parameterSlots":2,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1194,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1316,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":859,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":594,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":717,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":654,"id":3225,"parameterSlots":2,"returnSlots":1},"@mint_4643":{"entryPoint":688,"id":4643,"parameterSlots":2,"returnSlots":0},"@name_3051":{"entryPoint":448,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":702,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":618,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":845,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2012,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2176,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2082,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2040,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1927,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2286,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2227,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6166:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"},{"body":{"nodeType":"YulBlock","src":"5983:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6011:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:25"},"nodeType":"YulFunctionCall","src":"5993:21:25"},"nodeType":"YulExpressionStatement","src":"5993:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6034:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6045:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6030:3:25"},"nodeType":"YulFunctionCall","src":"6030:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6050:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6023:6:25"},"nodeType":"YulFunctionCall","src":"6023:30:25"},"nodeType":"YulExpressionStatement","src":"6023:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6069:3:25"},"nodeType":"YulFunctionCall","src":"6069:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"6089:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6062:6:25"},"nodeType":"YulFunctionCall","src":"6062:61:25"},"nodeType":"YulExpressionStatement","src":"6062:61:25"},{"nodeType":"YulAssignment","src":"6132:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6155:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6140:3:25"},"nodeType":"YulFunctionCall","src":"6140:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6132:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5960:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5974:4:25","type":""}],"src":"5809:355:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220d350a2881b88d96973635c8ba61f870672c14e6174c25fb0f313da0f13e2dad564736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 POP LOG2 DUP9 SHL DUP9 0xD9 PUSH10 0x73635C8BA61F870672C1 0x4E PUSH2 0x74C2 0x5F 0xB0 RETURN SGT 0xDA 0xF SGT 0xE2 0xDA 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"133:332:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:10;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;379:84:23:-;;;;;;:::i;:::-;;:::i;:::-;;3406:125:10;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;379:84:23:-;437:19;443:3;448:7;437:5;:19::i;:::-;379:84;;:::o;2365:102:10:-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;8567:535;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;6011:2:25;8642:65:10;;;5993:21:25;6050:2;6030:18;;;6023:30;6089:33;6069:18;;;6062:61;6140:18;;8642:65:10;5809:355:25;8642:65:10;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1391:25:25;;;8999:37:10;;1364:18:25;8999:37:10;;;;;;;379:84:23;;:::o;14:597:25:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"475600","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"27089","mint(address,uint256)":"50800","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/MockToken.sol\":\"MockToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/mocks/MockToken.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.4;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\n// this is a MOCK\\ncontract MockToken is ERC20 {\\n // this is a MOCK\\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {\\n _mint(msg.sender, 1_000_000_000 * 10**18); // mint 1B to deployoooor\\n }\\n\\n // this is a MOCK\\n function mint(address _to, uint _amount) public {\\n _mint(_to, _amount);\\n }\\n}\\n\",\"keccak256\":\"0x3c25fa8f0d860c6e67f221842303ae07fd7caa94fd9388a39e6d009923c7b6ba\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/VotingEscrowRemapperMock.sol":{"VotingEscrowRemapperMock":{"abi":[{"inputs":[{"internalType":"address","name":"_votingEscrow","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"_localToRemoteAddressMap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"}],"name":"getRemoteUser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVotingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_remoteUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"}],"name":"setRemoteUser","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_4670":{"entryPoint":null,"id":4670,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":84,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:306:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:25","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:25"},"nodeType":"YulFunctionCall","src":"143:12:25"},"nodeType":"YulExpressionStatement","src":"143:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:25"},"nodeType":"YulFunctionCall","src":"112:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:25"},"nodeType":"YulFunctionCall","src":"108:32:25"},"nodeType":"YulIf","src":"105:52:25"},{"nodeType":"YulVariableDeclaration","src":"166:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:25"},"nodeType":"YulFunctionCall","src":"179:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:25"},"nodeType":"YulFunctionCall","src":"260:12:25"},"nodeType":"YulExpressionStatement","src":"260:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:25"},"nodeType":"YulFunctionCall","src":"235:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:25"},"nodeType":"YulFunctionCall","src":"224:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:25"},"nodeType":"YulFunctionCall","src":"214:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:25"},"nodeType":"YulFunctionCall","src":"207:50:25"},"nodeType":"YulIf","src":"204:70:25"},{"nodeType":"YulAssignment","src":"283:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:25","type":""}],"src":"14:290:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161028f38038061028f83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6101fc806100936000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806308b0308a14610051578063bda75c3814610080578063d0ff58ba146100ba578063e996a30614610107575b600080fd5b600054610064906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61006461008e366004610169565b61ffff1660009081526001602090815260408083206001600160a01b0394851684529091529020541690565b6101056100c8366004610169565b61ffff166000908152600160209081526040808320338452909152902080546001600160a01b0319166001600160a01b0392909216919091179055565b005b61006461011536600461019c565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b80356001600160a01b038116811461015257600080fd5b919050565b803561ffff8116811461015257600080fd5b6000806040838503121561017c57600080fd5b6101858361013b565b915061019360208401610157565b90509250929050565b600080604083850312156101af57600080fd5b6101b883610157565b91506101936020840161013b56fea26469706673582212204a6d7bcc4c48bda5a47e6e28acece922b606254dcb632951853259eb31f9111064736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x28F CODESIZE SUB DUP1 PUSH2 0x28F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x84 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1FC DUP1 PUSH2 0x93 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B0308A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBDA75C38 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0xD0FF58BA EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0xE996A306 EQ PUSH2 0x107 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x64 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0x8E CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH2 0x105 PUSH2 0xC8 CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x64 PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x19C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185 DUP4 PUSH2 0x13B JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x157 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B8 DUP4 PUSH2 0x157 JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x13B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A PUSH14 0x7BCC4C48BDA5A47E6E28ACECE922 0xB6 MOD 0x25 0x4D 0xCB PUSH4 0x29518532 MSIZE 0xEB BALANCE 0xF9 GT LT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"122:626:24:-:0;;;315:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;360:15;:46;;-1:-1:-1;;;;;;360:46:24;-1:-1:-1;;;;;360:46:24;;;;;;;;;;122:626;;14:290:25;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:25;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:25:o;:::-;122:626:24;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_localToRemoteAddressMap_4658":{"entryPoint":null,"id":4658,"parameterSlots":0,"returnSlots":0},"@getRemoteUser_4686":{"entryPoint":null,"id":4686,"parameterSlots":2,"returnSlots":1},"@getVotingEscrow_4652":{"entryPoint":null,"id":4652,"parameterSlots":0,"returnSlots":0},"@setRemoteUser_4703":{"entryPoint":null,"id":4703,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":315,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_uint16":{"entryPoint":361,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_address":{"entryPoint":412,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":343,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1317:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"137:102:25","statements":[{"nodeType":"YulAssignment","src":"147:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"155:3:25"},"nodeType":"YulFunctionCall","src":"155:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"147:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"189:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"204:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"220:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"225:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"216:3:25"},"nodeType":"YulFunctionCall","src":"216:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"229:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"212:3:25"},"nodeType":"YulFunctionCall","src":"212:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"200:3:25"},"nodeType":"YulFunctionCall","src":"200:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"182:6:25"},"nodeType":"YulFunctionCall","src":"182:51:25"},"nodeType":"YulExpressionStatement","src":"182:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"106:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"117:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"128:4:25","type":""}],"src":"14:225:25"},{"body":{"nodeType":"YulBlock","src":"293:124:25","statements":[{"nodeType":"YulAssignment","src":"303:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"325:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"312:12:25"},"nodeType":"YulFunctionCall","src":"312:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"303:5:25"}]},{"body":{"nodeType":"YulBlock","src":"395:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"404:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"407:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"397:6:25"},"nodeType":"YulFunctionCall","src":"397:12:25"},"nodeType":"YulExpressionStatement","src":"397:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"354:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"365:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"380:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"385:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"376:3:25"},"nodeType":"YulFunctionCall","src":"376:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"389:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"372:3:25"},"nodeType":"YulFunctionCall","src":"372:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"361:3:25"},"nodeType":"YulFunctionCall","src":"361:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"351:2:25"},"nodeType":"YulFunctionCall","src":"351:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"344:6:25"},"nodeType":"YulFunctionCall","src":"344:50:25"},"nodeType":"YulIf","src":"341:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"272:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"283:5:25","type":""}],"src":"244:173:25"},{"body":{"nodeType":"YulBlock","src":"470:111:25","statements":[{"nodeType":"YulAssignment","src":"480:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"502:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"489:12:25"},"nodeType":"YulFunctionCall","src":"489:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"480:5:25"}]},{"body":{"nodeType":"YulBlock","src":"559:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"568:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"571:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"561:6:25"},"nodeType":"YulFunctionCall","src":"561:12:25"},"nodeType":"YulExpressionStatement","src":"561:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"531:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"542:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"549:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"538:3:25"},"nodeType":"YulFunctionCall","src":"538:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"528:2:25"},"nodeType":"YulFunctionCall","src":"528:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"521:6:25"},"nodeType":"YulFunctionCall","src":"521:37:25"},"nodeType":"YulIf","src":"518:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"449:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"460:5:25","type":""}],"src":"422:159:25"},{"body":{"nodeType":"YulBlock","src":"672:172:25","statements":[{"body":{"nodeType":"YulBlock","src":"718:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:25"},"nodeType":"YulFunctionCall","src":"720:12:25"},"nodeType":"YulExpressionStatement","src":"720:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"693:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"702:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"689:3:25"},"nodeType":"YulFunctionCall","src":"689:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"714:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"685:3:25"},"nodeType":"YulFunctionCall","src":"685:32:25"},"nodeType":"YulIf","src":"682:52:25"},{"nodeType":"YulAssignment","src":"743:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"772:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"753:18:25"},"nodeType":"YulFunctionCall","src":"753:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"743:6:25"}]},{"nodeType":"YulAssignment","src":"791:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"823:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"834:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"819:3:25"},"nodeType":"YulFunctionCall","src":"819:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"801:17:25"},"nodeType":"YulFunctionCall","src":"801:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"791:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"630:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"641:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"653:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"661:6:25","type":""}],"src":"586:258:25"},{"body":{"nodeType":"YulBlock","src":"950:102:25","statements":[{"nodeType":"YulAssignment","src":"960:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"983:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"968:3:25"},"nodeType":"YulFunctionCall","src":"968:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"960:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1002:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1017:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1033:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1038:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1029:3:25"},"nodeType":"YulFunctionCall","src":"1029:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"1042:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1025:3:25"},"nodeType":"YulFunctionCall","src":"1025:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1013:3:25"},"nodeType":"YulFunctionCall","src":"1013:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"995:6:25"},"nodeType":"YulFunctionCall","src":"995:51:25"},"nodeType":"YulExpressionStatement","src":"995:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"919:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"930:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"941:4:25","type":""}],"src":"849:203:25"},{"body":{"nodeType":"YulBlock","src":"1143:172:25","statements":[{"body":{"nodeType":"YulBlock","src":"1189:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1198:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1201:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1191:6:25"},"nodeType":"YulFunctionCall","src":"1191:12:25"},"nodeType":"YulExpressionStatement","src":"1191:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1164:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1173:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1160:3:25"},"nodeType":"YulFunctionCall","src":"1160:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1185:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1156:3:25"},"nodeType":"YulFunctionCall","src":"1156:32:25"},"nodeType":"YulIf","src":"1153:52:25"},{"nodeType":"YulAssignment","src":"1214:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1242:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1224:17:25"},"nodeType":"YulFunctionCall","src":"1224:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1214:6:25"}]},{"nodeType":"YulAssignment","src":"1261:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1294:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1305:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1290:3:25"},"nodeType":"YulFunctionCall","src":"1290:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1271:18:25"},"nodeType":"YulFunctionCall","src":"1271:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1261:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1101:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1112:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1124:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1132:6:25","type":""}],"src":"1057:258:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c806308b0308a14610051578063bda75c3814610080578063d0ff58ba146100ba578063e996a30614610107575b600080fd5b600054610064906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61006461008e366004610169565b61ffff1660009081526001602090815260408083206001600160a01b0394851684529091529020541690565b6101056100c8366004610169565b61ffff166000908152600160209081526040808320338452909152902080546001600160a01b0319166001600160a01b0392909216919091179055565b005b61006461011536600461019c565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b80356001600160a01b038116811461015257600080fd5b919050565b803561ffff8116811461015257600080fd5b6000806040838503121561017c57600080fd5b6101858361013b565b915061019360208401610157565b90509250929050565b600080604083850312156101af57600080fd5b6101b883610157565b91506101936020840161013b56fea26469706673582212204a6d7bcc4c48bda5a47e6e28acece922b606254dcb632951853259eb31f9111064736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B0308A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBDA75C38 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0xD0FF58BA EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0xE996A306 EQ PUSH2 0x107 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x64 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0x8E CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH2 0x105 PUSH2 0xC8 CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x64 PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x19C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185 DUP4 PUSH2 0x13B JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x157 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B8 DUP4 PUSH2 0x157 JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x13B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A PUSH14 0x7BCC4C48BDA5A47E6E28ACECE922 0xB6 MOD 0x25 0x4D 0xCB PUSH4 0x29518532 MSIZE 0xEB BALANCE 0xF9 GT LT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"122:626:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:36;;;;;-1:-1:-1;;;;;187:36:24;;;;;;-1:-1:-1;;;;;200:32:25;;;182:51;;170:2;155:18;187:36:24;;;;;;;419:168;;;;;;:::i;:::-;531:37;;505:7;531:37;;;:24;:37;;;;;;;;-1:-1:-1;;;;;531:49:24;;;;;;;;;;;;;419:168;593:153;;;;;;:::i;:::-;676:37;;;;;;:24;:37;;;;;;;;714:10;676:49;;;;;;;:63;;-1:-1:-1;;;;;;676:63:24;-1:-1:-1;;;;;676:63:24;;;;;;;;;;593:153;;;230:78;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;230:78:24;;;244:173:25;312:20;;-1:-1:-1;;;;;361:31:25;;351:42;;341:70;;407:1;404;397:12;341:70;244:173;;;:::o;422:159::-;489:20;;549:6;538:18;;528:29;;518:57;;571:1;568;561:12;586:258;653:6;661;714:2;702:9;693:7;689:23;685:32;682:52;;;730:1;727;720:12;682:52;753:29;772:9;753:29;:::i;:::-;743:39;;801:37;834:2;823:9;819:18;801:37;:::i;:::-;791:47;;586:258;;;;;:::o;1057:::-;1124:6;1132;1185:2;1173:9;1164:7;1160:23;1156:32;1153:52;;;1201:1;1198;1191:12;1153:52;1224:28;1242:9;1224:28;:::i;:::-;1214:38;;1271;1305:2;1294:9;1290:18;1271:38;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"101600","executionCost":"infinite","totalCost":"infinite"},"external":{"_localToRemoteAddressMap(uint16,address)":"infinite","getRemoteUser(address,uint16)":"infinite","getVotingEscrow()":"2303","setRemoteUser(address,uint16)":"infinite"}},"methodIdentifiers":{"_localToRemoteAddressMap(uint16,address)":"e996a306","getRemoteUser(address,uint16)":"bda75c38","getVotingEscrow()":"08b0308a","setRemoteUser(address,uint16)":"d0ff58ba"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_votingEscrow\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_localToRemoteAddressMap\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"}],\"name\":\"getRemoteUser\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVotingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_remoteUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"}],\"name\":\"setRemoteUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getVotingEscrow()\":{\"notice\":\"Returns Voting Escrow contract address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/VotingEscrowRemapperMock.sol\":\"VotingEscrowRemapperMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"},\"contracts/mocks/VotingEscrowRemapperMock.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../interfaces/IVotingEscrowRemapper.sol\\\";\\n\\ncontract VotingEscrowRemapperMock is IVotingEscrowRemapper {\\n IVotingEscrow public getVotingEscrow;\\n\\n mapping(uint16 => mapping(address => address)) public _localToRemoteAddressMap;\\n\\n constructor(address _votingEscrow) {\\n getVotingEscrow = IVotingEscrow(_votingEscrow);\\n }\\n\\n function getRemoteUser(address _localUser, uint16 _dstChainId) external view returns (address) {\\n return _localToRemoteAddressMap[_dstChainId][_localUser];\\n }\\n\\n function setRemoteUser(address _remoteUser, uint16 _dstChainId) external {\\n _localToRemoteAddressMap[_dstChainId][msg.sender] = _remoteUser;\\n }\\n}\\n\",\"keccak256\":\"0x839e702639239e31523f076c15c7165abba0ddd39e050e0742b47c4ad96946f5\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4652,"contract":"contracts/mocks/VotingEscrowRemapperMock.sol:VotingEscrowRemapperMock","label":"getVotingEscrow","offset":0,"slot":"0","type":"t_contract(IVotingEscrow)4518"},{"astId":4658,"contract":"contracts/mocks/VotingEscrowRemapperMock.sol:VotingEscrowRemapperMock","label":"_localToRemoteAddressMap","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_mapping(t_address,t_address))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(IVotingEscrow)4518":{"encoding":"inplace","label":"contract IVotingEscrow","numberOfBytes":"20"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint16,t_mapping(t_address,t_address))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => address))","numberOfBytes":"32","value":"t_mapping(t_address,t_address)"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"}}},"userdoc":{"kind":"user","methods":{"getVotingEscrow()":{"notice":"Returns Voting Escrow contract address."}},"version":1}}}}}} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/index.ts b/tasks/20230524-lz-omni-voting-escrow-child/index.ts new file mode 100644 index 00000000..715b6d77 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/index.ts @@ -0,0 +1,9 @@ +import { Task, TaskRunOptions } from '@src'; +import { OmniVotingEscrowChildDeployment } from './input'; + +export default async (task: Task, { force, from }: TaskRunOptions = {}): Promise => { + const input = task.input() as OmniVotingEscrowChildDeployment; + + const args = [input.LayerZeroEndpoint, input.L2LayerZeroBridgeForwarder]; + await task.deployAndVerify('OmniVotingEscrowChild', args, from, force); +}; diff --git a/tasks/20230524-lz-omni-voting-escrow-child/input.ts b/tasks/20230524-lz-omni-voting-escrow-child/input.ts new file mode 100644 index 00000000..4f93cc97 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/input.ts @@ -0,0 +1,44 @@ +import { Task, TaskMode } from '@src'; + +export type OmniVotingEscrowChildDeployment = { + LayerZeroEndpoint: string; + L2LayerZeroBridgeForwarder: string; +}; + +const L2LayerZeroBridgeForwarder = new Task('20230404-l2-layer0-bridge-forwarder', TaskMode.READ_ONLY); + +export default { + L2LayerZeroBridgeForwarder, + // https://polygonscan.com/address/0x3c2269811836af69497E5F486A85D7316753cf62 + polygon: { + LayerZeroEndpoint: '0x3c2269811836af69497E5F486A85D7316753cf62', + }, + // https://arbiscan.io/address/0x3c2269811836af69497E5F486A85D7316753cf62 + arbitrum: { + LayerZeroEndpoint: '0x3c2269811836af69497E5F486A85D7316753cf62', + }, + // https://optimistic.etherscan.io/address/0x3c2269811836af69497E5F486A85D7316753cf62 + optimism: { + LayerZeroEndpoint: '0x3c2269811836af69497E5F486A85D7316753cf62', + }, + // https://gnosisscan.io/address/0x9740FF91F1985D8d2B71494aE1A2f723bb3Ed9E4 + gnosis: { + LayerZeroEndpoint: '0x9740FF91F1985D8d2B71494aE1A2f723bb3Ed9E4', + }, + // https://snowtrace.io/address/0x3c2269811836af69497E5F486A85D7316753cf62 + avalanche: { + LayerZeroEndpoint: '0x3c2269811836af69497E5F486A85D7316753cf62', + }, + // https://zkevm.polygonscan.com/address/0x9740FF91F1985D8d2B71494aE1A2f723bb3Ed9E4 + zkevm: { + LayerZeroEndpoint: '0x9740FF91F1985D8d2B71494aE1A2f723bb3Ed9E4', + }, + // https://basescan.org/address/0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7 + base: { + LayerZeroEndpoint: '0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7', + }, + // https://fraxscan.com/address/0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7 + fraxtal: { + LayerZeroEndpoint: '0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7', + }, +}; diff --git a/tasks/20230524-lz-omni-voting-escrow-child/output/arbitrum.json b/tasks/20230524-lz-omni-voting-escrow-child/output/arbitrum.json new file mode 100644 index 00000000..96fc3c88 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/output/arbitrum.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrowChild": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/output/avalanche.json b/tasks/20230524-lz-omni-voting-escrow-child/output/avalanche.json new file mode 100644 index 00000000..96fc3c88 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/output/avalanche.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrowChild": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/output/fraxtal.json b/tasks/20230524-lz-omni-voting-escrow-child/output/fraxtal.json new file mode 100644 index 00000000..96fc3c88 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrowChild": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/output/gnosis.json b/tasks/20230524-lz-omni-voting-escrow-child/output/gnosis.json new file mode 100644 index 00000000..96fc3c88 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/output/gnosis.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrowChild": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/output/optimism.json b/tasks/20230524-lz-omni-voting-escrow-child/output/optimism.json new file mode 100644 index 00000000..96fc3c88 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/output/optimism.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrowChild": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/output/polygon.json b/tasks/20230524-lz-omni-voting-escrow-child/output/polygon.json new file mode 100644 index 00000000..96fc3c88 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/output/polygon.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrowChild": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/output/zkevm.json b/tasks/20230524-lz-omni-voting-escrow-child/output/zkevm.json new file mode 100644 index 00000000..96fc3c88 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/output/zkevm.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrowChild": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-lz-omni-voting-escrow-child/readme.md b/tasks/20230524-lz-omni-voting-escrow-child/readme.md new file mode 100644 index 00000000..7fd0bf73 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/readme.md @@ -0,0 +1,15 @@ +# 2023-05-24 - LayerZero OmniVotingEscrowChild + +Deployment of the `OmniVotingEscrowChild`, which receives veBAL balances in child chains from LayerZero endpoints. + +## Useful Files + +- [Arbitrum mainnet addresses](./output/arbitrum.json) +- [Optimism mainnet addresses](./output/optimism.json) +- [Polygon mainnet addresses](./output/polygon.json) +- [Gnosis mainnet addresses](./output/gnosis.json) +- [Avalanche mainnet addresses](./output/avalanche.json) +- [Polygon zkeVM mainnet addresses](./output/zkevm.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) +- [`OmniVotingEscrowChild` artifact](./artifact/OmniVotingEscrowChild.json) +- [Source code](https://github.com/LayerZero-Labs/lz_gauges/tree/b76bce29b9ff122efdfbd8f4b18e698038cfb85a) diff --git a/tasks/20230524-lz-omni-voting-escrow-child/test/task.fork.ts b/tasks/20230524-lz-omni-voting-escrow-child/test/task.fork.ts new file mode 100644 index 00000000..e835c0e6 --- /dev/null +++ b/tasks/20230524-lz-omni-voting-escrow-child/test/task.fork.ts @@ -0,0 +1,76 @@ +import hre, { ethers } from 'hardhat'; +import { expect } from 'chai'; +import { Contract } from 'ethers'; +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/dist/src/signer-with-address'; + +import { describeForkTest } from '@src'; +import { Task, TaskMode } from '@src'; +import { getForkedNetwork } from '@src'; +import { OmniVotingEscrowChildDeployment } from '../input'; + +describeForkTest('OmniVotingEscrowChild', 'arbitrum', 94050211, function () { + let deployer: SignerWithAddress; + + let task: Task; + let omniVotingEscrowChild: Contract, l2LayerZeroBridgeForwarder: Contract; + let input: OmniVotingEscrowChildDeployment; + + const LM_MULTISIG = '0xc38c5f97B34E175FFd35407fc91a937300E33860'; + + // https://docs.layerzero.network/v1/developers/evm/technical-reference/mainnet/mainnet-addresses + const MAINNET_LZ_CHAIN_ID = 101; + // https://github.com/LayerZero-Labs/lz_gauges/blob/main/deployments/ethereum/OmniVotingEscrow.json#L2 + const MAINNET_TRUSTED_ENDPOINT = '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad'; + + before('run OmniVotingEscrowChild task', async () => { + task = new Task('20230524-lz-omni-voting-escrow-child', TaskMode.TEST, getForkedNetwork(hre)); + await task.run({ force: true }); + omniVotingEscrowChild = await task.deployedInstance('OmniVotingEscrowChild'); + input = task.input() as OmniVotingEscrowChildDeployment; + }); + + before('setup contracts', async () => { + const bridgeForwarderTask = new Task( + '20230404-l2-layer0-bridge-forwarder', + TaskMode.READ_ONLY, + getForkedNetwork(hre) + ); + l2LayerZeroBridgeForwarder = await bridgeForwarderTask.deployedInstance('L2LayerZeroBridgeForwarder'); + }); + + before('setup accounts', async () => { + deployer = (await ethers.getSigners())[0]; + }); + + context('constructor', async () => { + it('stores the endpoint', async () => { + expect(await omniVotingEscrowChild.lzEndpoint()).to.equal(input.LayerZeroEndpoint); + }); + + it('stores the delegation hook', async () => { + expect(await omniVotingEscrowChild.delegationHook()).to.equal(l2LayerZeroBridgeForwarder.address); + }); + }); + + context('setup and transfer ownership', async () => { + it('wires trusted endpoint', async () => { + await expect(omniVotingEscrowChild.getTrustedRemoteAddress(MAINNET_LZ_CHAIN_ID)).to.be.revertedWith( + 'LzApp: no trusted path record' + ); + const encodedEndpoint = ethers.utils.defaultAbiCoder.encode(['bytes'], [MAINNET_TRUSTED_ENDPOINT]); + await omniVotingEscrowChild.connect(deployer).setTrustedRemoteAddress(MAINNET_LZ_CHAIN_ID, encodedEndpoint); + + const remoteAddressBytes = await omniVotingEscrowChild.getTrustedRemoteAddress(MAINNET_LZ_CHAIN_ID); + const decodedAddress = ethers.utils.defaultAbiCoder.decode(['bytes'], remoteAddressBytes)[0]; + + expect(decodedAddress).to.be.eq(MAINNET_TRUSTED_ENDPOINT.toLowerCase()); + }); + + it('transfer ownership to LM multisig', async () => { + expect(await omniVotingEscrowChild.owner()).to.be.eq(deployer.address); + + await omniVotingEscrowChild.connect(deployer).transferOwnership(LM_MULTISIG); + expect(await omniVotingEscrowChild.owner()).to.be.eq(LM_MULTISIG); + }); + }); +}); diff --git a/tasks/20230524-mainnet-lz-omni-voting-escrow/artifact/OmniVotingEscrow.json b/tasks/20230524-mainnet-lz-omni-voting-escrow/artifact/OmniVotingEscrow.json new file mode 100644 index 00000000..aec22205 --- /dev/null +++ b/tasks/20230524-mainnet-lz-omni-voting-escrow/artifact/OmniVotingEscrow.json @@ -0,0 +1,903 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "OmniVotingEscrow", + "sourceName": "contracts/OmniVotingEscrow.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_lzEndpoint", + "type": "address" + }, + { + "internalType": "address", + "name": "_votingEscrowRemapper", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_reason", + "type": "bytes" + } + ], + "name": "MessageFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "_payloadHash", + "type": "bytes32" + } + ], + "name": "RetryMessageSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "uint16", + "name": "_type", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minDstGas", + "type": "uint256" + } + ], + "name": "SetMinDstGas", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "precrime", + "type": "address" + } + ], + "name": "SetPrecrime", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_path", + "type": "bytes" + } + ], + "name": "SetTrustedRemote", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "_remoteAddress", + "type": "bytes" + } + ], + "name": "SetTrustedRemoteAddress", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "dstChainId", + "type": "uint16" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "totalSupplyPoint", + "type": "tuple" + } + ], + "name": "TotalSupplyToChain", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "dstChainId", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "address", + "name": "localUser", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "remoteUser", + "type": "address" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "userPoint", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "int128", + "name": "bias", + "type": "int128" + }, + { + "internalType": "int128", + "name": "slope", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "ts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blk", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IVotingEscrow.Point", + "name": "totalSupplyPoint", + "type": "tuple" + } + ], + "name": "UserBalToChain", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "internalType": "bool", + "name": "_useZro", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "_adapterParams", + "type": "bytes" + } + ], + "name": "estimateSendTotalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "nativeFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "zroFee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "internalType": "bool", + "name": "_useZro", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "_adapterParams", + "type": "bytes" + } + ], + "name": "estimateSendUserBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "nativeFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "zroFee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "name": "failedMessages", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + } + ], + "name": "forceResumeReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_chainId", + "type": "uint16" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_configType", + "type": "uint256" + } + ], + "name": "getConfig", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + } + ], + "name": "getTrustedRemoteAddress", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + } + ], + "name": "isTrustedRemote", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lzEndpoint", + "outputs": [ + { + "internalType": "contract ILayerZeroEndpoint", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "lzReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "name": "minDstGasLookup", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "nonblockingLzReceive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "precrime", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_srcAddress", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "_nonce", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "_payload", + "type": "bytes" + } + ], + "name": "retryMessage", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "internalType": "address payable", + "name": "_refundAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_zroPaymentAddress", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_adapterParams", + "type": "bytes" + } + ], + "name": "sendTotalSupply", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_localUser", + "type": "address" + }, + { + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "internalType": "address payable", + "name": "_refundAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_zroPaymentAddress", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_adapterParams", + "type": "bytes" + } + ], + "name": "sendUserBalance", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_chainId", + "type": "uint16" + }, + { + "internalType": "uint256", + "name": "_configType", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_config", + "type": "bytes" + } + ], + "name": "setConfig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_dstChainId", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_packetType", + "type": "uint16" + }, + { + "internalType": "uint256", + "name": "_minGas", + "type": "uint256" + } + ], + "name": "setMinDstGas", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_precrime", + "type": "address" + } + ], + "name": "setPrecrime", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + } + ], + "name": "setReceiveVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_version", + "type": "uint16" + } + ], + "name": "setSendVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_srcChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_path", + "type": "bytes" + } + ], + "name": "setTrustedRemote", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_remoteChainId", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_remoteAddress", + "type": "bytes" + } + ], + "name": "setTrustedRemoteAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "name": "trustedRemoteLookup", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "votingEscrow", + "outputs": [ + { + "internalType": "contract IVotingEscrow", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "votingEscrowRemapper", + "outputs": [ + { + "internalType": "contract IVotingEscrowRemapper", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60e06040526005805463ffffffff1916620100001790553480156200002357600080fd5b5060405162002fef38038062002fef8339810160408190526200004691620001b8565b818062000053336200014f565b6001600160a01b03908116608052821615159050620000c95760405162461bcd60e51b815260206004820152602860248201527f4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f604482015267074206265203078360c41b606482015260840160405180910390fd5b6001600160a01b03811660c081905260408051630458184560e11b815290516308b0308a916004808201926020929091908290030181865afa15801562000114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013a9190620001f7565b6001600160a01b031660a052506200021e9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620001b557600080fd5b50565b60008060408385031215620001cc57600080fd5b8251620001d9816200019f565b6020840151909250620001ec816200019f565b809150509250929050565b6000602082840312156200020a57600080fd5b815162000217816200019f565b9392505050565b60805160a05160c051612d1c620002d360003960008181610269015261118901526000818161032b01528181610ad201528181610b7601528181610bf901528181610c6c01528181610d0501528181610eab01528181610f4601528181610fd80152818161104901526110ed0152600081816104f4015281816105ec0152818161083b015281816108c40152818161097401528181610e22015281816116ab01528181611adc0152611e100152612d1c6000f3fe6080604052600436106101b65760003560e01c80637533d788116100ec578063baf3292d1161008a578063df2a5b3b11610064578063df2a5b3b14610569578063eb8d72b714610589578063f2fde38b146105a9578063f5ecbdbc146105c957600080fd5b8063baf3292d14610516578063cbed8b9c14610536578063d1deba1f1461055657600080fd5b8063950c8a74116100c6578063950c8a74146104825780639f38369a146104a2578063a6c3d165146104c2578063b353aaa7146104e257600080fd5b80637533d788146103ff5780638cfd8f5c1461042c5780638da5cb5b1461046457600080fd5b806342d65a8d116101595780635b8c41e6116101335780635b8c41e61461034d57806365d092d0146103aa57806366ad5c8a146103ca578063715018a6146103ea57600080fd5b806342d65a8d146102e65780634a759489146103065780634f2bfe5b1461031957600080fd5b806316334c8f1161019557806316334c8f1461021d578063363bf0de146102575780633d8b38f6146102a3578063416b154a146102d357600080fd5b80621d3567146101bb57806307e0db17146101dd57806310ddb137146101fd575b600080fd5b3480156101c757600080fd5b506101db6101d636600461224e565b6105e9565b005b3480156101e957600080fd5b506101db6101f83660046122e1565b61081a565b34801561020957600080fd5b506101db6102183660046122e1565b6108a3565b34801561022957600080fd5b5061023d6102383660046122fc565b6108fb565b604080519283526020830191909152015b60405180910390f35b34801561026357600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024e565b3480156102af57600080fd5b506102c36102be366004612363565b610a01565b604051901515815260200161024e565b6101db6102e136600461248d565b610ace565b3480156102f257600080fd5b506101db610301366004612363565b610e03565b6101db6103143660046124ff565b610e89565b34801561032557600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b5061039c610368366004612584565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b60405190815260200161024e565b3480156103b657600080fd5b5061023d6103c53660046122fc565b6112a0565b3480156103d657600080fd5b506101db6103e536600461224e565b611303565b3480156103f657600080fd5b506101db6113df565b34801561040b57600080fd5b5061041f61041a3660046122e1565b6113f3565b60405161024e919061263d565b34801561043857600080fd5b5061039c610447366004612650565b600260209081526000928352604080842090915290825290205481565b34801561047057600080fd5b506000546001600160a01b031661028b565b34801561048e57600080fd5b5060035461028b906001600160a01b031681565b3480156104ae57600080fd5b5061041f6104bd3660046122e1565b61148d565b3480156104ce57600080fd5b506101db6104dd366004612363565b61159d565b3480156104ee57600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b506101db610531366004612683565b611630565b34801561054257600080fd5b506101db6105513660046126a0565b61168c565b6101db61056436600461224e565b611721565b34801561057557600080fd5b506101db61058436600461270e565b611926565b34801561059557600080fd5b506101db6105a4366004612363565b6119d8565b3480156105b557600080fd5b506101db6105c4366004612683565b611a32565b3480156105d557600080fd5b5061041f6105e436600461274a565b611aab565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461068490612797565b80601f01602080910402602001604051908101604052809291908181526020018280546106b090612797565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b50505050509050805186869050148015610718575060008151115b801561074057508051602082012060405161073690889088906127d2565b6040518091039020145b61079b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161065d565b6108118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b5c92505050565b50505050505050565b610822611c66565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050505050565b6108ab611c66565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161086e565b6000806000600560029054906101000a900461ffff1660405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525060405160200161094d92919061280e565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906109b3908a90309086908c908c908c9060040161284f565b6040805180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906128a5565b925092505094509492505050565b61ffff831660009081526001602052604081208054829190610a2290612797565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90612797565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b505050505090508383604051610ab29291906127d2565b60405180910390208180519060200120149150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be391906128f4565b9050610bf28160400151611cc0565b15610d7d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906128c9565b60405163d1febfb960e01b8152600481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1febfb9906024016080604051808303816000875af1158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906128f4565b90505b6000600560029054906101000a900461ffff1682604051602001610da292919061280e565b6040516020818303038152906040529050610dc1878288888834611cf1565b7fd76af77f4ffbd9969fdb15b1c1268d40cd4bf1093905e67639f369cb9f44c1728783604051610df292919061280e565b60405180910390a150505050505050565b610e0b611c66565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610e5b90869086908690600401612965565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610811573d6000803e3d6000fd5b60405163010ae75760e01b81526001600160a01b0386811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063010ae757906024016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906128c9565b6040516328d09d4760e01b81526001600160a01b038881166004830152602482018390529192506000917f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906044016080604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb391906128f4565b60405163adc6358960e01b81526001600160a01b0389811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063adc6358990602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128c9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a91906128f4565b6040516317b4eb8760e31b81526001600160a01b038c8116600483015261ffff8c1660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bda75c3890604401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612983565b905060006001600160a01b03821661120c578b61120e565b815b6005546040519192506000916112339161ffff1690849089908b9089906020016129a0565b60405160208183030381529060405290506112528c828d8d8d34611cf1565b7f3689d0fa90a175cc766502dc62c2abdee9ca4b276d4315adf98339a8354755808c8e848a886040516112899594939291906129e6565b60405180910390a150505050505050505050505050565b6005546040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052935190948594859461094d9461ffff9093169386938493909101612a16565b3330146113615760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161065d565b6113d78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611e8c92505050565b505050505050565b6113e7611c66565b6113f16000611ee4565b565b6001602052600090815260409020805461140c90612797565b80601f016020809104026020016040519081016040528092919081815260200182805461143890612797565b80156114855780601f1061145a57610100808354040283529160200191611485565b820191906000526020600020905b81548152906001019060200180831161146857829003601f168201915b505050505081565b61ffff81166000908152600160205260408120805460609291906114b090612797565b80601f01602080910402602001604051908101604052809291908181526020018280546114dc90612797565b80156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b505050505090508051600014156115825760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161065d565b610ac76000601483516115959190612a5d565b839190611f34565b6115a5611c66565b8181306040516020016115ba93929190612a74565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516115ef939192909101906120cb565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161162393929190612965565b60405180910390a1505050565b611638611c66565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b611694611c66565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116e89088908890889088908890600401612a9a565b600060405180830381600087803b15801561170257600080fd5b505af1158015611716573d6000803e3d6000fd5b505050505050505050565b61ffff8616600090815260046020526040808220905161174490889088906127d2565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806117c45760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161065d565b8083836040516117d59291906127d2565b6040518091039020146118345760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161065d565b61ffff8716600090815260046020526040808220905161185790899089906127d2565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526118ef918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611e8c92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051610df2959493929190612ad3565b61192e611c66565b600081116119765760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161065d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611623565b6119e0611c66565b61ffff831660009081526001602052604090206119fe90838361214f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161162393929190612965565b611a3a611c66565b6001600160a01b038116611a9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065d565b611aa881611ee4565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b539190810190612b0e565b95945050505050565b600080611bbf5a60966366ad5c8a60e01b89898989604051602401611b849493929190612b7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612041565b91509150816113d7578280519060200120600460008861ffff1661ffff16815260200190815260200160002086604051611bf99190612bb9565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611c569088908890889088908790612bd5565b60405180910390a1505050505050565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065d565b600042611cd062093a8084612c33565b611cdd9062093a80612c55565b611cea9062093a80612c74565b1092915050565b61ffff861660009081526001602052604081208054611d0f90612797565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3b90612797565b8015611d885780601f10611d5d57610100808354040283529160200191611d88565b820191906000526020600020905b815481529060010190602001808311611d6b57829003601f168201915b50505050509050805160001415611dfa5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161065d565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490611e51908b9086908c908c908c908c90600401612c8c565b6000604051808303818588803b158015611e6a57600080fd5b505af1158015611e7e573d6000803e3d6000fd5b505050505050505050505050565b60405162461bcd60e51b815260206004820152602760248201527f4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665604482015266206c7a4d73677360c81b606482015260840161065d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606081611f4281601f612c74565b1015611f815760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161065d565b611f8b8284612c74565b84511015611fcf5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161065d565b606082158015611fee5760405191506000825260208201604052612038565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561202757805183526020928301920161200f565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115612066576120666123ca565b6040519080825280601f01601f191660200182016040528015612090576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156120b2578692505b828152826000602083013e909890975095505050505050565b8280546120d790612797565b90600052602060002090601f0160209004810192826120f9576000855561213f565b82601f1061211257805160ff191683800117855561213f565b8280016001018555821561213f579182015b8281111561213f578251825591602001919060010190612124565b5061214b9291506121c3565b5090565b82805461215b90612797565b90600052602060002090601f01602090048101928261217d576000855561213f565b82601f106121965782800160ff1982351617855561213f565b8280016001018555821561213f579182015b8281111561213f5782358255916020019190600101906121a8565b5b8082111561214b57600081556001016121c4565b803561ffff811681146121ea57600080fd5b919050565b60008083601f84011261220157600080fd5b5081356001600160401b0381111561221857600080fd5b60208301915083602082850101111561223057600080fd5b9250929050565b80356001600160401b03811681146121ea57600080fd5b6000806000806000806080878903121561226757600080fd5b612270876121d8565b955060208701356001600160401b038082111561228c57600080fd5b6122988a838b016121ef565b90975095508591506122ac60408a01612237565b945060608901359150808211156122c257600080fd5b506122cf89828a016121ef565b979a9699509497509295939492505050565b6000602082840312156122f357600080fd5b610ac7826121d8565b6000806000806060858703121561231257600080fd5b61231b856121d8565b93506020850135801515811461233057600080fd5b925060408501356001600160401b0381111561234b57600080fd5b612357878288016121ef565b95989497509550505050565b60008060006040848603121561237857600080fd5b612381846121d8565b925060208401356001600160401b0381111561239c57600080fd5b6123a8868287016121ef565b9497909650939450505050565b6001600160a01b0381168114611aa857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612408576124086123ca565b604052919050565b60006001600160401b03821115612429576124296123ca565b50601f01601f191660200190565b600082601f83011261244857600080fd5b813561245b61245682612410565b6123e0565b81815284602083860101111561247057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156124a357600080fd5b6124ac856121d8565b935060208501356124bc816123b5565b925060408501356124cc816123b5565b915060608501356001600160401b038111156124e757600080fd5b6124f387828801612437565b91505092959194509250565b600080600080600060a0868803121561251757600080fd5b8535612522816123b5565b9450612530602087016121d8565b93506040860135612540816123b5565b92506060860135612550816123b5565b915060808601356001600160401b0381111561256b57600080fd5b61257788828901612437565b9150509295509295909350565b60008060006060848603121561259957600080fd5b6125a2846121d8565b925060208401356001600160401b038111156125bd57600080fd5b6125c986828701612437565b9250506125d860408501612237565b90509250925092565b60005b838110156125fc5781810151838201526020016125e4565b8381111561260b576000848401525b50505050565b600081518084526126298160208601602086016125e1565b601f01601f19169290920160200192915050565b602081526000610ac76020830184612611565b6000806040838503121561266357600080fd5b61266c836121d8565b915061267a602084016121d8565b90509250929050565b60006020828403121561269557600080fd5b8135610ac7816123b5565b6000806000806000608086880312156126b857600080fd5b6126c1866121d8565b94506126cf602087016121d8565b93506040860135925060608601356001600160401b038111156126f157600080fd5b6126fd888289016121ef565b969995985093965092949392505050565b60008060006060848603121561272357600080fd5b61272c846121d8565b925061273a602085016121d8565b9150604084013590509250925092565b6000806000806080858703121561276057600080fd5b612769856121d8565b9350612777602086016121d8565b92506040850135612787816123b5565b9396929550929360600135925050565b600181811c908216806127ab57607f821691505b602082108114156127cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b61ffff8316815260a08101610ac760208301846127e2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061287d90830187612611565b85151560608401528281036080840152612898818587612826565b9998505050505050505050565b600080604083850312156128b857600080fd5b505080516020909101519092909150565b6000602082840312156128db57600080fd5b5051919050565b8051600f81900b81146121ea57600080fd5b60006080828403121561290657600080fd5b604051608081018181106001600160401b0382111715612928576129286123ca565b604052612934836128e2565b8152612942602084016128e2565b602082015260408301516040820152606083015160608201528091505092915050565b61ffff84168152604060208201526000611b53604083018486612826565b60006020828403121561299557600080fd5b8151610ac7816123b5565b61ffff861681526001600160a01b03851660208201526040810184905261016081016129cf60608301856127e2565b6129dc60e08301846127e2565b9695505050505050565b61ffff861681526001600160a01b0385811660208301528416604082015261016081016129cf60608301856127e2565b61ffff861681526001600160a01b038516602082015260ff8416604082015261016081016129cf60608301856127e2565b634e487b7160e01b600052601160045260246000fd5b600082821015612a6f57612a6f612a47565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152612ac8608083018486612826565b979650505050505050565b61ffff86168152608060208201526000612af1608083018688612826565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215612b2057600080fd5b81516001600160401b03811115612b3657600080fd5b8201601f81018413612b4757600080fd5b8051612b5561245682612410565b818152856020838501011115612b6a57600080fd5b611b538260208301602086016125e1565b61ffff85168152608060208201526000612b986080830186612611565b6001600160401b03851660408401528281036060840152612ac88185612611565b60008251612bcb8184602087016125e1565b9190910192915050565b61ffff8616815260a060208201526000612bf260a0830187612611565b6001600160401b03861660408401528281036060840152612c138186612611565b90508281036080840152612c278185612611565b98975050505050505050565b600082612c5057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612c6f57612c6f612a47565b500290565b60008219821115612c8757612c87612a47565b500190565b61ffff8716815260c060208201526000612ca960c0830188612611565b8281036040840152612cbb8188612611565b6001600160a01b0387811660608601528616608085015283810360a08501529050612898818561261156fea2646970667358221220b85af53a2a319ccabd0aabf707afce404bbc10fcde62f9d2c0840fa8d9e9f31364736f6c634300080a0033", + "deployedBytecode": "0x6080604052600436106101b65760003560e01c80637533d788116100ec578063baf3292d1161008a578063df2a5b3b11610064578063df2a5b3b14610569578063eb8d72b714610589578063f2fde38b146105a9578063f5ecbdbc146105c957600080fd5b8063baf3292d14610516578063cbed8b9c14610536578063d1deba1f1461055657600080fd5b8063950c8a74116100c6578063950c8a74146104825780639f38369a146104a2578063a6c3d165146104c2578063b353aaa7146104e257600080fd5b80637533d788146103ff5780638cfd8f5c1461042c5780638da5cb5b1461046457600080fd5b806342d65a8d116101595780635b8c41e6116101335780635b8c41e61461034d57806365d092d0146103aa57806366ad5c8a146103ca578063715018a6146103ea57600080fd5b806342d65a8d146102e65780634a759489146103065780634f2bfe5b1461031957600080fd5b806316334c8f1161019557806316334c8f1461021d578063363bf0de146102575780633d8b38f6146102a3578063416b154a146102d357600080fd5b80621d3567146101bb57806307e0db17146101dd57806310ddb137146101fd575b600080fd5b3480156101c757600080fd5b506101db6101d636600461224e565b6105e9565b005b3480156101e957600080fd5b506101db6101f83660046122e1565b61081a565b34801561020957600080fd5b506101db6102183660046122e1565b6108a3565b34801561022957600080fd5b5061023d6102383660046122fc565b6108fb565b604080519283526020830191909152015b60405180910390f35b34801561026357600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024e565b3480156102af57600080fd5b506102c36102be366004612363565b610a01565b604051901515815260200161024e565b6101db6102e136600461248d565b610ace565b3480156102f257600080fd5b506101db610301366004612363565b610e03565b6101db6103143660046124ff565b610e89565b34801561032557600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b5061039c610368366004612584565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b60405190815260200161024e565b3480156103b657600080fd5b5061023d6103c53660046122fc565b6112a0565b3480156103d657600080fd5b506101db6103e536600461224e565b611303565b3480156103f657600080fd5b506101db6113df565b34801561040b57600080fd5b5061041f61041a3660046122e1565b6113f3565b60405161024e919061263d565b34801561043857600080fd5b5061039c610447366004612650565b600260209081526000928352604080842090915290825290205481565b34801561047057600080fd5b506000546001600160a01b031661028b565b34801561048e57600080fd5b5060035461028b906001600160a01b031681565b3480156104ae57600080fd5b5061041f6104bd3660046122e1565b61148d565b3480156104ce57600080fd5b506101db6104dd366004612363565b61159d565b3480156104ee57600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b506101db610531366004612683565b611630565b34801561054257600080fd5b506101db6105513660046126a0565b61168c565b6101db61056436600461224e565b611721565b34801561057557600080fd5b506101db61058436600461270e565b611926565b34801561059557600080fd5b506101db6105a4366004612363565b6119d8565b3480156105b557600080fd5b506101db6105c4366004612683565b611a32565b3480156105d557600080fd5b5061041f6105e436600461274a565b611aab565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461068490612797565b80601f01602080910402602001604051908101604052809291908181526020018280546106b090612797565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b50505050509050805186869050148015610718575060008151115b801561074057508051602082012060405161073690889088906127d2565b6040518091039020145b61079b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161065d565b6108118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b5c92505050565b50505050505050565b610822611c66565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050505050565b6108ab611c66565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161086e565b6000806000600560029054906101000a900461ffff1660405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525060405160200161094d92919061280e565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906109b3908a90309086908c908c908c9060040161284f565b6040805180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906128a5565b925092505094509492505050565b61ffff831660009081526001602052604081208054829190610a2290612797565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90612797565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b505050505090508383604051610ab29291906127d2565b60405180910390208180519060200120149150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be391906128f4565b9050610bf28160400151611cc0565b15610d7d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906128c9565b60405163d1febfb960e01b8152600481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1febfb9906024016080604051808303816000875af1158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906128f4565b90505b6000600560029054906101000a900461ffff1682604051602001610da292919061280e565b6040516020818303038152906040529050610dc1878288888834611cf1565b7fd76af77f4ffbd9969fdb15b1c1268d40cd4bf1093905e67639f369cb9f44c1728783604051610df292919061280e565b60405180910390a150505050505050565b610e0b611c66565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610e5b90869086908690600401612965565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610811573d6000803e3d6000fd5b60405163010ae75760e01b81526001600160a01b0386811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063010ae757906024016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906128c9565b6040516328d09d4760e01b81526001600160a01b038881166004830152602482018390529192506000917f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906044016080604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb391906128f4565b60405163adc6358960e01b81526001600160a01b0389811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063adc6358990602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128c9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a91906128f4565b6040516317b4eb8760e31b81526001600160a01b038c8116600483015261ffff8c1660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bda75c3890604401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612983565b905060006001600160a01b03821661120c578b61120e565b815b6005546040519192506000916112339161ffff1690849089908b9089906020016129a0565b60405160208183030381529060405290506112528c828d8d8d34611cf1565b7f3689d0fa90a175cc766502dc62c2abdee9ca4b276d4315adf98339a8354755808c8e848a886040516112899594939291906129e6565b60405180910390a150505050505050505050505050565b6005546040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052935190948594859461094d9461ffff9093169386938493909101612a16565b3330146113615760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161065d565b6113d78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611e8c92505050565b505050505050565b6113e7611c66565b6113f16000611ee4565b565b6001602052600090815260409020805461140c90612797565b80601f016020809104026020016040519081016040528092919081815260200182805461143890612797565b80156114855780601f1061145a57610100808354040283529160200191611485565b820191906000526020600020905b81548152906001019060200180831161146857829003601f168201915b505050505081565b61ffff81166000908152600160205260408120805460609291906114b090612797565b80601f01602080910402602001604051908101604052809291908181526020018280546114dc90612797565b80156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b505050505090508051600014156115825760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161065d565b610ac76000601483516115959190612a5d565b839190611f34565b6115a5611c66565b8181306040516020016115ba93929190612a74565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516115ef939192909101906120cb565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161162393929190612965565b60405180910390a1505050565b611638611c66565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b611694611c66565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116e89088908890889088908890600401612a9a565b600060405180830381600087803b15801561170257600080fd5b505af1158015611716573d6000803e3d6000fd5b505050505050505050565b61ffff8616600090815260046020526040808220905161174490889088906127d2565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806117c45760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161065d565b8083836040516117d59291906127d2565b6040518091039020146118345760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161065d565b61ffff8716600090815260046020526040808220905161185790899089906127d2565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526118ef918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611e8c92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051610df2959493929190612ad3565b61192e611c66565b600081116119765760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161065d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611623565b6119e0611c66565b61ffff831660009081526001602052604090206119fe90838361214f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161162393929190612965565b611a3a611c66565b6001600160a01b038116611a9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065d565b611aa881611ee4565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b539190810190612b0e565b95945050505050565b600080611bbf5a60966366ad5c8a60e01b89898989604051602401611b849493929190612b7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612041565b91509150816113d7578280519060200120600460008861ffff1661ffff16815260200190815260200160002086604051611bf99190612bb9565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611c569088908890889088908790612bd5565b60405180910390a1505050505050565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065d565b600042611cd062093a8084612c33565b611cdd9062093a80612c55565b611cea9062093a80612c74565b1092915050565b61ffff861660009081526001602052604081208054611d0f90612797565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3b90612797565b8015611d885780601f10611d5d57610100808354040283529160200191611d88565b820191906000526020600020905b815481529060010190602001808311611d6b57829003601f168201915b50505050509050805160001415611dfa5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161065d565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490611e51908b9086908c908c908c908c90600401612c8c565b6000604051808303818588803b158015611e6a57600080fd5b505af1158015611e7e573d6000803e3d6000fd5b505050505050505050505050565b60405162461bcd60e51b815260206004820152602760248201527f4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665604482015266206c7a4d73677360c81b606482015260840161065d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606081611f4281601f612c74565b1015611f815760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161065d565b611f8b8284612c74565b84511015611fcf5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161065d565b606082158015611fee5760405191506000825260208201604052612038565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561202757805183526020928301920161200f565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115612066576120666123ca565b6040519080825280601f01601f191660200182016040528015612090576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156120b2578692505b828152826000602083013e909890975095505050505050565b8280546120d790612797565b90600052602060002090601f0160209004810192826120f9576000855561213f565b82601f1061211257805160ff191683800117855561213f565b8280016001018555821561213f579182015b8281111561213f578251825591602001919060010190612124565b5061214b9291506121c3565b5090565b82805461215b90612797565b90600052602060002090601f01602090048101928261217d576000855561213f565b82601f106121965782800160ff1982351617855561213f565b8280016001018555821561213f579182015b8281111561213f5782358255916020019190600101906121a8565b5b8082111561214b57600081556001016121c4565b803561ffff811681146121ea57600080fd5b919050565b60008083601f84011261220157600080fd5b5081356001600160401b0381111561221857600080fd5b60208301915083602082850101111561223057600080fd5b9250929050565b80356001600160401b03811681146121ea57600080fd5b6000806000806000806080878903121561226757600080fd5b612270876121d8565b955060208701356001600160401b038082111561228c57600080fd5b6122988a838b016121ef565b90975095508591506122ac60408a01612237565b945060608901359150808211156122c257600080fd5b506122cf89828a016121ef565b979a9699509497509295939492505050565b6000602082840312156122f357600080fd5b610ac7826121d8565b6000806000806060858703121561231257600080fd5b61231b856121d8565b93506020850135801515811461233057600080fd5b925060408501356001600160401b0381111561234b57600080fd5b612357878288016121ef565b95989497509550505050565b60008060006040848603121561237857600080fd5b612381846121d8565b925060208401356001600160401b0381111561239c57600080fd5b6123a8868287016121ef565b9497909650939450505050565b6001600160a01b0381168114611aa857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612408576124086123ca565b604052919050565b60006001600160401b03821115612429576124296123ca565b50601f01601f191660200190565b600082601f83011261244857600080fd5b813561245b61245682612410565b6123e0565b81815284602083860101111561247057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156124a357600080fd5b6124ac856121d8565b935060208501356124bc816123b5565b925060408501356124cc816123b5565b915060608501356001600160401b038111156124e757600080fd5b6124f387828801612437565b91505092959194509250565b600080600080600060a0868803121561251757600080fd5b8535612522816123b5565b9450612530602087016121d8565b93506040860135612540816123b5565b92506060860135612550816123b5565b915060808601356001600160401b0381111561256b57600080fd5b61257788828901612437565b9150509295509295909350565b60008060006060848603121561259957600080fd5b6125a2846121d8565b925060208401356001600160401b038111156125bd57600080fd5b6125c986828701612437565b9250506125d860408501612237565b90509250925092565b60005b838110156125fc5781810151838201526020016125e4565b8381111561260b576000848401525b50505050565b600081518084526126298160208601602086016125e1565b601f01601f19169290920160200192915050565b602081526000610ac76020830184612611565b6000806040838503121561266357600080fd5b61266c836121d8565b915061267a602084016121d8565b90509250929050565b60006020828403121561269557600080fd5b8135610ac7816123b5565b6000806000806000608086880312156126b857600080fd5b6126c1866121d8565b94506126cf602087016121d8565b93506040860135925060608601356001600160401b038111156126f157600080fd5b6126fd888289016121ef565b969995985093965092949392505050565b60008060006060848603121561272357600080fd5b61272c846121d8565b925061273a602085016121d8565b9150604084013590509250925092565b6000806000806080858703121561276057600080fd5b612769856121d8565b9350612777602086016121d8565b92506040850135612787816123b5565b9396929550929360600135925050565b600181811c908216806127ab57607f821691505b602082108114156127cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b61ffff8316815260a08101610ac760208301846127e2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061287d90830187612611565b85151560608401528281036080840152612898818587612826565b9998505050505050505050565b600080604083850312156128b857600080fd5b505080516020909101519092909150565b6000602082840312156128db57600080fd5b5051919050565b8051600f81900b81146121ea57600080fd5b60006080828403121561290657600080fd5b604051608081018181106001600160401b0382111715612928576129286123ca565b604052612934836128e2565b8152612942602084016128e2565b602082015260408301516040820152606083015160608201528091505092915050565b61ffff84168152604060208201526000611b53604083018486612826565b60006020828403121561299557600080fd5b8151610ac7816123b5565b61ffff861681526001600160a01b03851660208201526040810184905261016081016129cf60608301856127e2565b6129dc60e08301846127e2565b9695505050505050565b61ffff861681526001600160a01b0385811660208301528416604082015261016081016129cf60608301856127e2565b61ffff861681526001600160a01b038516602082015260ff8416604082015261016081016129cf60608301856127e2565b634e487b7160e01b600052601160045260246000fd5b600082821015612a6f57612a6f612a47565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152612ac8608083018486612826565b979650505050505050565b61ffff86168152608060208201526000612af1608083018688612826565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215612b2057600080fd5b81516001600160401b03811115612b3657600080fd5b8201601f81018413612b4757600080fd5b8051612b5561245682612410565b818152856020838501011115612b6a57600080fd5b611b538260208301602086016125e1565b61ffff85168152608060208201526000612b986080830186612611565b6001600160401b03851660408401528281036060840152612ac88185612611565b60008251612bcb8184602087016125e1565b9190910192915050565b61ffff8616815260a060208201526000612bf260a0830187612611565b6001600160401b03861660408401528281036060840152612c138186612611565b90508281036080840152612c278185612611565b98975050505050505050565b600082612c5057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612c6f57612c6f612a47565b500290565b60008219821115612c8757612c87612a47565b500190565b61ffff8716815260c060208201526000612ca960c0830188612611565b8281036040840152612cbb8188612611565b6001600160a01b0387811660608601528616608085015283810360a08501529050612898818561261156fea2646970667358221220b85af53a2a319ccabd0aabf707afce404bbc10fcde62f9d2c0840fa8d9e9f31364736f6c634300080a0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/tasks/20230524-mainnet-lz-omni-voting-escrow/build-info/OmniVotingEscrow.json b/tasks/20230524-mainnet-lz-omni-voting-escrow/build-info/OmniVotingEscrow.json new file mode 100644 index 00000000..02af1d2a --- /dev/null +++ b/tasks/20230524-mainnet-lz-omni-voting-escrow/build-info/OmniVotingEscrow.json @@ -0,0 +1 @@ +{"id":"b20b1d47b40caec755075d6c9b7d938a","_format":"hh-sol-build-info-1","solcVersion":"0.8.10","solcLongVersion":"0.8.10+commit.fc410830","input":{"language":"Solidity","sources":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\nimport \"./ILayerZeroUserApplicationConfig.sol\";\n\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\n // @param _dstChainId - the destination chain identifier\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\n // @param _payload - a custom bytes payload to send to the destination contract\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\n\n // @notice used by the messaging library to publish verified payload\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source contract (as bytes) at the source chain\n // @param _dstAddress - the address on destination chain\n // @param _nonce - the unbound message ordering nonce\n // @param _gasLimit - the gas limit for external contract execution\n // @param _payload - verified payload to send to the destination contract\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\n\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\n\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\n // @param _srcAddress - the source chain contract address\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\n\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\n // @param _dstChainId - the destination chain identifier\n // @param _userApplication - the user app address on this EVM chain\n // @param _payload - the custom message to send over LayerZero\n // @param _payInZRO - if false, user app pays the protocol fee in native token\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\n\n // @notice get this Endpoint's immutable source identifier\n function getChainId() external view returns (uint16);\n\n // @notice the interface to retry failed message on this Endpoint destination\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n // @param _payload - the payload to be retried\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\n\n // @notice query if any STORED payload (message blocking) at the endpoint.\n // @param _srcChainId - the source chain identifier\n // @param _srcAddress - the source chain contract address\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\n\n // @notice query if the _libraryAddress is valid for sending msgs.\n // @param _userApplication - the user app address on this EVM chain\n function getSendLibraryAddress(address _userApplication) external view returns (address);\n\n // @notice query if the _libraryAddress is valid for receiving msgs.\n // @param _userApplication - the user app address on this EVM chain\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\n\n // @notice query if the non-reentrancy guard for send() is on\n // @return true if the guard is on. false otherwise\n function isSendingPayload() external view returns (bool);\n\n // @notice query if the non-reentrancy guard for receive() is on\n // @return true if the guard is on. false otherwise\n function isReceivingPayload() external view returns (bool);\n\n // @notice get the configuration of the LayerZero messaging library of the specified version\n // @param _version - messaging library version\n // @param _chainId - the chainId for the pending config change\n // @param _userApplication - the contract address of the user application\n // @param _configType - type of configuration. every messaging library has its own convention.\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\n\n // @notice get the send() LayerZero messaging library version\n // @param _userApplication - the contract address of the user application\n function getSendVersion(address _userApplication) external view returns (uint16);\n\n // @notice get the lzReceive() LayerZero messaging library version\n // @param _userApplication - the contract address of the user application\n function getReceiveVersion(address _userApplication) external view returns (uint16);\n}\n"},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroReceiver {\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\n // @param _srcChainId - the source endpoint identifier\n // @param _srcAddress - the source sending contract address from the source chain\n // @param _nonce - the ordered message nonce\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroUserApplicationConfig {\n // @notice set the configuration of the LayerZero messaging library of the specified version\n // @param _version - messaging library version\n // @param _chainId - the chainId for the pending config change\n // @param _configType - type of configuration. every messaging library has its own convention.\n // @param _config - configuration in the bytes. can encode arbitrary content.\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\n\n // @notice set the send() LayerZero messaging library version to _version\n // @param _version - new messaging library version\n function setSendVersion(uint16 _version) external;\n\n // @notice set the lzReceive() LayerZero messaging library version to _version\n // @param _version - new messaging library version\n function setReceiveVersion(uint16 _version) external;\n\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\n // @param _srcChainId - the chainId of the source chain\n // @param _srcAddress - the contract address of the source contract at the source chain\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity >=0.6.0;\npragma experimental ABIEncoderV2;\n\nlibrary LzLib {\n // LayerZero communication\n struct CallParams {\n address payable refundAddress;\n address zroPaymentAddress;\n }\n\n //---------------------------------------------------------------------------\n // Address type handling\n\n struct AirdropParams {\n uint airdropAmount;\n bytes32 airdropAddress;\n }\n\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\n } else {\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\n }\n }\n\n // Build Adapter Params\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\n // txType 1\n // bytes [2 32 ]\n // fields [txType extraGas]\n return abi.encodePacked(uint16(1), _uaGas);\n }\n\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\n require(_params.airdropAmount > 0, \"Airdrop amount must be greater than 0\");\n require(_params.airdropAddress != bytes32(0x0), \"Airdrop address must be set\");\n\n // txType 2\n // bytes [2 32 32 bytes[] ]\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\n }\n\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n assembly {\n gasLimit := mload(add(_adapterParams, 34))\n }\n }\n\n // Decode Adapter Params\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n assembly {\n txType := mload(add(_adapterParams, 2))\n uaGas := mload(add(_adapterParams, 34))\n }\n require(txType == 1 || txType == 2, \"Unsupported txType\");\n require(uaGas > 0, \"Gas too low\");\n\n if (txType == 2) {\n assembly {\n airdropAmount := mload(add(_adapterParams, 66))\n airdropAddress := mload(add(_adapterParams, 86))\n }\n }\n }\n\n //---------------------------------------------------------------------------\n // Address type handling\n // TODO: testing\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\n require(bytes12(_bytes32Address) == bytes12(0), \"Invalid address\"); // first 12 bytes should be empty\n return address(uint160(uint(_bytes32Address)));\n }\n\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\n return bytes32(uint(uint160(_address)));\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../interfaces/ILayerZeroReceiver.sol\";\nimport \"../interfaces/ILayerZeroUserApplicationConfig.sol\";\nimport \"../interfaces/ILayerZeroEndpoint.sol\";\nimport \"../util/BytesLib.sol\";\n\n/*\n * a generic LzReceiver implementation\n */\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\n using BytesLib for bytes;\n\n ILayerZeroEndpoint public immutable lzEndpoint;\n mapping(uint16 => bytes) public trustedRemoteLookup;\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\n address public precrime;\n\n event SetPrecrime(address precrime);\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\n\n constructor(address _endpoint) {\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\n }\n\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\n // lzReceive must be called by the endpoint for security\n require(_msgSender() == address(lzEndpoint), \"LzApp: invalid endpoint caller\");\n\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \"LzApp: invalid source sending contract\");\n\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n }\n\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\n\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\n require(trustedRemote.length != 0, \"LzApp: destination chain is not a trusted source\");\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\n }\n\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\n uint providedGasLimit = _getGasLimit(_adapterParams);\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\n require(minGasLimit > 0, \"LzApp: minGasLimit not set\");\n require(providedGasLimit >= minGasLimit, \"LzApp: gas limit is too low\");\n }\n\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\n require(_adapterParams.length >= 34, \"LzApp: invalid adapterParams\");\n assembly {\n gasLimit := mload(add(_adapterParams, 34))\n }\n }\n\n //---------------------------UserApplication config----------------------------------------\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\n }\n\n // generic config for LayerZero user Application\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\n }\n\n function setSendVersion(uint16 _version) external override onlyOwner {\n lzEndpoint.setSendVersion(_version);\n }\n\n function setReceiveVersion(uint16 _version) external override onlyOwner {\n lzEndpoint.setReceiveVersion(_version);\n }\n\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\n }\n\n // _path = abi.encodePacked(remoteAddress, localAddress)\n // this function set the trusted path for the cross-chain communication\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\n trustedRemoteLookup[_srcChainId] = _path;\n emit SetTrustedRemote(_srcChainId, _path);\n }\n\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\n }\n\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\n bytes memory path = trustedRemoteLookup[_remoteChainId];\n require(path.length != 0, \"LzApp: no trusted path record\");\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\n }\n\n function setPrecrime(address _precrime) external onlyOwner {\n precrime = _precrime;\n emit SetPrecrime(_precrime);\n }\n\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\n require(_minGas > 0, \"LzApp: invalid minGas\");\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\n }\n\n //--------------------------- VIEW FUNCTION ----------------------------------------\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\n return keccak256(trustedSource) == keccak256(_srcAddress);\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./LzApp.sol\";\nimport \"../util/ExcessivelySafeCall.sol\";\n\n/*\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\n */\nabstract contract NonblockingLzApp is LzApp {\n using ExcessivelySafeCall for address;\n\n constructor(address _endpoint) LzApp(_endpoint) {}\n\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\n\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\n\n // overriding the virtual function in LzReceiver\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\n // try-catch all errors/exceptions\n if (!success) {\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\n }\n }\n\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\n // only internal transaction\n require(_msgSender() == address(this), \"NonblockingLzApp: caller must be LzApp\");\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n }\n\n //@notice override this function\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\n\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\n // assert there is message to retry\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\n require(payloadHash != bytes32(0), \"NonblockingLzApp: no stored message\");\n require(keccak256(_payload) == payloadHash, \"NonblockingLzApp: invalid payload\");\n // clear the stored message\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\n // execute the message. revert if it fails again\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../interfaces/ILayerZeroReceiver.sol\";\nimport \"../interfaces/ILayerZeroEndpoint.sol\";\nimport \"../libraries/LzLib.sol\";\n\n/*\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\nunlike a real LayerZero endpoint, it is\n- no messaging library versioning\n- send() will short circuit to lzReceive()\n- no user application configuration\n*/\ncontract LZEndpointMock is ILayerZeroEndpoint {\n uint8 internal constant _NOT_ENTERED = 1;\n uint8 internal constant _ENTERED = 2;\n\n mapping(address => address) public lzEndpointLookup;\n\n uint16 public mockChainId;\n bool public nextMsgBlocked;\n\n // fee config\n RelayerFeeConfig public relayerFeeConfig;\n ProtocolFeeConfig public protocolFeeConfig;\n uint public oracleFee;\n bytes public defaultAdapterParams;\n\n // path = remote addrss + local address\n // inboundNonce = [srcChainId][path].\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\n //todo: this is a hack\n // outboundNonce = [dstChainId][srcAddress]\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\n // // outboundNonce = [dstChainId][path].\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\n // storedPayload = [srcChainId][path]\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\n // msgToDeliver = [srcChainId][path]\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\n\n // reentrancy guard\n uint8 internal _send_entered_state = 1;\n uint8 internal _receive_entered_state = 1;\n\n struct ProtocolFeeConfig {\n uint zroFee;\n uint nativeBP;\n }\n\n struct RelayerFeeConfig {\n uint128 dstPriceRatio; // 10^10\n uint128 dstGasPriceInWei;\n uint128 dstNativeAmtCap;\n uint64 baseGas;\n uint64 gasPerByte;\n }\n\n struct StoredPayload {\n uint64 payloadLength;\n address dstAddress;\n bytes32 payloadHash;\n }\n\n struct QueuedPayload {\n address dstAddress;\n uint64 nonce;\n bytes payload;\n }\n\n modifier sendNonReentrant() {\n require(_send_entered_state == _NOT_ENTERED, \"LayerZeroMock: no send reentrancy\");\n _send_entered_state = _ENTERED;\n _;\n _send_entered_state = _NOT_ENTERED;\n }\n\n modifier receiveNonReentrant() {\n require(_receive_entered_state == _NOT_ENTERED, \"LayerZeroMock: no receive reentrancy\");\n _receive_entered_state = _ENTERED;\n _;\n _receive_entered_state = _NOT_ENTERED;\n }\n\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\n event ValueTransferFailed(address indexed to, uint indexed quantity);\n\n constructor(uint16 _chainId) {\n mockChainId = _chainId;\n\n // init config\n relayerFeeConfig = RelayerFeeConfig({\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\n dstGasPriceInWei: 1e10,\n dstNativeAmtCap: 1e19,\n baseGas: 100,\n gasPerByte: 1\n });\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\n oracleFee = 1e16;\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\n }\n\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\n require(_path.length == 40, \"LayerZeroMock: incorrect remote address size\"); // only support evm chains\n\n address dstAddr;\n assembly {\n dstAddr := mload(add(_path, 20))\n }\n\n address lzEndpoint = lzEndpointLookup[dstAddr];\n require(lzEndpoint != address(0), \"LayerZeroMock: destination LayerZero Endpoint not found\");\n\n // not handle zro token\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\n require(msg.value >= nativeFee, \"LayerZeroMock: not enough native for fees\");\n\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\n\n // refund if they send too much\n uint amount = msg.value - nativeFee;\n if (amount > 0) {\n (bool success, ) = _refundAddress.call{value: amount}(\"\");\n require(success, \"LayerZeroMock: failed to refund\");\n }\n\n // Mock the process of receiving msg on dst chain\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\n if (dstNativeAmt > 0) {\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\"\");\n if (!success) {\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\n }\n }\n\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\n bytes memory payload = _payload;\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\n }\n\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n\n // assert and increment the nonce. no message shuffling\n require(_nonce == ++inboundNonce[_srcChainId][_path], \"LayerZeroMock: wrong nonce\");\n\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\n if (sp.payloadHash != bytes32(0)) {\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\n\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\n // shift all the msgs over so we can treat this like a fifo via array.pop()\n if (msgs.length > 0) {\n // extend the array\n msgs.push(newMsg);\n\n // shift all the indexes up for pop()\n for (uint i = 0; i < msgs.length - 1; i++) {\n msgs[i + 1] = msgs[i];\n }\n\n // put the newMsg at the bottom of the stack\n msgs[0] = newMsg;\n } else {\n msgs.push(newMsg);\n }\n } else if (nextMsgBlocked) {\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\"\"));\n // ensure the next msgs that go through are no longer blocked\n nextMsgBlocked = false;\n } else {\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\n // ensure the next msgs that go through are no longer blocked\n nextMsgBlocked = false;\n }\n }\n }\n\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\n return inboundNonce[_chainID][_path];\n }\n\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\n return outboundNonce[_chainID][_srcAddress];\n }\n\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n\n // Relayer Fee\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\n\n // LayerZero Fee\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\n\n // return the sum of fees\n nativeFee = nativeFee + relayerFee + oracleFee;\n }\n\n function getChainId() external view override returns (uint16) {\n return mockChainId;\n }\n\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \"LayerZeroMock: invalid payload\");\n\n address dstAddress = sp.dstAddress;\n // empty the storedPayload\n sp.payloadLength = 0;\n sp.dstAddress = address(0);\n sp.payloadHash = bytes32(0);\n\n uint64 nonce = inboundNonce[_srcChainId][_path];\n\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\n }\n\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n return sp.payloadHash != bytes32(0);\n }\n\n function getSendLibraryAddress(address) external view override returns (address) {\n return address(this);\n }\n\n function getReceiveLibraryAddress(address) external view override returns (address) {\n return address(this);\n }\n\n function isSendingPayload() external view override returns (bool) {\n return _send_entered_state == _ENTERED;\n }\n\n function isReceivingPayload() external view override returns (bool) {\n return _receive_entered_state == _ENTERED;\n }\n\n function getConfig(\n uint16, /*_version*/\n uint16, /*_chainId*/\n address, /*_ua*/\n uint /*_configType*/\n ) external pure override returns (bytes memory) {\n return \"\";\n }\n\n function getSendVersion(\n address /*_userApplication*/\n ) external pure override returns (uint16) {\n return 1;\n }\n\n function getReceiveVersion(\n address /*_userApplication*/\n ) external pure override returns (uint16) {\n return 1;\n }\n\n function setConfig(\n uint16, /*_version*/\n uint16, /*_chainId*/\n uint, /*_configType*/\n bytes memory /*_config*/\n ) external override {}\n\n function setSendVersion(\n uint16 /*version*/\n ) external override {}\n\n function setReceiveVersion(\n uint16 /*version*/\n ) external override {}\n\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\n // revert if no messages are cached. safeguard malicious UA behaviour\n require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n require(sp.dstAddress == msg.sender, \"LayerZeroMock: invalid caller\");\n\n // empty the storedPayload\n sp.payloadLength = 0;\n sp.dstAddress = address(0);\n sp.payloadHash = bytes32(0);\n\n emit UaForceResumeReceive(_srcChainId, _path);\n\n // resume the receiving of msgs after we force clear the \"stuck\" msg\n _clearMsgQue(_srcChainId, _path);\n }\n\n // ------------------------------ Other Public/External Functions --------------------------------------------------\n\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\n return msgsToDeliver[_srcChainId][_srcAddress].length;\n }\n\n // used to simulate messages received get stored as a payload\n function blockNextMsg() external {\n nextMsgBlocked = true;\n }\n\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\n lzEndpointLookup[destAddr] = lzEndpointAddr;\n }\n\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\n relayerFeeConfig.baseGas = _baseGas;\n relayerFeeConfig.gasPerByte = _gasPerByte;\n }\n\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\n protocolFeeConfig.zroFee = _zroFee;\n protocolFeeConfig.nativeBP = _nativeBP;\n }\n\n function setOracleFee(uint _oracleFee) external {\n oracleFee = _oracleFee;\n }\n\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\n defaultAdapterParams = _adapterParams;\n }\n\n // --------------------- Internal Functions ---------------------\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\n while (msgs.length > 0) {\n QueuedPayload memory payload = msgs[msgs.length - 1];\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\n msgs.pop();\n }\n }\n\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\n if (_payInZro) {\n return protocolFeeConfig.zroFee;\n } else {\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\n }\n }\n\n function _getRelayerFee(\n uint16, /* _dstChainId */\n uint16, /* _outboundProofType */\n address, /* _userApplication */\n uint _payloadSize,\n bytes memory _adapterParams\n ) internal view returns (uint) {\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\n if (txType == 2) {\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \"LayerZeroMock: dstNativeAmt too large \");\n totalRemoteToken += dstNativeAmt;\n }\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\n totalRemoteToken += remoteGasTotal;\n\n // tokenConversionRate = dstPrice / localPrice\n // basePrice = totalRemoteToken * tokenConversionRate\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n return basePrice + _payloadSize * pricePerByte;\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"content":"// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá \n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\n\nlibrary BytesLib {\n function concat(\n bytes memory _preBytes,\n bytes memory _postBytes\n )\n internal\n pure\n returns (bytes memory)\n {\n bytes memory tempBytes;\n\n assembly {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // Store the length of the first bytes array at the beginning of\n // the memory for tempBytes.\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n\n // Maintain a memory counter for the current write location in the\n // temp bytes array by adding the 32 bytes for the array length to\n // the starting location.\n let mc := add(tempBytes, 0x20)\n // Stop copying when the memory counter reaches the length of the\n // first bytes array.\n let end := add(mc, length)\n\n for {\n // Initialize a copy counter to the start of the _preBytes data,\n // 32 bytes into its memory.\n let cc := add(_preBytes, 0x20)\n } lt(mc, end) {\n // Increase both counters by 32 bytes each iteration.\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // Write the _preBytes data into the tempBytes memory 32 bytes\n // at a time.\n mstore(mc, mload(cc))\n }\n\n // Add the length of _postBytes to the current length of tempBytes\n // and store it as the new length in the first 32 bytes of the\n // tempBytes memory.\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n\n // Move the memory counter back from a multiple of 0x20 to the\n // actual end of the _preBytes data.\n mc := end\n // Stop copying when the memory counter reaches the new combined\n // length of the arrays.\n end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n // Update the free-memory pointer by padding our last write location\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n // next 32 byte block, then round down to the nearest multiple of\n // 32. If the sum of the length of the two arrays is zero then add\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\n mstore(0x40, and(\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n not(31) // Round down to the nearest 32 bytes.\n ))\n }\n\n return tempBytes;\n }\n\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n assembly {\n // Read the first 32 bytes of _preBytes storage, which is the length\n // of the array. (We don't need to use the offset into the slot\n // because arrays use the entire slot.)\n let fslot := sload(_preBytes.slot)\n // Arrays of 31 bytes or less have an even value in their slot,\n // while longer arrays have an odd value. The actual length is\n // the slot divided by two for odd values, and the lowest order\n // byte divided by two for even values.\n // If the slot is even, bitwise and the slot with 255 and divide by\n // two to get the length. If the slot is odd, bitwise and the slot\n // with -1 and divide by two.\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n // Since the new array still fits in the slot, we just need to\n // update the contents of the slot.\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n sstore(\n _preBytes.slot,\n // all the modifications to the slot are inside this\n // next block\n add(\n // we can just add to the slot contents because the\n // bytes we want to change are the LSBs\n fslot,\n add(\n mul(\n div(\n // load the bytes from memory\n mload(add(_postBytes, 0x20)),\n // zero all bytes to the right\n exp(0x100, sub(32, mlength))\n ),\n // and now shift left the number of bytes to\n // leave space for the length in the slot\n exp(0x100, sub(32, newlength))\n ),\n // increase length by the double of the memory\n // bytes length\n mul(mlength, 2)\n )\n )\n )\n }\n case 1 {\n // The stored value fits in the slot, but the combined value\n // will exceed it.\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // The contents of the _postBytes array start 32 bytes into\n // the structure. Our first read should obtain the `submod`\n // bytes that can fit into the unused space in the last word\n // of the stored array. To get this, we read 32 bytes starting\n // from `submod`, so the data we read overlaps with the array\n // contents by `submod` bytes. Masking the lowest-order\n // `submod` bytes allows us to add that value directly to the\n // stored value.\n\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(\n sc,\n add(\n and(\n fslot,\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n ),\n and(mload(mc), mask)\n )\n )\n\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n // Start copying to the last used word of the stored array.\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // Copy over the first `submod` bytes of the new data as in\n // case 1 above.\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n }\n }\n\n function slice(\n bytes memory _bytes,\n uint256 _start,\n uint256 _length\n )\n internal\n pure\n returns (bytes memory)\n {\n require(_length + 31 >= _length, \"slice_overflow\");\n require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n bytes memory tempBytes;\n\n assembly {\n switch iszero(_length)\n case 0 {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // The first word of the slice result is potentially a partial\n // word read from the original array. To read it, we calculate\n // the length of that partial word and start copying that many\n // bytes into the array. The first word we copy will start with\n // data we don't care about, but the last `lengthmod` bytes will\n // land at the beginning of the contents of the new array. When\n // we're done copying, we overwrite the full first word with\n // the actual length of the slice.\n let lengthmod := and(_length, 31)\n\n // The multiplication in the next line is necessary\n // because when slicing multiples of 32 bytes (lengthmod == 0)\n // the following copy loop was copying the origin's length\n // and then ending prematurely not copying everything it should.\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n\n for {\n // The multiplication in the next line has the same exact purpose\n // as the one above.\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n mstore(tempBytes, _length)\n\n //update free-memory pointer\n //allocating the array padded to 32 bytes like the compiler does now\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n //if we want a zero-length slice let's just return a zero-length array\n default {\n tempBytes := mload(0x40)\n //zero out the 32 bytes slice we are about to return\n //we need to do it because Solidity does not garbage collect\n mstore(tempBytes, 0)\n\n mstore(0x40, add(tempBytes, 0x20))\n }\n }\n\n return tempBytes;\n }\n\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\n require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n address tempAddress;\n\n assembly {\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n }\n\n return tempAddress;\n }\n\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\n require(_bytes.length >= _start + 1 , \"toUint8_outOfBounds\");\n uint8 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x1), _start))\n }\n\n return tempUint;\n }\n\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\n require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n uint16 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x2), _start))\n }\n\n return tempUint;\n }\n\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\n require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n uint32 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x4), _start))\n }\n\n return tempUint;\n }\n\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\n require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n uint64 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x8), _start))\n }\n\n return tempUint;\n }\n\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\n require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n uint96 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0xc), _start))\n }\n\n return tempUint;\n }\n\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\n require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n uint128 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x10), _start))\n }\n\n return tempUint;\n }\n\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\n require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n uint256 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempUint;\n }\n\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\n require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n bytes32 tempBytes32;\n\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n } eq(add(lt(mc, end), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equalStorage(\n bytes storage _preBytes,\n bytes memory _postBytes\n )\n internal\n view\n returns (bool)\n {\n bool success = true;\n\n assembly {\n // we know _preBytes_offset is 0\n let fslot := sload(_preBytes.slot)\n // Decode the length of the stored array like in concatStorage().\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(slength, mlength)\n case 1 {\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n if iszero(iszero(slength)) {\n switch lt(slength, 32)\n case 1 {\n // blank the last byte which is the length\n fslot := mul(div(fslot, 0x100), 0x100)\n\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n // unsuccess:\n success := 0\n }\n }\n default {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := keccak256(0x0, 0x20)\n\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n for {} eq(add(lt(mc, end), cb), 2) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n if iszero(eq(sload(sc), mload(mc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n}\n"},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity >=0.7.6;\n\nlibrary ExcessivelySafeCall {\n uint256 constant LOW_28_MASK =\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\n\n /// @notice Use when you _really_ really _really_ don't trust the called\n /// contract. This prevents the called contract from causing reversion of\n /// the caller in as many ways as we can.\n /// @dev The main difference between this and a solidity low-level call is\n /// that we limit the number of bytes that the callee can cause to be\n /// copied to caller memory. This prevents stupid things like malicious\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\n /// to memory.\n /// @param _target The address to call\n /// @param _gas The amount of gas to forward to the remote contract\n /// @param _maxCopy The maximum number of bytes of returndata to copy\n /// to memory.\n /// @param _calldata The data to send to the remote contract\n /// @return success and returndata, as `.call()`. Returndata is capped to\n /// `_maxCopy` bytes.\n function excessivelySafeCall(\n address _target,\n uint256 _gas,\n uint16 _maxCopy,\n bytes memory _calldata\n ) internal returns (bool, bytes memory) {\n // set up for assembly call\n uint256 _toCopy;\n bool _success;\n bytes memory _returnData = new bytes(_maxCopy);\n // dispatch message to recipient\n // by assembly calling \"handle\" function\n // we call via assembly to avoid memcopying a very large returndata\n // returned by a malicious contract\n assembly {\n _success := call(\n _gas, // gas\n _target, // recipient\n 0, // ether value\n add(_calldata, 0x20), // inloc\n mload(_calldata), // inlen\n 0, // outloc\n 0 // outlen\n )\n // limit our copy to 256 bytes\n _toCopy := returndatasize()\n if gt(_toCopy, _maxCopy) {\n _toCopy := _maxCopy\n }\n // Store the length of the copied bytes\n mstore(_returnData, _toCopy)\n // copy the bytes from returndata[0:_toCopy]\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n }\n return (_success, _returnData);\n }\n\n /// @notice Use when you _really_ really _really_ don't trust the called\n /// contract. This prevents the called contract from causing reversion of\n /// the caller in as many ways as we can.\n /// @dev The main difference between this and a solidity low-level call is\n /// that we limit the number of bytes that the callee can cause to be\n /// copied to caller memory. This prevents stupid things like malicious\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\n /// to memory.\n /// @param _target The address to call\n /// @param _gas The amount of gas to forward to the remote contract\n /// @param _maxCopy The maximum number of bytes of returndata to copy\n /// to memory.\n /// @param _calldata The data to send to the remote contract\n /// @return success and returndata, as `.call()`. Returndata is capped to\n /// `_maxCopy` bytes.\n function excessivelySafeStaticCall(\n address _target,\n uint256 _gas,\n uint16 _maxCopy,\n bytes memory _calldata\n ) internal view returns (bool, bytes memory) {\n // set up for assembly call\n uint256 _toCopy;\n bool _success;\n bytes memory _returnData = new bytes(_maxCopy);\n // dispatch message to recipient\n // by assembly calling \"handle\" function\n // we call via assembly to avoid memcopying a very large returndata\n // returned by a malicious contract\n assembly {\n _success := staticcall(\n _gas, // gas\n _target, // recipient\n add(_calldata, 0x20), // inloc\n mload(_calldata), // inlen\n 0, // outloc\n 0 // outlen\n )\n // limit our copy to 256 bytes\n _toCopy := returndatasize()\n if gt(_toCopy, _maxCopy) {\n _toCopy := _maxCopy\n }\n // Store the length of the copied bytes\n mstore(_returnData, _toCopy)\n // copy the bytes from returndata[0:_toCopy]\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n }\n return (_success, _returnData);\n }\n\n /**\n * @notice Swaps function selectors in encoded contract calls\n * @dev Allows reuse of encoded calldata for functions with identical\n * argument types but different names. It simply swaps out the first 4 bytes\n * for the new selector. This function modifies memory in place, and should\n * only be used with caution.\n * @param _newSelector The new 4-byte selector\n * @param _buf The encoded contract args\n */\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\n internal\n pure\n {\n require(_buf.length >= 4);\n uint256 _mask = LOW_28_MASK;\n assembly {\n // load the first word of\n let _word := mload(add(_buf, 0x20))\n // mask out the top 4 bytes\n // /x\n _word := and(_word, _mask)\n _word := or(_newSelector, _word)\n mstore(add(_buf, 0x20), _word)\n }\n }\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\n * overridden;\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `amount`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n // decrementing then incrementing.\n _balances[to] += amount;\n }\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n unchecked {\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n _balances[account] += amount;\n }\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n // Overflow not possible: amount <= accountBalance <= totalSupply.\n _totalSupply -= amount;\n }\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * has been transferred to `to`.\n * - when `from` is zero, `amount` tokens have been minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n"},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\n */\ninterface IL2LayerZeroDelegation {\n function onVeBalBridged(address user) external;\n\n function onVeBalSupplyUpdate() external;\n}\n"},"contracts/interfaces/IOmniVotingEscrow.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @dev Partial voting escrow bridge interface.\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\n */\ninterface IOmniVotingEscrow {\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\n\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\n\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\n\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\n}\n"},"contracts/interfaces/IVotingEscrow.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\ninterface IVotingEscrow {\n struct Point {\n int128 bias;\n int128 slope;\n uint ts;\n uint blk; // TODO get rid of blk?\n }\n\n function epoch() external view returns (uint);\n\n function user_point_epoch(address _user) external returns (uint);\n\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\n\n function point_history(uint _epoch) external returns (Point memory);\n\n function checkpoint() external;\n\n function locked__end(address user) external view returns (uint);\n}\n"},"contracts/interfaces/IVotingEscrowRemapper.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see .\n\npragma solidity >=0.7.0 <0.9.0;\n\nimport \"./IVotingEscrow.sol\";\nimport \"./IOmniVotingEscrow.sol\";\n\ninterface IVotingEscrowRemapper {\n /**\n * @notice Returns Voting Escrow contract address.\n */\n function getVotingEscrow() external view returns (IVotingEscrow);\n\n // /**\n // * @notice Returns Omni Voting Escrow contract address).\n // */\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\n //\n // /**\n // * @notice Get timestamp when `user`'s lock finishes.\n // * @dev The returned value is taken directly from the voting escrow.\n // */\n // function getLockedEnd(address user) external view returns (uint256);\n\n // /**\n // * @notice Returns the local user corresponding to an address on a remote chain.\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\n // * @param chainId - The chain ID of the network which this user is on.\n // */\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\n\n /**\n * @notice Returns the remote user corresponding to an address on the local chain.\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\n * @param chainId - The chain ID of the network which the remote user is on.\n */\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\n}\n"},"contracts/mocks/ERC20Mock.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n// this is a MOCK\ncontract ERC20Mock is ERC20 {\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}\n\n function mint(address _to, uint _amount) public {\n _mint(_to, _amount);\n }\n}\n"},"contracts/mocks/L2LayerZeroDelegation.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport \"../interfaces/IL2LayerZeroDelegation.sol\";\n\ncontract L2LayerZeroDelegation is IL2LayerZeroDelegation {\n function onVeBalBridged(address user) external {}\n\n function onVeBalSupplyUpdate() external {}\n}\n"},"contracts/mocks/LZEndpointMock.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\";\n\n/*\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\nunlike a real LayerZero endpoint, it is\n- no messaging library versioning\n- send() will short circuit to lzReceive()\n- no user application configuration\n*/\ncontract LZMock is LZEndpointMock {\n constructor(uint16 _chainId) LZEndpointMock(_chainId) {}\n}\n"},"contracts/mocks/MockToken.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.4;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\n// this is a MOCK\ncontract MockToken is ERC20 {\n // this is a MOCK\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {\n _mint(msg.sender, 1_000_000_000 * 10**18); // mint 1B to deployoooor\n }\n\n // this is a MOCK\n function mint(address _to, uint _amount) public {\n _mint(_to, _amount);\n }\n}\n"},"contracts/mocks/VotingEscrowRemapperMock.sol":{"content":"// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nimport \"../interfaces/IVotingEscrowRemapper.sol\";\n\ncontract VotingEscrowRemapperMock is IVotingEscrowRemapper {\n IVotingEscrow public getVotingEscrow;\n\n mapping(uint16 => mapping(address => address)) public _localToRemoteAddressMap;\n\n constructor(address _votingEscrow) {\n getVotingEscrow = IVotingEscrow(_votingEscrow);\n }\n\n function getRemoteUser(address _localUser, uint16 _dstChainId) external view returns (address) {\n return _localToRemoteAddressMap[_dstChainId][_localUser];\n }\n\n function setRemoteUser(address _remoteUser, uint16 _dstChainId) external {\n _localToRemoteAddressMap[_dstChainId][msg.sender] = _remoteUser;\n }\n}\n"},"contracts/OmniVotingEscrow.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"./interfaces/IVotingEscrow.sol\";\nimport \"./interfaces/IOmniVotingEscrow.sol\";\nimport \"./interfaces/IVotingEscrowRemapper.sol\";\nimport \"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\";\n\ncontract OmniVotingEscrow is NonblockingLzApp, IOmniVotingEscrow {\n IVotingEscrow public immutable votingEscrow;\n IVotingEscrowRemapper public immutable votingEscrowRemapper;\n\n // Packet types for child chains:\n uint16 PT_USER = 0; // user balance and total supply update\n uint16 PT_TS = 1; // total supply update\n\n event UserBalToChain(uint16 dstChainId, address localUser, address remoteUser, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\n event TotalSupplyToChain(uint16 dstChainId, IVotingEscrow.Point totalSupplyPoint);\n\n constructor(address _lzEndpoint, address _votingEscrowRemapper) NonblockingLzApp(_lzEndpoint) {\n require(_votingEscrowRemapper != address(0x0), \"OmniVotingEscrow: remapper cannot be 0x0\");\n\n votingEscrowRemapper = IVotingEscrowRemapper(_votingEscrowRemapper);\n votingEscrow = votingEscrowRemapper.getVotingEscrow();\n }\n\n function _nonblockingLzReceive(\n uint16, /*_srcChainId*/\n bytes memory, /*_srcAddress*/\n uint64, /*_nonce*/\n bytes memory /*_payload*/\n ) internal virtual override {\n revert(\"OmniVotingEscrow: cannot receive lzMsgs\");\n }\n\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory lzPayload = abi.encode(PT_USER, address(0x0), 0, IVotingEscrow.Point(0, 0, 0, 0), IVotingEscrow.Point(0, 0, 0, 0));\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\n }\n\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\n bytes memory lzPayload = abi.encode(PT_TS, IVotingEscrow.Point(0, 0, 0, 0));\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\n }\n\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\n uint userEpoch = votingEscrow.user_point_epoch(_localUser);\n IVotingEscrow.Point memory uPoint = votingEscrow.user_point_history(_localUser, userEpoch);\n\n uint lockedEnd = votingEscrow.locked__end(_localUser);\n\n // always send total supply along with a user update\n uint totalSupplyEpoch = votingEscrow.epoch();\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n\n address remappedAddress = votingEscrowRemapper.getRemoteUser(_localUser, _dstChainId);\n address remoteUser = remappedAddress != address(0x0) ? remappedAddress : _localUser;\n\n bytes memory lzPayload = abi.encode(PT_USER, remoteUser, lockedEnd, uPoint, tsPoint);\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\n emit UserBalToChain(_dstChainId, _localUser, remoteUser, uPoint, tsPoint);\n }\n\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\n uint totalSupplyEpoch = votingEscrow.epoch();\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n\n // Total supply point may only change if none has checkpointed after the current week has started.\n // If that's the case the checkpoint is performed at this point, before bridging the total supply.\n if (_hasLastCheckpointExpired(tsPoint.ts)) {\n votingEscrow.checkpoint();\n // Get updated point.\n totalSupplyEpoch = votingEscrow.epoch();\n tsPoint = votingEscrow.point_history(totalSupplyEpoch);\n }\n\n bytes memory lzPayload = abi.encode(PT_TS, tsPoint);\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\n emit TotalSupplyToChain(_dstChainId, tsPoint);\n }\n\n function _hasLastCheckpointExpired(uint lastCheckpointTimestamp) internal view returns (bool) {\n // If last checkpoint rounded to weeks + one week is still behind the block timestamp, then it has expired.\n return (lastCheckpointTimestamp / 1 weeks) * 1 weeks + 1 weeks < block.timestamp;\n }\n}\n"},"contracts/OmniVotingEscrowChild.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"./interfaces/IVotingEscrow.sol\";\nimport \"./interfaces/IL2LayerZeroDelegation.sol\";\nimport \"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\";\n\ncontract OmniVotingEscrowChild is NonblockingLzApp {\n mapping(address => uint) public locked__end; // -> end of lock period\n mapping(address => IVotingEscrow.Point) public userPoints; // -> balanceOf\n IVotingEscrow.Point public totalSupplyPoint; // -> totalSupply\n\n // Packet types for child chains:\n uint16 PT_USER = 0; // user balance and total supply update\n uint16 PT_TS = 1; // total supply update\n\n IL2LayerZeroDelegation public immutable delegationHook;\n\n event UserBalFromChain(uint16 srcChainId, address user, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\n event TotalSupplyFromChain(uint16 srcChainId, IVotingEscrow.Point totalSupplyPoint);\n\n constructor(address _lzEndpoint, address _delegationHook) NonblockingLzApp(_lzEndpoint) {\n require(_delegationHook != address(0x0), \"OmniVotingEscrowChild: delegation hook cannot be 0x0\");\n delegationHook = IL2LayerZeroDelegation(_delegationHook);\n }\n\n function _nonblockingLzReceive(\n uint16 _srcChainId,\n bytes memory, /*_srcAddress*/\n uint64, /*_nonce*/\n bytes memory _payload\n ) internal virtual override {\n uint16 packetType;\n assembly {\n packetType := mload(add(_payload, 32))\n }\n\n if (packetType == PT_USER) {\n _updateUserAndTotalSupplyFromChain(_srcChainId, _payload);\n } else if (packetType == PT_TS) {\n _updateTotalSupplyFromChain(_srcChainId, _payload);\n } else {\n revert(\"OmniVotingEscrowChild: unknown packet type\");\n }\n }\n\n function _updateUserAndTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\n (, address _userAddress, uint _lockedEnd, IVotingEscrow.Point memory _userPoint, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, address, uint, IVotingEscrow.Point, IVotingEscrow.Point));\n locked__end[_userAddress] = _lockedEnd;\n userPoints[_userAddress] = _userPoint;\n totalSupplyPoint = _totalSupplyPoint;\n\n delegationHook.onVeBalBridged(_userAddress);\n emit UserBalFromChain(_srcChainId, _userAddress, _userPoint, _totalSupplyPoint);\n }\n\n function _updateTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\n (, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, IVotingEscrow.Point));\n totalSupplyPoint = _totalSupplyPoint;\n\n delegationHook.onVeBalSupplyUpdate();\n emit TotalSupplyFromChain(_srcChainId, _totalSupplyPoint);\n }\n\n function balanceOf(address _user) public view returns (uint) {\n return _getPointValue(userPoints[_user]);\n }\n\n function totalSupply() public view returns (uint) {\n return _getPointValue(totalSupplyPoint);\n }\n\n // external for testing\n function getPointValue(IVotingEscrow.Point memory _point) external view returns (uint) {\n return _getPointValue(_point);\n }\n\n function _getPointValue(IVotingEscrow.Point memory _point) internal view returns (uint) {\n IVotingEscrow.Point memory p = _point;\n\n int128 bias = p.bias - (p.slope * int128(uint128(block.timestamp - p.ts)));\n return bias < 0 ? 0 : uint(uint128(bias));\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","storageLayout","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"errors":[{"component":"general","errorCode":"5740","formattedMessage":"Warning: Unreachable code.\n --> @layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:51:9:\n |\n51 | emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unreachable code.","severity":"warning","sourceLocation":{"end":2850,"file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","start":2779},"type":"Warning"}],"sources":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroUserApplicationConfig":[189]},"id":145,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:0"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","file":"./ILayerZeroUserApplicationConfig.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":145,"sourceUnit":190,"src":"59:47:0","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3,"name":"ILayerZeroUserApplicationConfig","nodeType":"IdentifierPath","referencedDeclaration":189,"src":"140:31:0"},"id":4,"nodeType":"InheritanceSpecifier","src":"140:31:0"}],"canonicalName":"ILayerZeroEndpoint","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":144,"linearizedBaseContracts":[144,189],"name":"ILayerZeroEndpoint","nameLocation":"118:18:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c5803100","id":19,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"923:4:0","nodeType":"FunctionDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6,"mutability":"mutable","name":"_dstChainId","nameLocation":"935:11:0","nodeType":"VariableDeclaration","scope":19,"src":"928:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5,"name":"uint16","nodeType":"ElementaryTypeName","src":"928:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":8,"mutability":"mutable","name":"_destination","nameLocation":"963:12:0","nodeType":"VariableDeclaration","scope":19,"src":"948:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7,"name":"bytes","nodeType":"ElementaryTypeName","src":"948:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10,"mutability":"mutable","name":"_payload","nameLocation":"992:8:0","nodeType":"VariableDeclaration","scope":19,"src":"977:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9,"name":"bytes","nodeType":"ElementaryTypeName","src":"977:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12,"mutability":"mutable","name":"_refundAddress","nameLocation":"1018:14:0","nodeType":"VariableDeclaration","scope":19,"src":"1002:30:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":11,"name":"address","nodeType":"ElementaryTypeName","src":"1002:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":14,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1042:18:0","nodeType":"VariableDeclaration","scope":19,"src":"1034:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16,"mutability":"mutable","name":"_adapterParams","nameLocation":"1077:14:0","nodeType":"VariableDeclaration","scope":19,"src":"1062:29:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15,"name":"bytes","nodeType":"ElementaryTypeName","src":"1062:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"927:165:0"},"returnParameters":{"id":18,"nodeType":"ParameterList","parameters":[],"src":"1109:0:0"},"scope":144,"src":"914:196:0","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"c2fa4813","id":34,"implemented":false,"kind":"function","modifiers":[],"name":"receivePayload","nameLocation":"1602:14:0","nodeType":"FunctionDefinition","parameters":{"id":32,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21,"mutability":"mutable","name":"_srcChainId","nameLocation":"1624:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1617:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20,"name":"uint16","nodeType":"ElementaryTypeName","src":"1617:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"_srcAddress","nameLocation":"1652:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1637:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":22,"name":"bytes","nodeType":"ElementaryTypeName","src":"1637:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"_dstAddress","nameLocation":"1673:11:0","nodeType":"VariableDeclaration","scope":34,"src":"1665:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"1665:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27,"mutability":"mutable","name":"_nonce","nameLocation":"1693:6:0","nodeType":"VariableDeclaration","scope":34,"src":"1686:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":26,"name":"uint64","nodeType":"ElementaryTypeName","src":"1686:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":29,"mutability":"mutable","name":"_gasLimit","nameLocation":"1706:9:0","nodeType":"VariableDeclaration","scope":34,"src":"1701:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28,"name":"uint","nodeType":"ElementaryTypeName","src":"1701:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"_payload","nameLocation":"1732:8:0","nodeType":"VariableDeclaration","scope":34,"src":"1717:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":30,"name":"bytes","nodeType":"ElementaryTypeName","src":"1717:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1616:125:0"},"returnParameters":{"id":33,"nodeType":"ParameterList","parameters":[],"src":"1750:0:0"},"scope":144,"src":"1593:158:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fdc07c70","id":43,"implemented":false,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"1987:15:0","nodeType":"FunctionDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36,"mutability":"mutable","name":"_srcChainId","nameLocation":"2010:11:0","nodeType":"VariableDeclaration","scope":43,"src":"2003:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":35,"name":"uint16","nodeType":"ElementaryTypeName","src":"2003:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":38,"mutability":"mutable","name":"_srcAddress","nameLocation":"2038:11:0","nodeType":"VariableDeclaration","scope":43,"src":"2023:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":37,"name":"bytes","nodeType":"ElementaryTypeName","src":"2023:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2002:48:0"},"returnParameters":{"id":42,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43,"src":"2074:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":40,"name":"uint64","nodeType":"ElementaryTypeName","src":"2074:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2073:8:0"},"scope":144,"src":"1978:104:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7a145748","id":52,"implemented":false,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"2257:16:0","nodeType":"FunctionDefinition","parameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"_dstChainId","nameLocation":"2281:11:0","nodeType":"VariableDeclaration","scope":52,"src":"2274:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44,"name":"uint16","nodeType":"ElementaryTypeName","src":"2274:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47,"mutability":"mutable","name":"_srcAddress","nameLocation":"2302:11:0","nodeType":"VariableDeclaration","scope":52,"src":"2294:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2273:41:0"},"returnParameters":{"id":51,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52,"src":"2338:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49,"name":"uint64","nodeType":"ElementaryTypeName","src":"2338:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2337:8:0"},"scope":144,"src":"2248:98:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"40a7bb10","id":69,"implemented":false,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"2869:12:0","nodeType":"FunctionDefinition","parameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54,"mutability":"mutable","name":"_dstChainId","nameLocation":"2889:11:0","nodeType":"VariableDeclaration","scope":69,"src":"2882:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53,"name":"uint16","nodeType":"ElementaryTypeName","src":"2882:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":56,"mutability":"mutable","name":"_userApplication","nameLocation":"2910:16:0","nodeType":"VariableDeclaration","scope":69,"src":"2902:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55,"name":"address","nodeType":"ElementaryTypeName","src":"2902:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58,"mutability":"mutable","name":"_payload","nameLocation":"2943:8:0","nodeType":"VariableDeclaration","scope":69,"src":"2928:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":57,"name":"bytes","nodeType":"ElementaryTypeName","src":"2928:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":60,"mutability":"mutable","name":"_payInZRO","nameLocation":"2958:9:0","nodeType":"VariableDeclaration","scope":69,"src":"2953:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59,"name":"bool","nodeType":"ElementaryTypeName","src":"2953:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":62,"mutability":"mutable","name":"_adapterParam","nameLocation":"2984:13:0","nodeType":"VariableDeclaration","scope":69,"src":"2969:28:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":61,"name":"bytes","nodeType":"ElementaryTypeName","src":"2969:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2881:117:0"},"returnParameters":{"id":68,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65,"mutability":"mutable","name":"nativeFee","nameLocation":"3027:9:0","nodeType":"VariableDeclaration","scope":69,"src":"3022:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64,"name":"uint","nodeType":"ElementaryTypeName","src":"3022:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67,"mutability":"mutable","name":"zroFee","nameLocation":"3043:6:0","nodeType":"VariableDeclaration","scope":69,"src":"3038:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66,"name":"uint","nodeType":"ElementaryTypeName","src":"3038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:29:0"},"scope":144,"src":"2860:191:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3408e470","id":74,"implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"3129:10:0","nodeType":"FunctionDefinition","parameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"3139:2:0"},"returnParameters":{"id":73,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74,"src":"3165:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":71,"name":"uint16","nodeType":"ElementaryTypeName","src":"3165:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3164:8:0"},"scope":144,"src":"3120:53:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aaff5f16","id":83,"implemented":false,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"3439:12:0","nodeType":"FunctionDefinition","parameters":{"id":81,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76,"mutability":"mutable","name":"_srcChainId","nameLocation":"3459:11:0","nodeType":"VariableDeclaration","scope":83,"src":"3452:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":75,"name":"uint16","nodeType":"ElementaryTypeName","src":"3452:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":78,"mutability":"mutable","name":"_srcAddress","nameLocation":"3487:11:0","nodeType":"VariableDeclaration","scope":83,"src":"3472:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77,"name":"bytes","nodeType":"ElementaryTypeName","src":"3472:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"_payload","nameLocation":"3515:8:0","nodeType":"VariableDeclaration","scope":83,"src":"3500:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79,"name":"bytes","nodeType":"ElementaryTypeName","src":"3500:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3451:73:0"},"returnParameters":{"id":82,"nodeType":"ParameterList","parameters":[],"src":"3533:0:0"},"scope":144,"src":"3430:104:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0eaf6ea6","id":92,"implemented":false,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"3746:16:0","nodeType":"FunctionDefinition","parameters":{"id":88,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85,"mutability":"mutable","name":"_srcChainId","nameLocation":"3770:11:0","nodeType":"VariableDeclaration","scope":92,"src":"3763:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":84,"name":"uint16","nodeType":"ElementaryTypeName","src":"3763:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":87,"mutability":"mutable","name":"_srcAddress","nameLocation":"3798:11:0","nodeType":"VariableDeclaration","scope":92,"src":"3783:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86,"name":"bytes","nodeType":"ElementaryTypeName","src":"3783:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3762:48:0"},"returnParameters":{"id":91,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92,"src":"3834:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89,"name":"bool","nodeType":"ElementaryTypeName","src":"3834:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3833:6:0"},"scope":144,"src":"3737:103:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9c729da1","id":99,"implemented":false,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"3998:21:0","nodeType":"FunctionDefinition","parameters":{"id":95,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94,"mutability":"mutable","name":"_userApplication","nameLocation":"4028:16:0","nodeType":"VariableDeclaration","scope":99,"src":"4020:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93,"name":"address","nodeType":"ElementaryTypeName","src":"4020:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4019:26:0"},"returnParameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99,"src":"4069:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"4069:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4068:9:0"},"scope":144,"src":"3989:89:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"71ba2fd6","id":106,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"4238:24:0","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"_userApplication","nameLocation":"4271:16:0","nodeType":"VariableDeclaration","scope":106,"src":"4263:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"4263:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4262:26:0"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":106,"src":"4312:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":103,"name":"address","nodeType":"ElementaryTypeName","src":"4312:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4311:9:0"},"scope":144,"src":"4229:92:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e97a448a","id":111,"implemented":false,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"4458:16:0","nodeType":"FunctionDefinition","parameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"4474:2:0"},"returnParameters":{"id":110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":111,"src":"4500:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":108,"name":"bool","nodeType":"ElementaryTypeName","src":"4500:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4499:6:0"},"scope":144,"src":"4449:57:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ca066b35","id":116,"implemented":false,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"4646:18:0","nodeType":"FunctionDefinition","parameters":{"id":112,"nodeType":"ParameterList","parameters":[],"src":"4664:2:0"},"returnParameters":{"id":115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":116,"src":"4690:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":113,"name":"bool","nodeType":"ElementaryTypeName","src":"4690:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4689:6:0"},"scope":144,"src":"4637:59:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f5ecbdbc","id":129,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"5103:9:0","nodeType":"FunctionDefinition","parameters":{"id":125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"_version","nameLocation":"5120:8:0","nodeType":"VariableDeclaration","scope":129,"src":"5113:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":117,"name":"uint16","nodeType":"ElementaryTypeName","src":"5113:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":120,"mutability":"mutable","name":"_chainId","nameLocation":"5137:8:0","nodeType":"VariableDeclaration","scope":129,"src":"5130:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":119,"name":"uint16","nodeType":"ElementaryTypeName","src":"5130:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":122,"mutability":"mutable","name":"_userApplication","nameLocation":"5155:16:0","nodeType":"VariableDeclaration","scope":129,"src":"5147:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"5147:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":124,"mutability":"mutable","name":"_configType","nameLocation":"5178:11:0","nodeType":"VariableDeclaration","scope":129,"src":"5173:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint","nodeType":"ElementaryTypeName","src":"5173:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5112:78:0"},"returnParameters":{"id":128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":129,"src":"5214:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":126,"name":"bytes","nodeType":"ElementaryTypeName","src":"5214:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5213:14:0"},"scope":144,"src":"5094:134:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"096568f6","id":136,"implemented":false,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"5387:14:0","nodeType":"FunctionDefinition","parameters":{"id":132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"_userApplication","nameLocation":"5410:16:0","nodeType":"VariableDeclaration","scope":136,"src":"5402:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":130,"name":"address","nodeType":"ElementaryTypeName","src":"5402:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5401:26:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":134,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":136,"src":"5451:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":133,"name":"uint16","nodeType":"ElementaryTypeName","src":"5451:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5450:8:0"},"scope":144,"src":"5378:81:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"da1a7c9a","id":143,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"5623:17:0","nodeType":"FunctionDefinition","parameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"_userApplication","nameLocation":"5649:16:0","nodeType":"VariableDeclaration","scope":143,"src":"5641:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5640:26:0"},"returnParameters":{"id":142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":143,"src":"5690:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":140,"name":"uint16","nodeType":"ElementaryTypeName","src":"5690:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5689:8:0"},"scope":144,"src":"5614:84:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":145,"src":"108:5592:0","usedErrors":[]}],"src":"33:5668:0"},"id":0},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[158]},"id":159,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":146,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":158,"linearizedBaseContracts":[158],"name":"ILayerZeroReceiver","nameLocation":"69:18:1","nodeType":"ContractDefinition","nodes":[{"functionSelector":"001d3567","id":157,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"482:9:1","nodeType":"FunctionDefinition","parameters":{"id":155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":148,"mutability":"mutable","name":"_srcChainId","nameLocation":"499:11:1","nodeType":"VariableDeclaration","scope":157,"src":"492:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":147,"name":"uint16","nodeType":"ElementaryTypeName","src":"492:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":150,"mutability":"mutable","name":"_srcAddress","nameLocation":"527:11:1","nodeType":"VariableDeclaration","scope":157,"src":"512:26:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":149,"name":"bytes","nodeType":"ElementaryTypeName","src":"512:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":152,"mutability":"mutable","name":"_nonce","nameLocation":"547:6:1","nodeType":"VariableDeclaration","scope":157,"src":"540:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":151,"name":"uint64","nodeType":"ElementaryTypeName","src":"540:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":154,"mutability":"mutable","name":"_payload","nameLocation":"570:8:1","nodeType":"VariableDeclaration","scope":157,"src":"555:23:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":153,"name":"bytes","nodeType":"ElementaryTypeName","src":"555:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"491:88:1"},"returnParameters":{"id":156,"nodeType":"ParameterList","parameters":[],"src":"588:0:1"},"scope":158,"src":"473:116:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":159,"src":"59:532:1","usedErrors":[]}],"src":"33:559:1"},"id":1},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","exportedSymbols":{"ILayerZeroUserApplicationConfig":[189]},"id":190,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":160,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:2"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroUserApplicationConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":189,"linearizedBaseContracts":[189],"name":"ILayerZeroUserApplicationConfig","nameLocation":"69:31:2","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cbed8b9c","id":171,"implemented":false,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"512:9:2","nodeType":"FunctionDefinition","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":162,"mutability":"mutable","name":"_version","nameLocation":"529:8:2","nodeType":"VariableDeclaration","scope":171,"src":"522:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":161,"name":"uint16","nodeType":"ElementaryTypeName","src":"522:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":164,"mutability":"mutable","name":"_chainId","nameLocation":"546:8:2","nodeType":"VariableDeclaration","scope":171,"src":"539:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":163,"name":"uint16","nodeType":"ElementaryTypeName","src":"539:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":166,"mutability":"mutable","name":"_configType","nameLocation":"561:11:2","nodeType":"VariableDeclaration","scope":171,"src":"556:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":165,"name":"uint","nodeType":"ElementaryTypeName","src":"556:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":168,"mutability":"mutable","name":"_config","nameLocation":"589:7:2","nodeType":"VariableDeclaration","scope":171,"src":"574:22:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":167,"name":"bytes","nodeType":"ElementaryTypeName","src":"574:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"521:76:2"},"returnParameters":{"id":170,"nodeType":"ParameterList","parameters":[],"src":"606:0:2"},"scope":189,"src":"503:104:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"07e0db17","id":176,"implemented":false,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"755:14:2","nodeType":"FunctionDefinition","parameters":{"id":174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173,"mutability":"mutable","name":"_version","nameLocation":"777:8:2","nodeType":"VariableDeclaration","scope":176,"src":"770:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":172,"name":"uint16","nodeType":"ElementaryTypeName","src":"770:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"769:17:2"},"returnParameters":{"id":175,"nodeType":"ParameterList","parameters":[],"src":"795:0:2"},"scope":189,"src":"746:50:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"10ddb137","id":181,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"949:17:2","nodeType":"FunctionDefinition","parameters":{"id":179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"_version","nameLocation":"974:8:2","nodeType":"VariableDeclaration","scope":181,"src":"967:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":177,"name":"uint16","nodeType":"ElementaryTypeName","src":"967:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"966:17:2"},"returnParameters":{"id":180,"nodeType":"ParameterList","parameters":[],"src":"992:0:2"},"scope":189,"src":"940:53:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"42d65a8d","id":188,"implemented":false,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"1271:18:2","nodeType":"FunctionDefinition","parameters":{"id":186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":183,"mutability":"mutable","name":"_srcChainId","nameLocation":"1297:11:2","nodeType":"VariableDeclaration","scope":188,"src":"1290:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":182,"name":"uint16","nodeType":"ElementaryTypeName","src":"1290:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":185,"mutability":"mutable","name":"_srcAddress","nameLocation":"1325:11:2","nodeType":"VariableDeclaration","scope":188,"src":"1310:26:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":184,"name":"bytes","nodeType":"ElementaryTypeName","src":"1310:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1289:48:2"},"returnParameters":{"id":187,"nodeType":"ParameterList","parameters":[],"src":"1346:0:2"},"scope":189,"src":"1262:85:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":190,"src":"59:1290:2","usedErrors":[]}],"src":"33:1317:2"},"id":2},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol","exportedSymbols":{"LzLib":[427]},"id":428,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":191,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"38:24:3"},{"id":192,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"63:33:3"},{"abstract":false,"baseContracts":[],"canonicalName":"LzLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":427,"linearizedBaseContracts":[427],"name":"LzLib","nameLocation":"106:5:3","nodeType":"ContractDefinition","nodes":[{"canonicalName":"LzLib.CallParams","id":197,"members":[{"constant":false,"id":194,"mutability":"mutable","name":"refundAddress","nameLocation":"193:13:3","nodeType":"VariableDeclaration","scope":197,"src":"177:29:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"177:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":196,"mutability":"mutable","name":"zroPaymentAddress","nameLocation":"224:17:3","nodeType":"VariableDeclaration","scope":197,"src":"216:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":195,"name":"address","nodeType":"ElementaryTypeName","src":"216:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"CallParams","nameLocation":"156:10:3","nodeType":"StructDefinition","scope":427,"src":"149:99:3","visibility":"public"},{"canonicalName":"LzLib.AirdropParams","id":202,"members":[{"constant":false,"id":199,"mutability":"mutable","name":"airdropAmount","nameLocation":"402:13:3","nodeType":"VariableDeclaration","scope":202,"src":"397:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":198,"name":"uint","nodeType":"ElementaryTypeName","src":"397:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":201,"mutability":"mutable","name":"airdropAddress","nameLocation":"433:14:3","nodeType":"VariableDeclaration","scope":202,"src":"425:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"425:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"AirdropParams","nameLocation":"373:13:3","nodeType":"StructDefinition","scope":427,"src":"366:88:3","visibility":"public"},{"body":{"id":240,"nodeType":"Block","src":"600:284:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":212,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"614:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"614:28:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"614:33:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":216,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"651:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"651:29:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"692:3:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:3","typeDescriptions":{}}},"id":221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"684:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"651:45:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"614:82:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":238,"nodeType":"Block","src":"783:95:3","statements":[{"expression":{"id":236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":231,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":210,"src":"797:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":233,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"839:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":234,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"852:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}],"id":232,"name":"buildAirdropAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"813:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_struct$_AirdropParams_$202_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,struct LzLib.AirdropParams memory) pure returns (bytes memory)"}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"813:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"797:70:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":237,"nodeType":"ExpressionStatement","src":"797:70:3"}]},"id":239,"nodeType":"IfStatement","src":"610:268:3","trueBody":{"id":230,"nodeType":"Block","src":"698:79:3","statements":[{"expression":{"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":224,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":210,"src":"712:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":226,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"754:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":225,"name":"buildDefaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"728:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"728:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"712:54:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":229,"nodeType":"ExpressionStatement","src":"712:54:3"}]}}]},"id":241,"implemented":true,"kind":"function","modifiers":[],"name":"buildAdapterParams","nameLocation":"469:18:3","nodeType":"FunctionDefinition","parameters":{"id":208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":205,"mutability":"mutable","name":"_airdropParams","nameLocation":"515:14:3","nodeType":"VariableDeclaration","scope":241,"src":"488:41:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":204,"nodeType":"UserDefinedTypeName","pathNode":{"id":203,"name":"LzLib.AirdropParams","nodeType":"IdentifierPath","referencedDeclaration":202,"src":"488:19:3"},"referencedDeclaration":202,"src":"488:19:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"},{"constant":false,"id":207,"mutability":"mutable","name":"_uaGasLimit","nameLocation":"536:11:3","nodeType":"VariableDeclaration","scope":241,"src":"531:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206,"name":"uint","nodeType":"ElementaryTypeName","src":"531:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"487:61:3"},"returnParameters":{"id":211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":210,"mutability":"mutable","name":"adapterParams","nameLocation":"585:13:3","nodeType":"VariableDeclaration","scope":241,"src":"572:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":209,"name":"bytes","nodeType":"ElementaryTypeName","src":"572:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"571:28:3"},"scope":427,"src":"460:424:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":257,"nodeType":"Block","src":"1003:153:3","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"31","id":252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1131:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":250,"name":"uint16","nodeType":"ElementaryTypeName","src":"1131:6:3","typeDescriptions":{}}},"id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1131:9:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":254,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":243,"src":"1142:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":248,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1114:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1114:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1114:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":247,"id":256,"nodeType":"Return","src":"1107:42:3"}]},"id":258,"implemented":true,"kind":"function","modifiers":[],"name":"buildDefaultAdapterParams","nameLocation":"927:25:3","nodeType":"FunctionDefinition","parameters":{"id":244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":243,"mutability":"mutable","name":"_uaGas","nameLocation":"958:6:3","nodeType":"VariableDeclaration","scope":258,"src":"953:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":242,"name":"uint","nodeType":"ElementaryTypeName","src":"953:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:13:3"},"returnParameters":{"id":247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":258,"src":"989:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":245,"name":"bytes","nodeType":"ElementaryTypeName","src":"989:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"988:14:3"},"scope":427,"src":"918:238:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":300,"nodeType":"Block","src":"1277:438:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":269,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1295:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"1295:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1319:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1295:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f7020616d6f756e74206d7573742062652067726561746572207468616e2030","id":273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:39:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""},"value":"Airdrop amount must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""}],"id":268,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1287:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1287:75:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":275,"nodeType":"ExpressionStatement","src":"1287:75:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":277,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1380:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"1380:22:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1414:3:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1406:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:3","typeDescriptions":{}}},"id":282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1406:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1380:38:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f702061646472657373206d75737420626520736574","id":284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1420:29:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""},"value":"Airdrop address must be set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""}],"id":276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1372:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1372:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":286,"nodeType":"ExpressionStatement","src":"1372:78:3"},{"expression":{"arguments":[{"arguments":[{"hexValue":"32","id":291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1650:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1643:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":289,"name":"uint16","nodeType":"ElementaryTypeName","src":"1643:6:3","typeDescriptions":{}}},"id":292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1643:9:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":293,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"1654:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":294,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1662:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":199,"src":"1662:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":296,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1685:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":201,"src":"1685:22:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":287,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1626:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1626:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1626:82:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":267,"id":299,"nodeType":"Return","src":"1619:89:3"}]},"id":301,"implemented":true,"kind":"function","modifiers":[],"name":"buildAirdropAdapterParams","nameLocation":"1171:25:3","nodeType":"FunctionDefinition","parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"_uaGas","nameLocation":"1202:6:3","nodeType":"VariableDeclaration","scope":301,"src":"1197:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":259,"name":"uint","nodeType":"ElementaryTypeName","src":"1197:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":263,"mutability":"mutable","name":"_params","nameLocation":"1231:7:3","nodeType":"VariableDeclaration","scope":301,"src":"1210:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":262,"nodeType":"UserDefinedTypeName","pathNode":{"id":261,"name":"AirdropParams","nodeType":"IdentifierPath","referencedDeclaration":202,"src":"1210:13:3"},"referencedDeclaration":202,"src":"1210:13:3","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$202_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"}],"src":"1196:43:3"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":301,"src":"1263:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":265,"name":"bytes","nodeType":"ElementaryTypeName","src":"1263:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1262:14:3"},"scope":427,"src":"1162:553:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":322,"nodeType":"Block","src":"1809:192:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":309,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"1827:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1827:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:2:3","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"1827:27:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":313,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"1858:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1858:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1882:2:3","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"1858:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1827:57:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1886:23:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1819:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1819:91:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":320,"nodeType":"ExpressionStatement","src":"1819:91:3"},{"AST":{"nodeType":"YulBlock","src":"1929:66:3","statements":[{"nodeType":"YulAssignment","src":"1943:42:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"1965:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"1981:2:3","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1961:3:3"},"nodeType":"YulFunctionCall","src":"1961:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1955:5:3"},"nodeType":"YulFunctionCall","src":"1955:30:3"},"variableNames":[{"name":"gasLimit","nodeType":"YulIdentifier","src":"1943:8:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":303,"isOffset":false,"isSlot":false,"src":"1965:14:3","valueSize":1},{"declaration":306,"isOffset":false,"isSlot":false,"src":"1943:8:3","valueSize":1}],"id":321,"nodeType":"InlineAssembly","src":"1920:75:3"}]},"id":323,"implemented":true,"kind":"function","modifiers":[],"name":"getGasLimit","nameLocation":"1730:11:3","nodeType":"FunctionDefinition","parameters":{"id":304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":303,"mutability":"mutable","name":"_adapterParams","nameLocation":"1755:14:3","nodeType":"VariableDeclaration","scope":323,"src":"1742:27:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":302,"name":"bytes","nodeType":"ElementaryTypeName","src":"1742:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1741:29:3"},"returnParameters":{"id":307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":306,"mutability":"mutable","name":"gasLimit","nameLocation":"1799:8:3","nodeType":"VariableDeclaration","scope":323,"src":"1794:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":305,"name":"uint","nodeType":"ElementaryTypeName","src":"1794:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1793:15:3"},"scope":427,"src":"1721:280:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":374,"nodeType":"Block","src":"2196:555:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":337,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"2214:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2214:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2239:2:3","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"2214:27:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":341,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"2245:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2245:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2269:2:3","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"2245:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2214:57:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2273:23:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":336,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2206:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2206:91:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":348,"nodeType":"ExpressionStatement","src":"2206:91:3"},{"AST":{"nodeType":"YulBlock","src":"2316:115:3","statements":[{"nodeType":"YulAssignment","src":"2330:39:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2350:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2366:1:3","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2346:3:3"},"nodeType":"YulFunctionCall","src":"2346:22:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2340:5:3"},"nodeType":"YulFunctionCall","src":"2340:29:3"},"variableNames":[{"name":"txType","nodeType":"YulIdentifier","src":"2330:6:3"}]},{"nodeType":"YulAssignment","src":"2382:39:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2401:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2417:2:3","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2397:3:3"},"nodeType":"YulFunctionCall","src":"2397:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2391:5:3"},"nodeType":"YulFunctionCall","src":"2391:30:3"},"variableNames":[{"name":"uaGas","nodeType":"YulIdentifier","src":"2382:5:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":325,"isOffset":false,"isSlot":false,"src":"2350:14:3","valueSize":1},{"declaration":325,"isOffset":false,"isSlot":false,"src":"2401:14:3","valueSize":1},{"declaration":328,"isOffset":false,"isSlot":false,"src":"2330:6:3","valueSize":1},{"declaration":330,"isOffset":false,"isSlot":false,"src":"2382:5:3","valueSize":1}],"id":349,"nodeType":"InlineAssembly","src":"2307:124:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":351,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2448:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2458:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2448:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":354,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2463:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2473:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2463:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2448:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e737570706f7274656420747854797065","id":358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2476:20:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""},"value":"Unsupported txType"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""}],"id":350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2440:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:57:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":360,"nodeType":"ExpressionStatement","src":"2440:57:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":362,"name":"uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"2515:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2523:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2515:9:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617320746f6f206c6f77","id":365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2526:13:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""},"value":"Gas too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""}],"id":361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2507:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":367,"nodeType":"ExpressionStatement","src":"2507:33:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":368,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":328,"src":"2555:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2565:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2555:11:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":373,"nodeType":"IfStatement","src":"2551:194:3","trueBody":{"id":372,"nodeType":"Block","src":"2568:177:3","statements":[{"AST":{"nodeType":"YulBlock","src":"2591:144:3","statements":[{"nodeType":"YulAssignment","src":"2609:47:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2636:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2652:2:3","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2632:3:3"},"nodeType":"YulFunctionCall","src":"2632:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2626:5:3"},"nodeType":"YulFunctionCall","src":"2626:30:3"},"variableNames":[{"name":"airdropAmount","nodeType":"YulIdentifier","src":"2609:13:3"}]},{"nodeType":"YulAssignment","src":"2673:48:3","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"2701:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"2717:2:3","type":"","value":"86"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2697:3:3"},"nodeType":"YulFunctionCall","src":"2697:23:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2691:5:3"},"nodeType":"YulFunctionCall","src":"2691:30:3"},"variableNames":[{"name":"airdropAddress","nodeType":"YulIdentifier","src":"2673:14:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":325,"isOffset":false,"isSlot":false,"src":"2636:14:3","valueSize":1},{"declaration":325,"isOffset":false,"isSlot":false,"src":"2701:14:3","valueSize":1},{"declaration":334,"isOffset":false,"isSlot":false,"src":"2673:14:3","valueSize":1},{"declaration":332,"isOffset":false,"isSlot":false,"src":"2609:13:3","valueSize":1}],"id":371,"nodeType":"InlineAssembly","src":"2582:153:3"}]}}]},"id":375,"implemented":true,"kind":"function","modifiers":[],"name":"decodeAdapterParams","nameLocation":"2045:19:3","nodeType":"FunctionDefinition","parameters":{"id":326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":325,"mutability":"mutable","name":"_adapterParams","nameLocation":"2078:14:3","nodeType":"VariableDeclaration","scope":375,"src":"2065:27:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":324,"name":"bytes","nodeType":"ElementaryTypeName","src":"2065:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2064:29:3"},"returnParameters":{"id":335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":328,"mutability":"mutable","name":"txType","nameLocation":"2124:6:3","nodeType":"VariableDeclaration","scope":375,"src":"2117:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":327,"name":"uint16","nodeType":"ElementaryTypeName","src":"2117:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":330,"mutability":"mutable","name":"uaGas","nameLocation":"2137:5:3","nodeType":"VariableDeclaration","scope":375,"src":"2132:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":329,"name":"uint","nodeType":"ElementaryTypeName","src":"2132:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":332,"mutability":"mutable","name":"airdropAmount","nameLocation":"2149:13:3","nodeType":"VariableDeclaration","scope":375,"src":"2144:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":331,"name":"uint","nodeType":"ElementaryTypeName","src":"2144:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":334,"mutability":"mutable","name":"airdropAddress","nameLocation":"2180:14:3","nodeType":"VariableDeclaration","scope":375,"src":"2164:30:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":333,"name":"address","nodeType":"ElementaryTypeName","src":"2164:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"2116:79:3"},"scope":427,"src":"2036:715:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":406,"nodeType":"Block","src":"2981:173:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"id":391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":385,"name":"_bytes32Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"3007:15:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2999:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":383,"name":"bytes12","nodeType":"ElementaryTypeName","src":"2999:7:3","typeDescriptions":{}}},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2999:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3035:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3027:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":387,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3027:7:3","typeDescriptions":{}}},"id":390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3027:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"src":"2999:38:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646472657373","id":392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3039:17:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""},"value":"Invalid address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226","typeString":"literal_string \"Invalid address\""}],"id":382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2991:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2991:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":394,"nodeType":"ExpressionStatement","src":"2991:66:3"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":401,"name":"_bytes32Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"3129:15:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3124:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":399,"name":"uint","nodeType":"ElementaryTypeName","src":"3124:4:3","typeDescriptions":{}}},"id":402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3124:21:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3116:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":397,"name":"uint160","nodeType":"ElementaryTypeName","src":"3116:7:3","typeDescriptions":{}}},"id":403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3116:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3108:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":395,"name":"address","nodeType":"ElementaryTypeName","src":"3108:7:3","typeDescriptions":{}}},"id":404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3108:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":381,"id":405,"nodeType":"Return","src":"3101:46:3"}]},"id":407,"implemented":true,"kind":"function","modifiers":[],"name":"bytes32ToAddress","nameLocation":"2898:16:3","nodeType":"FunctionDefinition","parameters":{"id":378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":377,"mutability":"mutable","name":"_bytes32Address","nameLocation":"2923:15:3","nodeType":"VariableDeclaration","scope":407,"src":"2915:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2915:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2914:25:3"},"returnParameters":{"id":381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":380,"mutability":"mutable","name":"_address","nameLocation":"2971:8:3","nodeType":"VariableDeclaration","scope":407,"src":"2963:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":379,"name":"address","nodeType":"ElementaryTypeName","src":"2963:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2962:18:3"},"scope":427,"src":"2889:265:3","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":425,"nodeType":"Block","src":"3252:56:3","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":420,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":409,"src":"3290:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3282:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":418,"name":"uint160","nodeType":"ElementaryTypeName","src":"3282:7:3","typeDescriptions":{}}},"id":421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3282:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3277:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":416,"name":"uint","nodeType":"ElementaryTypeName","src":"3277:4:3","typeDescriptions":{}}},"id":422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3277:23:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3269:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3269:7:3","typeDescriptions":{}}},"id":423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3269:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":413,"id":424,"nodeType":"Return","src":"3262:39:3"}]},"id":426,"implemented":true,"kind":"function","modifiers":[],"name":"addressToBytes32","nameLocation":"3169:16:3","nodeType":"FunctionDefinition","parameters":{"id":410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":409,"mutability":"mutable","name":"_address","nameLocation":"3194:8:3","nodeType":"VariableDeclaration","scope":426,"src":"3186:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":408,"name":"address","nodeType":"ElementaryTypeName","src":"3186:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3185:18:3"},"returnParameters":{"id":413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":412,"mutability":"mutable","name":"_bytes32Address","nameLocation":"3235:15:3","nodeType":"VariableDeclaration","scope":426,"src":"3227:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3227:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3226:25:3"},"scope":427,"src":"3160:148:3","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":428,"src":"98:3212:3","usedErrors":[]}],"src":"38:3273:3"},"id":3},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LzApp":[917],"Ownable":[2996]},"id":918,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":429,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:4"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":2997,"src":"58:52:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","file":"../interfaces/ILayerZeroReceiver.sol","id":431,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":159,"src":"111:46:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol","file":"../interfaces/ILayerZeroUserApplicationConfig.sol","id":432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":190,"src":"158:59:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","file":"../interfaces/ILayerZeroEndpoint.sol","id":433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":145,"src":"218:46:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol","file":"../util/BytesLib.sol","id":434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":918,"sourceUnit":2787,"src":"265:30:4","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":435,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":2996,"src":"370:7:4"},"id":436,"nodeType":"InheritanceSpecifier","src":"370:7:4"},{"baseName":{"id":437,"name":"ILayerZeroReceiver","nodeType":"IdentifierPath","referencedDeclaration":158,"src":"379:18:4"},"id":438,"nodeType":"InheritanceSpecifier","src":"379:18:4"},{"baseName":{"id":439,"name":"ILayerZeroUserApplicationConfig","nodeType":"IdentifierPath","referencedDeclaration":189,"src":"399:31:4"},"id":440,"nodeType":"InheritanceSpecifier","src":"399:31:4"}],"canonicalName":"LzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":917,"linearizedBaseContracts":[917,189,158,2996,3708],"name":"LzApp","nameLocation":"361:5:4","nodeType":"ContractDefinition","nodes":[{"id":443,"libraryName":{"id":441,"name":"BytesLib","nodeType":"IdentifierPath","referencedDeclaration":2786,"src":"443:8:4"},"nodeType":"UsingForDirective","src":"437:25:4","typeName":{"id":442,"name":"bytes","nodeType":"ElementaryTypeName","src":"456:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":false,"functionSelector":"b353aaa7","id":446,"mutability":"immutable","name":"lzEndpoint","nameLocation":"504:10:4","nodeType":"VariableDeclaration","scope":917,"src":"468:46:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":445,"nodeType":"UserDefinedTypeName","pathNode":{"id":444,"name":"ILayerZeroEndpoint","nodeType":"IdentifierPath","referencedDeclaration":144,"src":"468:18:4"},"referencedDeclaration":144,"src":"468:18:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"visibility":"public"},{"constant":false,"functionSelector":"7533d788","id":450,"mutability":"mutable","name":"trustedRemoteLookup","nameLocation":"552:19:4","nodeType":"VariableDeclaration","scope":917,"src":"520:51:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"typeName":{"id":449,"keyType":{"id":447,"name":"uint16","nodeType":"ElementaryTypeName","src":"528:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"520:24:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"valueType":{"id":448,"name":"bytes","nodeType":"ElementaryTypeName","src":"538:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"visibility":"public"},{"constant":false,"functionSelector":"8cfd8f5c","id":456,"mutability":"mutable","name":"minDstGasLookup","nameLocation":"627:15:4","nodeType":"VariableDeclaration","scope":917,"src":"577:65:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"typeName":{"id":455,"keyType":{"id":451,"name":"uint16","nodeType":"ElementaryTypeName","src":"585:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"577:42:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"valueType":{"id":454,"keyType":{"id":452,"name":"uint16","nodeType":"ElementaryTypeName","src":"603:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"595:23:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueType":{"id":453,"name":"uint","nodeType":"ElementaryTypeName","src":"613:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"950c8a74","id":458,"mutability":"mutable","name":"precrime","nameLocation":"663:8:4","nodeType":"VariableDeclaration","scope":917,"src":"648:23:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":457,"name":"address","nodeType":"ElementaryTypeName","src":"648:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"id":462,"name":"SetPrecrime","nameLocation":"684:11:4","nodeType":"EventDefinition","parameters":{"id":461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":460,"indexed":false,"mutability":"mutable","name":"precrime","nameLocation":"704:8:4","nodeType":"VariableDeclaration","scope":462,"src":"696:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":459,"name":"address","nodeType":"ElementaryTypeName","src":"696:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"695:18:4"},"src":"678:36:4"},{"anonymous":false,"id":468,"name":"SetTrustedRemote","nameLocation":"725:16:4","nodeType":"EventDefinition","parameters":{"id":467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"749:14:4","nodeType":"VariableDeclaration","scope":468,"src":"742:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":463,"name":"uint16","nodeType":"ElementaryTypeName","src":"742:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":466,"indexed":false,"mutability":"mutable","name":"_path","nameLocation":"771:5:4","nodeType":"VariableDeclaration","scope":468,"src":"765:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":465,"name":"bytes","nodeType":"ElementaryTypeName","src":"765:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"741:36:4"},"src":"719:59:4"},{"anonymous":false,"id":474,"name":"SetTrustedRemoteAddress","nameLocation":"789:23:4","nodeType":"EventDefinition","parameters":{"id":473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":470,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"820:14:4","nodeType":"VariableDeclaration","scope":474,"src":"813:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":469,"name":"uint16","nodeType":"ElementaryTypeName","src":"813:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":472,"indexed":false,"mutability":"mutable","name":"_remoteAddress","nameLocation":"842:14:4","nodeType":"VariableDeclaration","scope":474,"src":"836:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":471,"name":"bytes","nodeType":"ElementaryTypeName","src":"836:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"812:45:4"},"src":"783:75:4"},{"anonymous":false,"id":482,"name":"SetMinDstGas","nameLocation":"869:12:4","nodeType":"EventDefinition","parameters":{"id":481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":476,"indexed":false,"mutability":"mutable","name":"_dstChainId","nameLocation":"889:11:4","nodeType":"VariableDeclaration","scope":482,"src":"882:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":475,"name":"uint16","nodeType":"ElementaryTypeName","src":"882:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":478,"indexed":false,"mutability":"mutable","name":"_type","nameLocation":"909:5:4","nodeType":"VariableDeclaration","scope":482,"src":"902:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":477,"name":"uint16","nodeType":"ElementaryTypeName","src":"902:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":480,"indexed":false,"mutability":"mutable","name":"_minDstGas","nameLocation":"921:10:4","nodeType":"VariableDeclaration","scope":482,"src":"916:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":479,"name":"uint","nodeType":"ElementaryTypeName","src":"916:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"881:51:4"},"src":"863:70:4"},{"body":{"id":493,"nodeType":"Block","src":"970:59:4","statements":[{"expression":{"id":491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":487,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"980:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":489,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"1012:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":488,"name":"ILayerZeroEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"993:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroEndpoint_$144_$","typeString":"type(contract ILayerZeroEndpoint)"}},"id":490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"993:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"src":"980:42:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":492,"nodeType":"ExpressionStatement","src":"980:42:4"}]},"id":494,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":484,"mutability":"mutable","name":"_endpoint","nameLocation":"959:9:4","nodeType":"VariableDeclaration","scope":494,"src":"951:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":483,"name":"address","nodeType":"ElementaryTypeName","src":"951:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"950:19:4"},"returnParameters":{"id":486,"nodeType":"ParameterList","parameters":[],"src":"970:0:4"},"scope":917,"src":"939:90:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[157],"body":{"id":552,"nodeType":"Block","src":"1166:622:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":507,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1249:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1249:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":511,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"1273:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}],"id":510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1265:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":509,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:4","typeDescriptions":{}}},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1265:19:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1249:35:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","id":514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1286:32:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""},"value":"LzApp: invalid endpoint caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""}],"id":506,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1241:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1241:78:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":516,"nodeType":"ExpressionStatement","src":"1241:78:4"},{"assignments":[518],"declarations":[{"constant":false,"id":518,"mutability":"mutable","name":"trustedRemote","nameLocation":"1343:13:4","nodeType":"VariableDeclaration","scope":552,"src":"1330:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":517,"name":"bytes","nodeType":"ElementaryTypeName","src":"1330:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":522,"initialValue":{"baseExpression":{"id":519,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"1359:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":521,"indexExpression":{"id":520,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"1379:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1359:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1330:61:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":524,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1541:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1541:18:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":526,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1563:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1563:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1541:42:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":529,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1587:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1587:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1610:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1587:24:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1541:70:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":535,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1625:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":534,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1615:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1615:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":538,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"1651:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":537,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1641:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1641:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1615:50:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1541:124:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6e7472616374","id":542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1667:40:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""},"value":"LzApp: invalid source sending contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""}],"id":523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1533:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1533:175:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":544,"nodeType":"ExpressionStatement","src":"1533:175:4"},{"expression":{"arguments":[{"id":546,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"1738:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":547,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"1751:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":548,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"1764:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":549,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"1772:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":545,"name":"_blockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":564,"src":"1719:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1719:62:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":551,"nodeType":"ExpressionStatement","src":"1719:62:4"}]},"functionSelector":"001d3567","id":553,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"1044:9:4","nodeType":"FunctionDefinition","overrides":{"id":504,"nodeType":"OverrideSpecifier","overrides":[],"src":"1157:8:4"},"parameters":{"id":503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":496,"mutability":"mutable","name":"_srcChainId","nameLocation":"1061:11:4","nodeType":"VariableDeclaration","scope":553,"src":"1054:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":495,"name":"uint16","nodeType":"ElementaryTypeName","src":"1054:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":498,"mutability":"mutable","name":"_srcAddress","nameLocation":"1089:11:4","nodeType":"VariableDeclaration","scope":553,"src":"1074:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":497,"name":"bytes","nodeType":"ElementaryTypeName","src":"1074:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":500,"mutability":"mutable","name":"_nonce","nameLocation":"1109:6:4","nodeType":"VariableDeclaration","scope":553,"src":"1102:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":499,"name":"uint64","nodeType":"ElementaryTypeName","src":"1102:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":502,"mutability":"mutable","name":"_payload","nameLocation":"1132:8:4","nodeType":"VariableDeclaration","scope":553,"src":"1117:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":501,"name":"bytes","nodeType":"ElementaryTypeName","src":"1117:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1053:88:4"},"returnParameters":{"id":505,"nodeType":"ParameterList","parameters":[],"src":"1166:0:4"},"scope":917,"src":"1035:753:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":564,"implemented":false,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"1946:18:4","nodeType":"FunctionDefinition","parameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":555,"mutability":"mutable","name":"_srcChainId","nameLocation":"1972:11:4","nodeType":"VariableDeclaration","scope":564,"src":"1965:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":554,"name":"uint16","nodeType":"ElementaryTypeName","src":"1965:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":557,"mutability":"mutable","name":"_srcAddress","nameLocation":"1998:11:4","nodeType":"VariableDeclaration","scope":564,"src":"1985:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":556,"name":"bytes","nodeType":"ElementaryTypeName","src":"1985:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":559,"mutability":"mutable","name":"_nonce","nameLocation":"2018:6:4","nodeType":"VariableDeclaration","scope":564,"src":"2011:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":558,"name":"uint64","nodeType":"ElementaryTypeName","src":"2011:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":561,"mutability":"mutable","name":"_payload","nameLocation":"2039:8:4","nodeType":"VariableDeclaration","scope":564,"src":"2026:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":560,"name":"bytes","nodeType":"ElementaryTypeName","src":"2026:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1964:84:4"},"returnParameters":{"id":563,"nodeType":"ParameterList","parameters":[],"src":"2065:0:4"},"scope":917,"src":"1937:129:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":606,"nodeType":"Block","src":"2255:308:4","statements":[{"assignments":[580],"declarations":[{"constant":false,"id":580,"mutability":"mutable","name":"trustedRemote","nameLocation":"2278:13:4","nodeType":"VariableDeclaration","scope":606,"src":"2265:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":579,"name":"bytes","nodeType":"ElementaryTypeName","src":"2265:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":584,"initialValue":{"baseExpression":{"id":581,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"2294:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":583,"indexExpression":{"id":582,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":566,"src":"2314:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2294:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2265:61:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":586,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"2344:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2344:20:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2368:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2344:25:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2371:50:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""},"value":"LzApp: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""}],"id":585,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2336:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2336:86:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"2336:86:4"},{"expression":{"arguments":[{"id":598,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":566,"src":"2467:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":599,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"2480:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":600,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"2495:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":601,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2505:14:4","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":602,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"2521:18:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":603,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":574,"src":"2541:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":593,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"2432:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"send","nodeType":"MemberAccess","referencedDeclaration":19,"src":"2432:15:4","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":596,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":576,"src":"2455:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2432:34:4","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2432:124:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":605,"nodeType":"ExpressionStatement","src":"2432:124:4"}]},"id":607,"implemented":true,"kind":"function","modifiers":[],"name":"_lzSend","nameLocation":"2081:7:4","nodeType":"FunctionDefinition","parameters":{"id":577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":566,"mutability":"mutable","name":"_dstChainId","nameLocation":"2096:11:4","nodeType":"VariableDeclaration","scope":607,"src":"2089:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":565,"name":"uint16","nodeType":"ElementaryTypeName","src":"2089:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":568,"mutability":"mutable","name":"_payload","nameLocation":"2122:8:4","nodeType":"VariableDeclaration","scope":607,"src":"2109:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":567,"name":"bytes","nodeType":"ElementaryTypeName","src":"2109:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":570,"mutability":"mutable","name":"_refundAddress","nameLocation":"2148:14:4","nodeType":"VariableDeclaration","scope":607,"src":"2132:30:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":569,"name":"address","nodeType":"ElementaryTypeName","src":"2132:15:4","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":572,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"2172:18:4","nodeType":"VariableDeclaration","scope":607,"src":"2164:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":571,"name":"address","nodeType":"ElementaryTypeName","src":"2164:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":574,"mutability":"mutable","name":"_adapterParams","nameLocation":"2205:14:4","nodeType":"VariableDeclaration","scope":607,"src":"2192:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":573,"name":"bytes","nodeType":"ElementaryTypeName","src":"2192:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":576,"mutability":"mutable","name":"_nativeFee","nameLocation":"2226:10:4","nodeType":"VariableDeclaration","scope":607,"src":"2221:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":575,"name":"uint","nodeType":"ElementaryTypeName","src":"2221:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2088:149:4"},"returnParameters":{"id":578,"nodeType":"ParameterList","parameters":[],"src":"2255:0:4"},"scope":917,"src":"2072:491:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":648,"nodeType":"Block","src":"2694:290:4","statements":[{"assignments":[619],"declarations":[{"constant":false,"id":619,"mutability":"mutable","name":"providedGasLimit","nameLocation":"2709:16:4","nodeType":"VariableDeclaration","scope":648,"src":"2704:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":618,"name":"uint","nodeType":"ElementaryTypeName","src":"2704:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":623,"initialValue":{"arguments":[{"id":621,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"2741:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":620,"name":"_getGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"2728:12:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2728:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2704:52:4"},{"assignments":[625],"declarations":[{"constant":false,"id":625,"mutability":"mutable","name":"minGasLimit","nameLocation":"2771:11:4","nodeType":"VariableDeclaration","scope":648,"src":"2766:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":624,"name":"uint","nodeType":"ElementaryTypeName","src":"2766:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":633,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":626,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"2785:15:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":628,"indexExpression":{"id":627,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"2801:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2785:28:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":630,"indexExpression":{"id":629,"name":"_type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"2814:5:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2785:35:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":631,"name":"_extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"2823:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2785:47:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2766:66:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":635,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":625,"src":"2850:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2864:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2850:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206d696e4761734c696d6974206e6f7420736574","id":638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2867:28:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""},"value":"LzApp: minGasLimit not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""}],"id":634,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2842:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2842:54:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":640,"nodeType":"ExpressionStatement","src":"2842:54:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":642,"name":"providedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"2914:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":643,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":625,"src":"2934:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2914:31:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20676173206c696d697420697320746f6f206c6f77","id":645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2947:29:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""},"value":"LzApp: gas limit is too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""}],"id":641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2906:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2906:71:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":647,"nodeType":"ExpressionStatement","src":"2906:71:4"}]},"id":649,"implemented":true,"kind":"function","modifiers":[],"name":"_checkGasLimit","nameLocation":"2578:14:4","nodeType":"FunctionDefinition","parameters":{"id":616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":609,"mutability":"mutable","name":"_dstChainId","nameLocation":"2600:11:4","nodeType":"VariableDeclaration","scope":649,"src":"2593:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":608,"name":"uint16","nodeType":"ElementaryTypeName","src":"2593:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":611,"mutability":"mutable","name":"_type","nameLocation":"2620:5:4","nodeType":"VariableDeclaration","scope":649,"src":"2613:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":610,"name":"uint16","nodeType":"ElementaryTypeName","src":"2613:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":613,"mutability":"mutable","name":"_adapterParams","nameLocation":"2640:14:4","nodeType":"VariableDeclaration","scope":649,"src":"2627:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":612,"name":"bytes","nodeType":"ElementaryTypeName","src":"2627:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":615,"mutability":"mutable","name":"_extraGas","nameLocation":"2661:9:4","nodeType":"VariableDeclaration","scope":649,"src":"2656:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":614,"name":"uint","nodeType":"ElementaryTypeName","src":"2656:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2592:79:4"},"returnParameters":{"id":617,"nodeType":"ParameterList","parameters":[],"src":"2694:0:4"},"scope":917,"src":"2569:415:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":665,"nodeType":"Block","src":"3087:169:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":657,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"3105:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3105:21:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3334","id":659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3130:2:4","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"3105:27:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c69642061646170746572506172616d73","id":661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3134:30:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""},"value":"LzApp: invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""}],"id":656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3097:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3097:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":663,"nodeType":"ExpressionStatement","src":"3097:68:4"},{"AST":{"nodeType":"YulBlock","src":"3184:66:4","statements":[{"nodeType":"YulAssignment","src":"3198:42:4","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nodeType":"YulIdentifier","src":"3220:14:4"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:4","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:4"},"nodeType":"YulFunctionCall","src":"3216:23:4"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3210:5:4"},"nodeType":"YulFunctionCall","src":"3210:30:4"},"variableNames":[{"name":"gasLimit","nodeType":"YulIdentifier","src":"3198:8:4"}]}]},"evmVersion":"london","externalReferences":[{"declaration":651,"isOffset":false,"isSlot":false,"src":"3220:14:4","valueSize":1},{"declaration":654,"isOffset":false,"isSlot":false,"src":"3198:8:4","valueSize":1}],"id":664,"nodeType":"InlineAssembly","src":"3175:75:4"}]},"id":666,"implemented":true,"kind":"function","modifiers":[],"name":"_getGasLimit","nameLocation":"2999:12:4","nodeType":"FunctionDefinition","parameters":{"id":652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":651,"mutability":"mutable","name":"_adapterParams","nameLocation":"3025:14:4","nodeType":"VariableDeclaration","scope":666,"src":"3012:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":650,"name":"bytes","nodeType":"ElementaryTypeName","src":"3012:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3011:29:4"},"returnParameters":{"id":655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":654,"mutability":"mutable","name":"gasLimit","nameLocation":"3077:8:4","nodeType":"VariableDeclaration","scope":666,"src":"3072:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":653,"name":"uint","nodeType":"ElementaryTypeName","src":"3072:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3071:15:4"},"scope":917,"src":"2990:266:4","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":690,"nodeType":"Block","src":"3475:92:4","statements":[{"expression":{"arguments":[{"id":681,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"3513:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":682,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"3523:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":685,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3541:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}],"id":684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3533:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":683,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:4","typeDescriptions":{}}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3533:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":687,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":674,"src":"3548:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":679,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3492:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getConfig","nodeType":"MemberAccess","referencedDeclaration":129,"src":"3492:20:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint16,uint16,address,uint256) view external returns (bytes memory)"}},"id":688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3492:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":678,"id":689,"nodeType":"Return","src":"3485:75:4"}]},"functionSelector":"f5ecbdbc","id":691,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"3367:9:4","nodeType":"FunctionDefinition","parameters":{"id":675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":668,"mutability":"mutable","name":"_version","nameLocation":"3384:8:4","nodeType":"VariableDeclaration","scope":691,"src":"3377:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":667,"name":"uint16","nodeType":"ElementaryTypeName","src":"3377:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":670,"mutability":"mutable","name":"_chainId","nameLocation":"3401:8:4","nodeType":"VariableDeclaration","scope":691,"src":"3394:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":669,"name":"uint16","nodeType":"ElementaryTypeName","src":"3394:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":691,"src":"3411:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":671,"name":"address","nodeType":"ElementaryTypeName","src":"3411:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":674,"mutability":"mutable","name":"_configType","nameLocation":"3425:11:4","nodeType":"VariableDeclaration","scope":691,"src":"3420:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":673,"name":"uint","nodeType":"ElementaryTypeName","src":"3420:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3376:61:4"},"returnParameters":{"id":678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":691,"src":"3461:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":676,"name":"bytes","nodeType":"ElementaryTypeName","src":"3461:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3460:14:4"},"scope":917,"src":"3358:209:4","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[171],"body":{"id":714,"nodeType":"Block","src":"3749:79:4","statements":[{"expression":{"arguments":[{"id":708,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"3780:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":709,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"3790:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":710,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"3800:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":711,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"3813:7:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":705,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3759:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setConfig","nodeType":"MemberAccess","referencedDeclaration":171,"src":"3759:20:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,uint16,uint256,bytes memory) external"}},"id":712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3759:62:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":713,"nodeType":"ExpressionStatement","src":"3759:62:4"}]},"functionSelector":"cbed8b9c","id":715,"implemented":true,"kind":"function","modifiers":[{"id":703,"kind":"modifierInvocation","modifierName":{"id":702,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"3739:9:4"},"nodeType":"ModifierInvocation","src":"3739:9:4"}],"name":"setConfig","nameLocation":"3635:9:4","nodeType":"FunctionDefinition","overrides":{"id":701,"nodeType":"OverrideSpecifier","overrides":[],"src":"3730:8:4"},"parameters":{"id":700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":693,"mutability":"mutable","name":"_version","nameLocation":"3652:8:4","nodeType":"VariableDeclaration","scope":715,"src":"3645:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":692,"name":"uint16","nodeType":"ElementaryTypeName","src":"3645:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":695,"mutability":"mutable","name":"_chainId","nameLocation":"3669:8:4","nodeType":"VariableDeclaration","scope":715,"src":"3662:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":694,"name":"uint16","nodeType":"ElementaryTypeName","src":"3662:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":697,"mutability":"mutable","name":"_configType","nameLocation":"3684:11:4","nodeType":"VariableDeclaration","scope":715,"src":"3679:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":696,"name":"uint","nodeType":"ElementaryTypeName","src":"3679:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":699,"mutability":"mutable","name":"_config","nameLocation":"3712:7:4","nodeType":"VariableDeclaration","scope":715,"src":"3697:22:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":698,"name":"bytes","nodeType":"ElementaryTypeName","src":"3697:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3644:76:4"},"returnParameters":{"id":704,"nodeType":"ParameterList","parameters":[],"src":"3749:0:4"},"scope":917,"src":"3626:202:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[176],"body":{"id":729,"nodeType":"Block","src":"3903:52:4","statements":[{"expression":{"arguments":[{"id":726,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":717,"src":"3939:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":723,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"3913:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setSendVersion","nodeType":"MemberAccess","referencedDeclaration":176,"src":"3913:25:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3913:35:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":728,"nodeType":"ExpressionStatement","src":"3913:35:4"}]},"functionSelector":"07e0db17","id":730,"implemented":true,"kind":"function","modifiers":[{"id":721,"kind":"modifierInvocation","modifierName":{"id":720,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"3893:9:4"},"nodeType":"ModifierInvocation","src":"3893:9:4"}],"name":"setSendVersion","nameLocation":"3843:14:4","nodeType":"FunctionDefinition","overrides":{"id":719,"nodeType":"OverrideSpecifier","overrides":[],"src":"3884:8:4"},"parameters":{"id":718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":717,"mutability":"mutable","name":"_version","nameLocation":"3865:8:4","nodeType":"VariableDeclaration","scope":730,"src":"3858:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":716,"name":"uint16","nodeType":"ElementaryTypeName","src":"3858:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3857:17:4"},"returnParameters":{"id":722,"nodeType":"ParameterList","parameters":[],"src":"3903:0:4"},"scope":917,"src":"3834:121:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[181],"body":{"id":744,"nodeType":"Block","src":"4033:55:4","statements":[{"expression":{"arguments":[{"id":741,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"4072:8:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":738,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4043:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setReceiveVersion","nodeType":"MemberAccess","referencedDeclaration":181,"src":"4043:28:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4043:38:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":743,"nodeType":"ExpressionStatement","src":"4043:38:4"}]},"functionSelector":"10ddb137","id":745,"implemented":true,"kind":"function","modifiers":[{"id":736,"kind":"modifierInvocation","modifierName":{"id":735,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4023:9:4"},"nodeType":"ModifierInvocation","src":"4023:9:4"}],"name":"setReceiveVersion","nameLocation":"3970:17:4","nodeType":"FunctionDefinition","overrides":{"id":734,"nodeType":"OverrideSpecifier","overrides":[],"src":"4014:8:4"},"parameters":{"id":733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"mutability":"mutable","name":"_version","nameLocation":"3995:8:4","nodeType":"VariableDeclaration","scope":745,"src":"3988:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":731,"name":"uint16","nodeType":"ElementaryTypeName","src":"3988:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3987:17:4"},"returnParameters":{"id":737,"nodeType":"ParameterList","parameters":[],"src":"4033:0:4"},"scope":917,"src":"3961:127:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[188],"body":{"id":762,"nodeType":"Block","src":"4198:72:4","statements":[{"expression":{"arguments":[{"id":758,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"4238:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":759,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":749,"src":"4251:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":755,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4208:10:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"forceResumeReceive","nodeType":"MemberAccess","referencedDeclaration":188,"src":"4208:29:4","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory) external"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4208:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":761,"nodeType":"ExpressionStatement","src":"4208:55:4"}]},"functionSelector":"42d65a8d","id":763,"implemented":true,"kind":"function","modifiers":[{"id":753,"kind":"modifierInvocation","modifierName":{"id":752,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4188:9:4"},"nodeType":"ModifierInvocation","src":"4188:9:4"}],"name":"forceResumeReceive","nameLocation":"4103:18:4","nodeType":"FunctionDefinition","overrides":{"id":751,"nodeType":"OverrideSpecifier","overrides":[],"src":"4179:8:4"},"parameters":{"id":750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":747,"mutability":"mutable","name":"_srcChainId","nameLocation":"4129:11:4","nodeType":"VariableDeclaration","scope":763,"src":"4122:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":746,"name":"uint16","nodeType":"ElementaryTypeName","src":"4122:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":749,"mutability":"mutable","name":"_srcAddress","nameLocation":"4157:11:4","nodeType":"VariableDeclaration","scope":763,"src":"4142:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":748,"name":"bytes","nodeType":"ElementaryTypeName","src":"4142:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4121:48:4"},"returnParameters":{"id":754,"nodeType":"ParameterList","parameters":[],"src":"4198:0:4"},"scope":917,"src":"4094:176:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":783,"nodeType":"Block","src":"4500:108:4","statements":[{"expression":{"id":776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":772,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"4510:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":774,"indexExpression":{"id":773,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"4530:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4510:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":775,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"4545:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"4510:40:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":777,"nodeType":"ExpressionStatement","src":"4510:40:4"},{"eventCall":{"arguments":[{"id":779,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"4582:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":780,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"4595:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":778,"name":"SetTrustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"4565:16:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4565:36:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":782,"nodeType":"EmitStatement","src":"4560:41:4"}]},"functionSelector":"eb8d72b7","id":784,"implemented":true,"kind":"function","modifiers":[{"id":770,"kind":"modifierInvocation","modifierName":{"id":769,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4490:9:4"},"nodeType":"ModifierInvocation","src":"4490:9:4"}],"name":"setTrustedRemote","nameLocation":"4422:16:4","nodeType":"FunctionDefinition","parameters":{"id":768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":765,"mutability":"mutable","name":"_srcChainId","nameLocation":"4446:11:4","nodeType":"VariableDeclaration","scope":784,"src":"4439:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":764,"name":"uint16","nodeType":"ElementaryTypeName","src":"4439:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":767,"mutability":"mutable","name":"_path","nameLocation":"4474:5:4","nodeType":"VariableDeclaration","scope":784,"src":"4459:20:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":766,"name":"bytes","nodeType":"ElementaryTypeName","src":"4459:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4438:42:4"},"returnParameters":{"id":771,"nodeType":"ParameterList","parameters":[],"src":"4500:0:4"},"scope":917,"src":"4413:195:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":811,"nodeType":"Block","src":"4720:172:4","statements":[{"expression":{"id":804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":793,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"4730:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":795,"indexExpression":{"id":794,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"4750:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4730:35:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":798,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"4785:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"id":801,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4809:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$917","typeString":"contract LzApp"}],"id":800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4801:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":799,"name":"address","nodeType":"ElementaryTypeName","src":"4801:7:4","typeDescriptions":{}}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4801:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4768:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4768:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4768:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4730:85:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":805,"nodeType":"ExpressionStatement","src":"4730:85:4"},{"eventCall":{"arguments":[{"id":807,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"4854:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":808,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"4870:14:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":806,"name":"SetTrustedRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"4830:23:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4830:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":810,"nodeType":"EmitStatement","src":"4825:60:4"}]},"functionSelector":"a6c3d165","id":812,"implemented":true,"kind":"function","modifiers":[{"id":791,"kind":"modifierInvocation","modifierName":{"id":790,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"4710:9:4"},"nodeType":"ModifierInvocation","src":"4710:9:4"}],"name":"setTrustedRemoteAddress","nameLocation":"4623:23:4","nodeType":"FunctionDefinition","parameters":{"id":789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":786,"mutability":"mutable","name":"_remoteChainId","nameLocation":"4654:14:4","nodeType":"VariableDeclaration","scope":812,"src":"4647:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":785,"name":"uint16","nodeType":"ElementaryTypeName","src":"4647:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":788,"mutability":"mutable","name":"_remoteAddress","nameLocation":"4685:14:4","nodeType":"VariableDeclaration","scope":812,"src":"4670:29:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":787,"name":"bytes","nodeType":"ElementaryTypeName","src":"4670:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4646:54:4"},"returnParameters":{"id":792,"nodeType":"ParameterList","parameters":[],"src":"4720:0:4"},"scope":917,"src":"4614:278:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":842,"nodeType":"Block","src":"4991:233:4","statements":[{"assignments":[820],"declarations":[{"constant":false,"id":820,"mutability":"mutable","name":"path","nameLocation":"5014:4:4","nodeType":"VariableDeclaration","scope":842,"src":"5001:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":819,"name":"bytes","nodeType":"ElementaryTypeName","src":"5001:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":824,"initialValue":{"baseExpression":{"id":821,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"5021:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":823,"indexExpression":{"id":822,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":814,"src":"5041:14:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5021:35:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5001:55:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":826,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5074:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5074:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5089:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5074:16:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","id":830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5092:31:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""},"value":"LzApp: no trusted path record"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""}],"id":825,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5066:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5066:58:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":832,"nodeType":"ExpressionStatement","src":"5066:58:4"},{"expression":{"arguments":[{"hexValue":"30","id":835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5152:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":836,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5155:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5155:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3230","id":838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5169:2:4","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"5155:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":833,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"5141:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":2517,"src":"5141:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5141:31:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":818,"id":841,"nodeType":"Return","src":"5134:38:4"}]},"functionSelector":"9f38369a","id":843,"implemented":true,"kind":"function","modifiers":[],"name":"getTrustedRemoteAddress","nameLocation":"4907:23:4","nodeType":"FunctionDefinition","parameters":{"id":815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":814,"mutability":"mutable","name":"_remoteChainId","nameLocation":"4938:14:4","nodeType":"VariableDeclaration","scope":843,"src":"4931:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":813,"name":"uint16","nodeType":"ElementaryTypeName","src":"4931:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4930:23:4"},"returnParameters":{"id":818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":843,"src":"4977:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":816,"name":"bytes","nodeType":"ElementaryTypeName","src":"4977:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4976:14:4"},"scope":917,"src":"4898:326:4","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":858,"nodeType":"Block","src":"5289:74:4","statements":[{"expression":{"id":852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":850,"name":"precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":458,"src":"5299:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":851,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"5310:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5299:20:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":853,"nodeType":"ExpressionStatement","src":"5299:20:4"},{"eventCall":{"arguments":[{"id":855,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"5346:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":854,"name":"SetPrecrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":462,"src":"5334:11:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5334:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"EmitStatement","src":"5329:27:4"}]},"functionSelector":"baf3292d","id":859,"implemented":true,"kind":"function","modifiers":[{"id":848,"kind":"modifierInvocation","modifierName":{"id":847,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"5279:9:4"},"nodeType":"ModifierInvocation","src":"5279:9:4"}],"name":"setPrecrime","nameLocation":"5239:11:4","nodeType":"FunctionDefinition","parameters":{"id":846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":845,"mutability":"mutable","name":"_precrime","nameLocation":"5259:9:4","nodeType":"VariableDeclaration","scope":859,"src":"5251:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":844,"name":"address","nodeType":"ElementaryTypeName","src":"5251:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5250:19:4"},"returnParameters":{"id":849,"nodeType":"ParameterList","parameters":[],"src":"5289:0:4"},"scope":917,"src":"5230:133:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":891,"nodeType":"Block","src":"5464:185:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":871,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5482:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5492:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5482:11:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","id":874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5495:23:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e","typeString":"literal_string \"LzApp: invalid minGas\""},"value":"LzApp: invalid minGas"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e","typeString":"literal_string \"LzApp: invalid minGas\""}],"id":870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5474:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5474:45:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":876,"nodeType":"ExpressionStatement","src":"5474:45:4"},{"expression":{"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":877,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"5529:15:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":880,"indexExpression":{"id":878,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"5545:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5529:28:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":881,"indexExpression":{"id":879,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"5558:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5529:41:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":882,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5573:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5529:51:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":884,"nodeType":"ExpressionStatement","src":"5529:51:4"},{"eventCall":{"arguments":[{"id":886,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"5608:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":887,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"5621:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":888,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5634:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":885,"name":"SetMinDstGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":482,"src":"5595:12:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint16,uint256)"}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5595:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":890,"nodeType":"EmitStatement","src":"5590:52:4"}]},"functionSelector":"df2a5b3b","id":892,"implemented":true,"kind":"function","modifiers":[{"id":868,"kind":"modifierInvocation","modifierName":{"id":867,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"5454:9:4"},"nodeType":"ModifierInvocation","src":"5454:9:4"}],"name":"setMinDstGas","nameLocation":"5378:12:4","nodeType":"FunctionDefinition","parameters":{"id":866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":861,"mutability":"mutable","name":"_dstChainId","nameLocation":"5398:11:4","nodeType":"VariableDeclaration","scope":892,"src":"5391:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":860,"name":"uint16","nodeType":"ElementaryTypeName","src":"5391:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":863,"mutability":"mutable","name":"_packetType","nameLocation":"5418:11:4","nodeType":"VariableDeclaration","scope":892,"src":"5411:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":862,"name":"uint16","nodeType":"ElementaryTypeName","src":"5411:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":865,"mutability":"mutable","name":"_minGas","nameLocation":"5436:7:4","nodeType":"VariableDeclaration","scope":892,"src":"5431:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":864,"name":"uint","nodeType":"ElementaryTypeName","src":"5431:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5390:54:4"},"returnParameters":{"id":869,"nodeType":"ParameterList","parameters":[],"src":"5464:0:4"},"scope":917,"src":"5369:280:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":915,"nodeType":"Block","src":"5846:145:4","statements":[{"assignments":[902],"declarations":[{"constant":false,"id":902,"mutability":"mutable","name":"trustedSource","nameLocation":"5869:13:4","nodeType":"VariableDeclaration","scope":915,"src":"5856:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":901,"name":"bytes","nodeType":"ElementaryTypeName","src":"5856:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":906,"initialValue":{"baseExpression":{"id":903,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"5885:19:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":905,"indexExpression":{"id":904,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"5905:11:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5885:32:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5856:61:4"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":908,"name":"trustedSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":902,"src":"5944:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":907,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5934:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5934:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":911,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":896,"src":"5972:11:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":910,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5962:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5962:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5934:50:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":900,"id":914,"nodeType":"Return","src":"5927:57:4"}]},"functionSelector":"3d8b38f6","id":916,"implemented":true,"kind":"function","modifiers":[],"name":"isTrustedRemote","nameLocation":"5753:15:4","nodeType":"FunctionDefinition","parameters":{"id":897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":894,"mutability":"mutable","name":"_srcChainId","nameLocation":"5776:11:4","nodeType":"VariableDeclaration","scope":916,"src":"5769:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":893,"name":"uint16","nodeType":"ElementaryTypeName","src":"5769:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":896,"mutability":"mutable","name":"_srcAddress","nameLocation":"5804:11:4","nodeType":"VariableDeclaration","scope":916,"src":"5789:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":895,"name":"bytes","nodeType":"ElementaryTypeName","src":"5789:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5768:48:4"},"returnParameters":{"id":900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":916,"src":"5840:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":898,"name":"bool","nodeType":"ElementaryTypeName","src":"5840:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5839:6:4"},"scope":917,"src":"5744:247:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":918,"src":"343:5650:4","usedErrors":[]}],"src":"33:5961:4"},"id":4},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LzApp":[917],"NonblockingLzApp":[1136],"Ownable":[2996]},"id":1137,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":919,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:5"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","file":"./LzApp.sol","id":920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1137,"sourceUnit":918,"src":"58:21:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol","file":"../util/ExcessivelySafeCall.sol","id":921,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1137,"sourceUnit":2884,"src":"80:41:5","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":922,"name":"LzApp","nodeType":"IdentifierPath","referencedDeclaration":917,"src":"505:5:5"},"id":923,"nodeType":"InheritanceSpecifier","src":"505:5:5"}],"canonicalName":"NonblockingLzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":1136,"linearizedBaseContracts":[1136,917,189,158,2996,3708],"name":"NonblockingLzApp","nameLocation":"485:16:5","nodeType":"ContractDefinition","nodes":[{"id":926,"libraryName":{"id":924,"name":"ExcessivelySafeCall","nodeType":"IdentifierPath","referencedDeclaration":2883,"src":"523:19:5"},"nodeType":"UsingForDirective","src":"517:38:5","typeName":{"id":925,"name":"address","nodeType":"ElementaryTypeName","src":"547:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":934,"nodeType":"Block","src":"609:2:5","statements":[]},"id":935,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":931,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"598:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":932,"kind":"baseConstructorSpecifier","modifierName":{"id":930,"name":"LzApp","nodeType":"IdentifierPath","referencedDeclaration":917,"src":"592:5:5"},"nodeType":"ModifierInvocation","src":"592:16:5"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":928,"mutability":"mutable","name":"_endpoint","nameLocation":"581:9:5","nodeType":"VariableDeclaration","scope":935,"src":"573:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"573:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"572:19:5"},"returnParameters":{"id":933,"nodeType":"ParameterList","parameters":[],"src":"609:0:5"},"scope":1136,"src":"561:50:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"functionSelector":"5b8c41e6","id":943,"mutability":"mutable","name":"failedMessages","nameLocation":"688:14:5","nodeType":"VariableDeclaration","scope":1136,"src":"617:85:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"typeName":{"id":942,"keyType":{"id":936,"name":"uint16","nodeType":"ElementaryTypeName","src":"625:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"617:63:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"valueType":{"id":941,"keyType":{"id":937,"name":"bytes","nodeType":"ElementaryTypeName","src":"643:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"635:44:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes => mapping(uint64 => bytes32))"},"valueType":{"id":940,"keyType":{"id":938,"name":"uint64","nodeType":"ElementaryTypeName","src":"660:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"652:26:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"},"valueType":{"id":939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"670:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}}}},"visibility":"public"},{"anonymous":false,"id":955,"name":"MessageFailed","nameLocation":"715:13:5","nodeType":"EventDefinition","parameters":{"id":954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":945,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"736:11:5","nodeType":"VariableDeclaration","scope":955,"src":"729:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":944,"name":"uint16","nodeType":"ElementaryTypeName","src":"729:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":947,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"755:11:5","nodeType":"VariableDeclaration","scope":955,"src":"749:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":946,"name":"bytes","nodeType":"ElementaryTypeName","src":"749:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":949,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"775:6:5","nodeType":"VariableDeclaration","scope":955,"src":"768:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":948,"name":"uint64","nodeType":"ElementaryTypeName","src":"768:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":951,"indexed":false,"mutability":"mutable","name":"_payload","nameLocation":"789:8:5","nodeType":"VariableDeclaration","scope":955,"src":"783:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":950,"name":"bytes","nodeType":"ElementaryTypeName","src":"783:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":953,"indexed":false,"mutability":"mutable","name":"_reason","nameLocation":"805:7:5","nodeType":"VariableDeclaration","scope":955,"src":"799:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":952,"name":"bytes","nodeType":"ElementaryTypeName","src":"799:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"728:85:5"},"src":"709:105:5"},{"anonymous":false,"id":965,"name":"RetryMessageSuccess","nameLocation":"825:19:5","nodeType":"EventDefinition","parameters":{"id":964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":957,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"852:11:5","nodeType":"VariableDeclaration","scope":965,"src":"845:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":956,"name":"uint16","nodeType":"ElementaryTypeName","src":"845:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":959,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"871:11:5","nodeType":"VariableDeclaration","scope":965,"src":"865:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":958,"name":"bytes","nodeType":"ElementaryTypeName","src":"865:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":961,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"891:6:5","nodeType":"VariableDeclaration","scope":965,"src":"884:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":960,"name":"uint64","nodeType":"ElementaryTypeName","src":"884:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":963,"indexed":false,"mutability":"mutable","name":"_payloadHash","nameLocation":"907:12:5","nodeType":"VariableDeclaration","scope":965,"src":"899:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"899:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"844:76:5"},"src":"819:102:5"},{"baseFunctions":[564],"body":{"id":1025,"nodeType":"Block","src":"1118:453:5","statements":[{"assignments":[978,980],"declarations":[{"constant":false,"id":978,"mutability":"mutable","name":"success","nameLocation":"1134:7:5","nodeType":"VariableDeclaration","scope":1025,"src":"1129:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":977,"name":"bool","nodeType":"ElementaryTypeName","src":"1129:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":980,"mutability":"mutable","name":"reason","nameLocation":"1156:6:5","nodeType":"VariableDeclaration","scope":1025,"src":"1143:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":979,"name":"bytes","nodeType":"ElementaryTypeName","src":"1143:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1000,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":986,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"1200:7:5","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1200:9:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313530","id":988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1211:3:5","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},{"arguments":[{"expression":{"expression":{"id":991,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1239:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonblockingLzReceive","nodeType":"MemberAccess","referencedDeclaration":1056,"src":"1239:25:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1239:34:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":994,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1275:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":995,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1288:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":996,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1301:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":997,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1309:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1216:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1216:22:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:102:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":983,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1174:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}],"id":982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1166:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":981,"name":"address","nodeType":"ElementaryTypeName","src":"1166:7:5","typeDescriptions":{}}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1166:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"excessivelySafeCall","nodeType":"MemberAccess","referencedDeclaration":2826,"src":"1166:33:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$bound_to$_t_address_$","typeString":"function (address,uint256,uint16,bytes memory) returns (bool,bytes memory)"}},"id":999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1166:153:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1128:191:5"},{"condition":{"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1376:8:5","subExpression":{"id":1001,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":978,"src":"1377:7:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1024,"nodeType":"IfStatement","src":"1372:193:5","trueBody":{"id":1023,"nodeType":"Block","src":"1386:179:5","statements":[{"expression":{"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1003,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"1400:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1007,"indexExpression":{"id":1004,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1415:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1400:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1008,"indexExpression":{"id":1005,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1428:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1400:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1009,"indexExpression":{"id":1006,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1441:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1400:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1011,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1461:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1010,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1451:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1451:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1400:70:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1014,"nodeType":"ExpressionStatement","src":"1400:70:5"},{"eventCall":{"arguments":[{"id":1016,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1503:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1017,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"1516:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1018,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":971,"src":"1529:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1019,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"1537:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1020,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"1547:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1015,"name":"MessageFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"1489:13:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory,bytes memory)"}},"id":1021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1489:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1022,"nodeType":"EmitStatement","src":"1484:70:5"}]}}]},"id":1026,"implemented":true,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"989:18:5","nodeType":"FunctionDefinition","overrides":{"id":975,"nodeType":"OverrideSpecifier","overrides":[],"src":"1109:8:5"},"parameters":{"id":974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":967,"mutability":"mutable","name":"_srcChainId","nameLocation":"1015:11:5","nodeType":"VariableDeclaration","scope":1026,"src":"1008:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":966,"name":"uint16","nodeType":"ElementaryTypeName","src":"1008:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":969,"mutability":"mutable","name":"_srcAddress","nameLocation":"1041:11:5","nodeType":"VariableDeclaration","scope":1026,"src":"1028:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":968,"name":"bytes","nodeType":"ElementaryTypeName","src":"1028:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":971,"mutability":"mutable","name":"_nonce","nameLocation":"1061:6:5","nodeType":"VariableDeclaration","scope":1026,"src":"1054:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":970,"name":"uint64","nodeType":"ElementaryTypeName","src":"1054:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":973,"mutability":"mutable","name":"_payload","nameLocation":"1082:8:5","nodeType":"VariableDeclaration","scope":1026,"src":"1069:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":972,"name":"bytes","nodeType":"ElementaryTypeName","src":"1069:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1007:84:5"},"returnParameters":{"id":976,"nodeType":"ParameterList","parameters":[],"src":"1118:0:5"},"scope":1136,"src":"980:591:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1055,"nodeType":"Block","src":"1710:209:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1038,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1765:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1765:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":1042,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1789:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$1136","typeString":"contract NonblockingLzApp"}],"id":1041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1781:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1040,"name":"address","nodeType":"ElementaryTypeName","src":"1781:7:5","typeDescriptions":{}}},"id":1043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1781:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1765:29:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265204c7a417070","id":1045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1796:40:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""},"value":"NonblockingLzApp: caller must be LzApp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""}],"id":1037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1757:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1757:80:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1047,"nodeType":"ExpressionStatement","src":"1757:80:5"},{"expression":{"arguments":[{"id":1049,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"1869:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1050,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"1882:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1051,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"1895:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1052,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1903:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1048,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"1847:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1847:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1054,"nodeType":"ExpressionStatement","src":"1847:65:5"}]},"functionSelector":"66ad5c8a","id":1056,"implemented":true,"kind":"function","modifiers":[],"name":"nonblockingLzReceive","nameLocation":"1586:20:5","nodeType":"FunctionDefinition","parameters":{"id":1035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1028,"mutability":"mutable","name":"_srcChainId","nameLocation":"1614:11:5","nodeType":"VariableDeclaration","scope":1056,"src":"1607:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1027,"name":"uint16","nodeType":"ElementaryTypeName","src":"1607:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1030,"mutability":"mutable","name":"_srcAddress","nameLocation":"1642:11:5","nodeType":"VariableDeclaration","scope":1056,"src":"1627:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1029,"name":"bytes","nodeType":"ElementaryTypeName","src":"1627:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1032,"mutability":"mutable","name":"_nonce","nameLocation":"1662:6:5","nodeType":"VariableDeclaration","scope":1056,"src":"1655:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1031,"name":"uint64","nodeType":"ElementaryTypeName","src":"1655:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1034,"mutability":"mutable","name":"_payload","nameLocation":"1685:8:5","nodeType":"VariableDeclaration","scope":1056,"src":"1670:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1033,"name":"bytes","nodeType":"ElementaryTypeName","src":"1670:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1606:88:5"},"returnParameters":{"id":1036,"nodeType":"ParameterList","parameters":[],"src":"1710:0:5"},"scope":1136,"src":"1577:342:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":1067,"implemented":false,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1971:21:5","nodeType":"FunctionDefinition","parameters":{"id":1065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1058,"mutability":"mutable","name":"_srcChainId","nameLocation":"2000:11:5","nodeType":"VariableDeclaration","scope":1067,"src":"1993:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1057,"name":"uint16","nodeType":"ElementaryTypeName","src":"1993:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1060,"mutability":"mutable","name":"_srcAddress","nameLocation":"2026:11:5","nodeType":"VariableDeclaration","scope":1067,"src":"2013:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1059,"name":"bytes","nodeType":"ElementaryTypeName","src":"2013:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1062,"mutability":"mutable","name":"_nonce","nameLocation":"2046:6:5","nodeType":"VariableDeclaration","scope":1067,"src":"2039:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1061,"name":"uint64","nodeType":"ElementaryTypeName","src":"2039:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1064,"mutability":"mutable","name":"_payload","nameLocation":"2067:8:5","nodeType":"VariableDeclaration","scope":1067,"src":"2054:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1063,"name":"bytes","nodeType":"ElementaryTypeName","src":"2054:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1992:84:5"},"returnParameters":{"id":1066,"nodeType":"ParameterList","parameters":[],"src":"2093:0:5"},"scope":1136,"src":"1962:132:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1134,"nodeType":"Block","src":"2233:624:5","statements":[{"assignments":[1079],"declarations":[{"constant":false,"id":1079,"mutability":"mutable","name":"payloadHash","nameLocation":"2295:11:5","nodeType":"VariableDeclaration","scope":1134,"src":"2287:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2287:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1087,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1080,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"2309:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1082,"indexExpression":{"id":1081,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2324:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1084,"indexExpression":{"id":1083,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2337:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1086,"indexExpression":{"id":1085,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2350:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2287:70:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1089,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2375:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2398:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2390:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2390:7:5","typeDescriptions":{}}},"id":1093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2390:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2375:25:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373616765","id":1095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2402:37:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""},"value":"NonblockingLzApp: no stored message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""}],"id":1088,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2367:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2367:73:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1097,"nodeType":"ExpressionStatement","src":"2367:73:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1100,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"2468:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1099,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2458:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2458:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1102,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2481:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2458:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6164","id":1104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2494:35:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""},"value":"NonblockingLzApp: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""}],"id":1098,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2450:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2450:80:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1106,"nodeType":"ExpressionStatement","src":"2450:80:5"},{"expression":{"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1107,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"2576:14:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1111,"indexExpression":{"id":1108,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2591:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2576:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1112,"indexExpression":{"id":1109,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2604:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2576:40:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1113,"indexExpression":{"id":1110,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2617:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2576:48:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2635:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2627:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2627:7:5","typeDescriptions":{}}},"id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2627:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2576:61:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1119,"nodeType":"ExpressionStatement","src":"2576:61:5"},{"expression":{"arguments":[{"id":1121,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2726:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1122,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2739:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1123,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2752:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1124,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"2760:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1120,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"2704:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2704:65:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1126,"nodeType":"ExpressionStatement","src":"2704:65:5"},{"eventCall":{"arguments":[{"id":1128,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"2804:11:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1129,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"2817:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1130,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"2830:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1131,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2838:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1127,"name":"RetryMessageSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"2784:19:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes32)"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2784:66:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1133,"nodeType":"EmitStatement","src":"2779:71:5"}]},"functionSelector":"d1deba1f","id":1135,"implemented":true,"kind":"function","modifiers":[],"name":"retryMessage","nameLocation":"2109:12:5","nodeType":"FunctionDefinition","parameters":{"id":1076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1069,"mutability":"mutable","name":"_srcChainId","nameLocation":"2129:11:5","nodeType":"VariableDeclaration","scope":1135,"src":"2122:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1068,"name":"uint16","nodeType":"ElementaryTypeName","src":"2122:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1071,"mutability":"mutable","name":"_srcAddress","nameLocation":"2157:11:5","nodeType":"VariableDeclaration","scope":1135,"src":"2142:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1070,"name":"bytes","nodeType":"ElementaryTypeName","src":"2142:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1073,"mutability":"mutable","name":"_nonce","nameLocation":"2177:6:5","nodeType":"VariableDeclaration","scope":1135,"src":"2170:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1072,"name":"uint64","nodeType":"ElementaryTypeName","src":"2170:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1075,"mutability":"mutable","name":"_payload","nameLocation":"2200:8:5","nodeType":"VariableDeclaration","scope":1135,"src":"2185:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1074,"name":"bytes","nodeType":"ElementaryTypeName","src":"2185:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2121:88:5"},"returnParameters":{"id":1077,"nodeType":"ParameterList","parameters":[],"src":"2233:0:5"},"scope":1136,"src":"2100:757:5","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":1137,"src":"467:2392:5","usedErrors":[]}],"src":"33:2827:5"},"id":5},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LZEndpointMock":[2453],"LzLib":[427]},"id":2454,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":1138,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:6"},{"id":1139,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:6"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol","file":"../interfaces/ILayerZeroReceiver.sol","id":1140,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":159,"src":"83:46:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol","file":"../interfaces/ILayerZeroEndpoint.sol","id":1141,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":145,"src":"130:46:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol","file":"../libraries/LzLib.sol","id":1142,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2454,"sourceUnit":428,"src":"177:32:6","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1143,"name":"ILayerZeroEndpoint","nodeType":"IdentifierPath","referencedDeclaration":144,"src":"844:18:6"},"id":1144,"nodeType":"InheritanceSpecifier","src":"844:18:6"}],"canonicalName":"LZEndpointMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":2453,"linearizedBaseContracts":[2453,144,189],"name":"LZEndpointMock","nameLocation":"826:14:6","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1147,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"893:12:6","nodeType":"VariableDeclaration","scope":2453,"src":"869:40:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1145,"name":"uint8","nodeType":"ElementaryTypeName","src":"869:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"908:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1150,"mutability":"constant","name":"_ENTERED","nameLocation":"939:8:6","nodeType":"VariableDeclaration","scope":2453,"src":"915:36:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1148,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":false,"functionSelector":"c81b383a","id":1154,"mutability":"mutable","name":"lzEndpointLookup","nameLocation":"993:16:6","nodeType":"VariableDeclaration","scope":2453,"src":"958:51:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":1153,"keyType":{"id":1151,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"958:27:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":1152,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"db14f305","id":1156,"mutability":"mutable","name":"mockChainId","nameLocation":"1030:11:6","nodeType":"VariableDeclaration","scope":2453,"src":"1016:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1155,"name":"uint16","nodeType":"ElementaryTypeName","src":"1016:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"public"},{"constant":false,"functionSelector":"3e0dd83e","id":1158,"mutability":"mutable","name":"nextMsgBlocked","nameLocation":"1059:14:6","nodeType":"VariableDeclaration","scope":2453,"src":"1047:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1157,"name":"bool","nodeType":"ElementaryTypeName","src":"1047:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"907c5e7e","id":1161,"mutability":"mutable","name":"relayerFeeConfig","nameLocation":"1122:16:6","nodeType":"VariableDeclaration","scope":2453,"src":"1098:40:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig"},"typeName":{"id":1160,"nodeType":"UserDefinedTypeName","pathNode":{"id":1159,"name":"RelayerFeeConfig","nodeType":"IdentifierPath","referencedDeclaration":1217,"src":"1098:16:6"},"referencedDeclaration":1217,"src":"1098:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"07d3277f","id":1164,"mutability":"mutable","name":"protocolFeeConfig","nameLocation":"1169:17:6","nodeType":"VariableDeclaration","scope":2453,"src":"1144:42:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig"},"typeName":{"id":1163,"nodeType":"UserDefinedTypeName","pathNode":{"id":1162,"name":"ProtocolFeeConfig","nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"1144:17:6"},"referencedDeclaration":1206,"src":"1144:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"f9cd3ceb","id":1166,"mutability":"mutable","name":"oracleFee","nameLocation":"1204:9:6","nodeType":"VariableDeclaration","scope":2453,"src":"1192:21:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1165,"name":"uint","nodeType":"ElementaryTypeName","src":"1192:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"272bd384","id":1168,"mutability":"mutable","name":"defaultAdapterParams","nameLocation":"1232:20:6","nodeType":"VariableDeclaration","scope":2453,"src":"1219:33:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":1167,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"constant":false,"functionSelector":"9924d33b","id":1174,"mutability":"mutable","name":"inboundNonce","nameLocation":"1396:12:6","nodeType":"VariableDeclaration","scope":2453,"src":"1345:63:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"typeName":{"id":1173,"keyType":{"id":1169,"name":"uint16","nodeType":"ElementaryTypeName","src":"1353:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1345:43:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"valueType":{"id":1172,"keyType":{"id":1170,"name":"bytes","nodeType":"ElementaryTypeName","src":"1371:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1363:24:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes => uint64)"},"valueType":{"id":1171,"name":"uint64","nodeType":"ElementaryTypeName","src":"1380:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"b2086499","id":1180,"mutability":"mutable","name":"outboundNonce","nameLocation":"1542:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1489:66:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"typeName":{"id":1179,"keyType":{"id":1175,"name":"uint16","nodeType":"ElementaryTypeName","src":"1497:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1489:45:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"valueType":{"id":1178,"keyType":{"id":1176,"name":"address","nodeType":"ElementaryTypeName","src":"1515:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1507:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueType":{"id":1177,"name":"uint64","nodeType":"ElementaryTypeName","src":"1526:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"76a386dc","id":1187,"mutability":"mutable","name":"storedPayload","nameLocation":"1786:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1728:71:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"typeName":{"id":1186,"keyType":{"id":1181,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1728:50:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"valueType":{"id":1185,"keyType":{"id":1182,"name":"bytes","nodeType":"ElementaryTypeName","src":"1754:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1746:31:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.StoredPayload)"},"valueType":{"id":1184,"nodeType":"UserDefinedTypeName","pathNode":{"id":1183,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"1763:13:6"},"referencedDeclaration":1224,"src":"1763:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}}}},"visibility":"public"},{"constant":false,"functionSelector":"12a9ee6b","id":1195,"mutability":"mutable","name":"msgsToDeliver","nameLocation":"1906:13:6","nodeType":"VariableDeclaration","scope":2453,"src":"1846:73:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"typeName":{"id":1194,"keyType":{"id":1188,"name":"uint16","nodeType":"ElementaryTypeName","src":"1854:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1846:52:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"valueType":{"id":1193,"keyType":{"id":1189,"name":"bytes","nodeType":"ElementaryTypeName","src":"1872:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1864:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])"},"valueType":{"baseType":{"id":1191,"nodeType":"UserDefinedTypeName","pathNode":{"id":1190,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"1881:13:6"},"referencedDeclaration":1231,"src":"1881:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":1192,"nodeType":"ArrayTypeName","src":"1881:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}}}},"visibility":"public"},{"constant":false,"id":1198,"mutability":"mutable","name":"_send_entered_state","nameLocation":"1965:19:6","nodeType":"VariableDeclaration","scope":2453,"src":"1950:38:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1196,"name":"uint8","nodeType":"ElementaryTypeName","src":"1950:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1987:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"_receive_entered_state","nameLocation":"2009:22:6","nodeType":"VariableDeclaration","scope":2453,"src":"1994:41:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1199,"name":"uint8","nodeType":"ElementaryTypeName","src":"1994:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2034:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"canonicalName":"LZEndpointMock.ProtocolFeeConfig","id":1206,"members":[{"constant":false,"id":1203,"mutability":"mutable","name":"zroFee","nameLocation":"2082:6:6","nodeType":"VariableDeclaration","scope":1206,"src":"2077:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1202,"name":"uint","nodeType":"ElementaryTypeName","src":"2077:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1205,"mutability":"mutable","name":"nativeBP","nameLocation":"2103:8:6","nodeType":"VariableDeclaration","scope":1206,"src":"2098:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1204,"name":"uint","nodeType":"ElementaryTypeName","src":"2098:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolFeeConfig","nameLocation":"2049:17:6","nodeType":"StructDefinition","scope":2453,"src":"2042:76:6","visibility":"public"},{"canonicalName":"LZEndpointMock.RelayerFeeConfig","id":1217,"members":[{"constant":false,"id":1208,"mutability":"mutable","name":"dstPriceRatio","nameLocation":"2166:13:6","nodeType":"VariableDeclaration","scope":1217,"src":"2158:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1207,"name":"uint128","nodeType":"ElementaryTypeName","src":"2158:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1210,"mutability":"mutable","name":"dstGasPriceInWei","nameLocation":"2206:16:6","nodeType":"VariableDeclaration","scope":1217,"src":"2198:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1209,"name":"uint128","nodeType":"ElementaryTypeName","src":"2198:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1212,"mutability":"mutable","name":"dstNativeAmtCap","nameLocation":"2240:15:6","nodeType":"VariableDeclaration","scope":1217,"src":"2232:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1211,"name":"uint128","nodeType":"ElementaryTypeName","src":"2232:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1214,"mutability":"mutable","name":"baseGas","nameLocation":"2272:7:6","nodeType":"VariableDeclaration","scope":1217,"src":"2265:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1213,"name":"uint64","nodeType":"ElementaryTypeName","src":"2265:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1216,"mutability":"mutable","name":"gasPerByte","nameLocation":"2296:10:6","nodeType":"VariableDeclaration","scope":1217,"src":"2289:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1215,"name":"uint64","nodeType":"ElementaryTypeName","src":"2289:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"RelayerFeeConfig","nameLocation":"2131:16:6","nodeType":"StructDefinition","scope":2453,"src":"2124:189:6","visibility":"public"},{"canonicalName":"LZEndpointMock.StoredPayload","id":1224,"members":[{"constant":false,"id":1219,"mutability":"mutable","name":"payloadLength","nameLocation":"2357:13:6","nodeType":"VariableDeclaration","scope":1224,"src":"2350:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1218,"name":"uint64","nodeType":"ElementaryTypeName","src":"2350:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1221,"mutability":"mutable","name":"dstAddress","nameLocation":"2388:10:6","nodeType":"VariableDeclaration","scope":1224,"src":"2380:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"2380:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"payloadHash","nameLocation":"2416:11:6","nodeType":"VariableDeclaration","scope":1224,"src":"2408:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2408:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"StoredPayload","nameLocation":"2326:13:6","nodeType":"StructDefinition","scope":2453,"src":"2319:115:6","visibility":"public"},{"canonicalName":"LZEndpointMock.QueuedPayload","id":1231,"members":[{"constant":false,"id":1226,"mutability":"mutable","name":"dstAddress","nameLocation":"2479:10:6","nodeType":"VariableDeclaration","scope":1231,"src":"2471:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1225,"name":"address","nodeType":"ElementaryTypeName","src":"2471:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1228,"mutability":"mutable","name":"nonce","nameLocation":"2506:5:6","nodeType":"VariableDeclaration","scope":1231,"src":"2499:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1227,"name":"uint64","nodeType":"ElementaryTypeName","src":"2499:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"payload","nameLocation":"2527:7:6","nodeType":"VariableDeclaration","scope":1231,"src":"2521:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1229,"name":"bytes","nodeType":"ElementaryTypeName","src":"2521:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"QueuedPayload","nameLocation":"2447:13:6","nodeType":"StructDefinition","scope":2453,"src":"2440:101:6","visibility":"public"},{"body":{"id":1249,"nodeType":"Block","src":"2575:193:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1234,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2593:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1235,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2616:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2593:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6379","id":1237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2630:35:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""},"value":"LayerZeroMock: no send reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""}],"id":1233,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2585:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:81:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1239,"nodeType":"ExpressionStatement","src":"2585:81:6"},{"expression":{"id":1242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1240,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2676:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1241,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"2698:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2676:30:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1243,"nodeType":"ExpressionStatement","src":"2676:30:6"},{"id":1244,"nodeType":"PlaceholderStatement","src":"2716:1:6"},{"expression":{"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1245,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"2727:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1246,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2749:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2727:34:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1248,"nodeType":"ExpressionStatement","src":"2727:34:6"}]},"id":1250,"name":"sendNonReentrant","nameLocation":"2556:16:6","nodeType":"ModifierDefinition","parameters":{"id":1232,"nodeType":"ParameterList","parameters":[],"src":"2572:2:6"},"src":"2547:221:6","virtual":false,"visibility":"internal"},{"body":{"id":1268,"nodeType":"Block","src":"2805:205:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1253,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2823:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1254,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2849:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2823:38:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472616e6379","id":1256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2863:38:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""},"value":"LayerZeroMock: no receive reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""}],"id":1252,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2815:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2815:87:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1258,"nodeType":"ExpressionStatement","src":"2815:87:6"},{"expression":{"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1259,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2912:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1260,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"2937:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2912:33:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1262,"nodeType":"ExpressionStatement","src":"2912:33:6"},{"id":1263,"nodeType":"PlaceholderStatement","src":"2955:1:6"},{"expression":{"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1264,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"2966:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1265,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2991:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2966:37:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1267,"nodeType":"ExpressionStatement","src":"2966:37:6"}]},"id":1269,"name":"receiveNonReentrant","nameLocation":"2783:19:6","nodeType":"ModifierDefinition","parameters":{"id":1251,"nodeType":"ParameterList","parameters":[],"src":"2802:2:6"},"src":"2774:236:6","virtual":false,"visibility":"internal"},{"anonymous":false,"id":1275,"name":"UaForceResumeReceive","nameLocation":"3022:20:6","nodeType":"EventDefinition","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"3050:7:6","nodeType":"VariableDeclaration","scope":1275,"src":"3043:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3043:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1273,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3065:10:6","nodeType":"VariableDeclaration","scope":1275,"src":"3059:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1272,"name":"bytes","nodeType":"ElementaryTypeName","src":"3059:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3042:34:6"},"src":"3016:61:6"},{"anonymous":false,"id":1285,"name":"PayloadCleared","nameLocation":"3088:14:6","nodeType":"EventDefinition","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1277,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3110:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3103:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1276,"name":"uint16","nodeType":"ElementaryTypeName","src":"3103:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1279,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3128:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3122:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1278,"name":"bytes","nodeType":"ElementaryTypeName","src":"3122:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1281,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3147:5:6","nodeType":"VariableDeclaration","scope":1285,"src":"3140:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1280,"name":"uint64","nodeType":"ElementaryTypeName","src":"3140:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1283,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3162:10:6","nodeType":"VariableDeclaration","scope":1285,"src":"3154:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1282,"name":"address","nodeType":"ElementaryTypeName","src":"3154:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3102:71:6"},"src":"3082:92:6"},{"anonymous":false,"id":1299,"name":"PayloadStored","nameLocation":"3185:13:6","nodeType":"EventDefinition","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1287,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3206:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3199:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1286,"name":"uint16","nodeType":"ElementaryTypeName","src":"3199:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1289,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3224:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3218:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1288,"name":"bytes","nodeType":"ElementaryTypeName","src":"3218:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1291,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3244:10:6","nodeType":"VariableDeclaration","scope":1299,"src":"3236:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1290,"name":"address","nodeType":"ElementaryTypeName","src":"3236:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1293,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3263:5:6","nodeType":"VariableDeclaration","scope":1299,"src":"3256:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1292,"name":"uint64","nodeType":"ElementaryTypeName","src":"3256:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1295,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"3276:7:6","nodeType":"VariableDeclaration","scope":1299,"src":"3270:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1294,"name":"bytes","nodeType":"ElementaryTypeName","src":"3270:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1297,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"3291:6:6","nodeType":"VariableDeclaration","scope":1299,"src":"3285:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1296,"name":"bytes","nodeType":"ElementaryTypeName","src":"3285:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3198:100:6"},"src":"3179:120:6"},{"anonymous":false,"id":1305,"name":"ValueTransferFailed","nameLocation":"3310:19:6","nodeType":"EventDefinition","parameters":{"id":1304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1301,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3346:2:6","nodeType":"VariableDeclaration","scope":1305,"src":"3330:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1300,"name":"address","nodeType":"ElementaryTypeName","src":"3330:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1303,"indexed":true,"mutability":"mutable","name":"quantity","nameLocation":"3363:8:6","nodeType":"VariableDeclaration","scope":1305,"src":"3350:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1302,"name":"uint","nodeType":"ElementaryTypeName","src":"3350:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3329:43:6"},"src":"3304:69:6"},{"body":{"id":1342,"nodeType":"Block","src":"3408:501:6","statements":[{"expression":{"id":1312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1310,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"3418:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1311,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1307,"src":"3432:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3418:22:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":1313,"nodeType":"ExpressionStatement","src":"3418:22:6"},{"expression":{"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1314,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"3474:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653130","id":1316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3539:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653130","id":1317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3612:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653139","id":1318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"1e19"},{"hexValue":"313030","id":1319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3674:3:6","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"31","id":1320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3703:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1315,"name":"RelayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1217,"src":"3493:16:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RelayerFeeConfig_$1217_storage_ptr_$","typeString":"type(struct LZEndpointMock.RelayerFeeConfig storage pointer)"}},"id":1321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["dstPriceRatio","dstGasPriceInWei","dstNativeAmtCap","baseGas","gasPerByte"],"nodeType":"FunctionCall","src":"3493:222:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_memory_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig memory"}},"src":"3474:241:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":1323,"nodeType":"ExpressionStatement","src":"3474:241:6"},{"expression":{"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1324,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"3725:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653138","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3772:4:6","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},{"hexValue":"31303030","id":1327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3788:4:6","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":1325,"name":"ProtocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1206,"src":"3745:17:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtocolFeeConfig_$1206_storage_ptr_$","typeString":"type(struct LZEndpointMock.ProtocolFeeConfig storage pointer)"}},"id":1328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["zroFee","nativeBP"],"nodeType":"FunctionCall","src":"3745:49:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_memory_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig memory"}},"src":"3725:69:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":1330,"nodeType":"ExpressionStatement","src":"3725:69:6"},{"expression":{"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1331,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"3814:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31653136","id":1332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3826:4:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"value":"1e16"},"src":"3814:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1334,"nodeType":"ExpressionStatement","src":"3814:16:6"},{"expression":{"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1335,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"3840:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030303030","id":1338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3895:6:6","typeDescriptions":{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"},"value":"200000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"}],"expression":{"id":1336,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"3863:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"buildDefaultAdapterParams","nodeType":"MemberAccess","referencedDeclaration":258,"src":"3863:31:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3863:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3840:62:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1341,"nodeType":"ExpressionStatement","src":"3840:62:6"}]},"id":1343,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"_chainId","nameLocation":"3398:8:6","nodeType":"VariableDeclaration","scope":1343,"src":"3391:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1306,"name":"uint16","nodeType":"ElementaryTypeName","src":"3391:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3390:17:6"},"returnParameters":{"id":1309,"nodeType":"ParameterList","parameters":[],"src":"3408:0:6"},"scope":2453,"src":"3379:530:6","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[19],"body":{"id":1518,"nodeType":"Block","src":"4221:1804:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1362,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1347,"src":"4239:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4239:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3430","id":1364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4255:2:6","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"4239:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520616464726573732073697a65","id":1366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4259:46:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""},"value":"LayerZeroMock: incorrect remote address size"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""}],"id":1361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4231:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4231:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1368,"nodeType":"ExpressionStatement","src":"4231:75:6"},{"assignments":[1370],"declarations":[{"constant":false,"id":1370,"mutability":"mutable","name":"dstAddr","nameLocation":"4352:7:6","nodeType":"VariableDeclaration","scope":1518,"src":"4344:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1369,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1371,"nodeType":"VariableDeclarationStatement","src":"4344:15:6"},{"AST":{"nodeType":"YulBlock","src":"4378:56:6","statements":[{"nodeType":"YulAssignment","src":"4392:32:6","value":{"arguments":[{"arguments":[{"name":"_path","nodeType":"YulIdentifier","src":"4413:5:6"},{"kind":"number","nodeType":"YulLiteral","src":"4420:2:6","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4409:3:6"},"nodeType":"YulFunctionCall","src":"4409:14:6"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4403:5:6"},"nodeType":"YulFunctionCall","src":"4403:21:6"},"variableNames":[{"name":"dstAddr","nodeType":"YulIdentifier","src":"4392:7:6"}]}]},"evmVersion":"london","externalReferences":[{"declaration":1347,"isOffset":false,"isSlot":false,"src":"4413:5:6","valueSize":1},{"declaration":1370,"isOffset":false,"isSlot":false,"src":"4392:7:6","valueSize":1}],"id":1372,"nodeType":"InlineAssembly","src":"4369:65:6"},{"assignments":[1374],"declarations":[{"constant":false,"id":1374,"mutability":"mutable","name":"lzEndpoint","nameLocation":"4452:10:6","nodeType":"VariableDeclaration","scope":1518,"src":"4444:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1373,"name":"address","nodeType":"ElementaryTypeName","src":"4444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1378,"initialValue":{"baseExpression":{"id":1375,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"4465:16:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":1377,"indexExpression":{"id":1376,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"4482:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4465:25:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4444:46:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1380,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"4508:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4530:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4522:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1381,"name":"address","nodeType":"ElementaryTypeName","src":"4522:7:6","typeDescriptions":{}}},"id":1384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4522:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4508:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c617965725a65726f20456e64706f696e74206e6f7420666f756e64","id":1386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4534:57:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""},"value":"LayerZeroMock: destination LayerZero Endpoint not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""}],"id":1379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4500:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4500:92:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1388,"nodeType":"ExpressionStatement","src":"4500:92:6"},{"assignments":[1390],"declarations":[{"constant":false,"id":1390,"mutability":"mutable","name":"adapterParams","nameLocation":"4648:13:6","nodeType":"VariableDeclaration","scope":1518,"src":"4635:26:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1389,"name":"bytes","nodeType":"ElementaryTypeName","src":"4635:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1398,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1391,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"4664:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4664:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4688:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4664:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1396,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"4709:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4664:65:6","trueExpression":{"id":1395,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"4692:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4635:94:6"},{"assignments":[1400,null],"declarations":[{"constant":false,"id":1400,"mutability":"mutable","name":"nativeFee","nameLocation":"4745:9:6","nodeType":"VariableDeclaration","scope":1518,"src":"4740:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1399,"name":"uint","nodeType":"ElementaryTypeName","src":"4740:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":1414,"initialValue":{"arguments":[{"id":1402,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"4773:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":1403,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4783:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4783:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1405,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"4795:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1406,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"4805:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":1409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4835:3:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4827:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1407,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:6","typeDescriptions":{}}},"id":1410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4827:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4805:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1412,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"4841:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1401,"name":"estimateFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1824,"src":"4760:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view returns (uint256,uint256)"}},"id":1413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4760:95:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4739:116:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1416,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4873:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"4873:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1418,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"4886:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766520666f722066656573","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4897:43:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""},"value":"LayerZeroMock: not enough native for fees"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""}],"id":1415,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4865:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4865:76:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1422,"nodeType":"ExpressionStatement","src":"4865:76:6"},{"assignments":[1424],"declarations":[{"constant":false,"id":1424,"mutability":"mutable","name":"nonce","nameLocation":"4959:5:6","nodeType":"VariableDeclaration","scope":1518,"src":"4952:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1423,"name":"uint64","nodeType":"ElementaryTypeName","src":"4952:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1432,"initialValue":{"id":1431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4967:37:6","subExpression":{"baseExpression":{"baseExpression":{"id":1425,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"4969:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":1427,"indexExpression":{"id":1426,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"4983:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4969:23:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":1430,"indexExpression":{"expression":{"id":1428,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4993:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4993:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4969:35:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4952:52:6"},{"assignments":[1434],"declarations":[{"constant":false,"id":1434,"mutability":"mutable","name":"amount","nameLocation":"5060:6:6","nodeType":"VariableDeclaration","scope":1518,"src":"5055:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1433,"name":"uint","nodeType":"ElementaryTypeName","src":"5055:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1439,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1435,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5069:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"5069:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1437,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"5081:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5069:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5055:35:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1440,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5104:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5113:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5104:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1458,"nodeType":"IfStatement","src":"5100:163:6","trueBody":{"id":1457,"nodeType":"Block","src":"5116:147:6","statements":[{"assignments":[1444,null],"declarations":[{"constant":false,"id":1444,"mutability":"mutable","name":"success","nameLocation":"5136:7:6","nodeType":"VariableDeclaration","scope":1457,"src":"5131:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1443,"name":"bool","nodeType":"ElementaryTypeName","src":"5131:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1451,"initialValue":{"arguments":[{"hexValue":"","id":1449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5184:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1445,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"5149:14:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5149:19:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1447,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5176:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5149:34:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5149:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5130:57:6"},{"expression":{"arguments":[{"id":1453,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"5209:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","id":1454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5218:33:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""},"value":"LayerZeroMock: failed to refund"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""}],"id":1452,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5201:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5201:51:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1456,"nodeType":"ExpressionStatement","src":"5201:51:6"}]}},{"assignments":[null,1460,1462,1464],"declarations":[null,{"constant":false,"id":1460,"mutability":"mutable","name":"extraGas","nameLocation":"5425:8:6","nodeType":"VariableDeclaration","scope":1518,"src":"5420:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1459,"name":"uint","nodeType":"ElementaryTypeName","src":"5420:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1462,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"5440:12:6","nodeType":"VariableDeclaration","scope":1518,"src":"5435:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1461,"name":"uint","nodeType":"ElementaryTypeName","src":"5435:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1464,"mutability":"mutable","name":"dstNativeAddr","nameLocation":"5470:13:6","nodeType":"VariableDeclaration","scope":1518,"src":"5454:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1463,"name":"address","nodeType":"ElementaryTypeName","src":"5454:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":1469,"initialValue":{"arguments":[{"id":1467,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"5513:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1465,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"5487:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":1466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":375,"src":"5487:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5487:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"5417:110:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1470,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5541:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5556:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5541:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1492,"nodeType":"IfStatement","src":"5537:222:6","trueBody":{"id":1491,"nodeType":"Block","src":"5559:200:6","statements":[{"assignments":[1474,null],"declarations":[{"constant":false,"id":1474,"mutability":"mutable","name":"success","nameLocation":"5579:7:6","nodeType":"VariableDeclaration","scope":1491,"src":"5574:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1473,"name":"bool","nodeType":"ElementaryTypeName","src":"5574:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1481,"initialValue":{"arguments":[{"hexValue":"","id":1479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5632:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1475,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"5592:13:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5592:18:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1477,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5618:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5592:39:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5592:43:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5573:62:6"},{"condition":{"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5653:8:6","subExpression":{"id":1482,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"5654:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1490,"nodeType":"IfStatement","src":"5649:100:6","trueBody":{"id":1489,"nodeType":"Block","src":"5663:86:6","statements":[{"eventCall":{"arguments":[{"id":1485,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"5706:13:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1486,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"5721:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1484,"name":"ValueTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"5686:19:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5686:48:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1488,"nodeType":"EmitStatement","src":"5681:53:6"}]}}]}},{"assignments":[1494],"declarations":[{"constant":false,"id":1494,"mutability":"mutable","name":"srcUaAddress","nameLocation":"5782:12:6","nodeType":"VariableDeclaration","scope":1518,"src":"5769:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1493,"name":"bytes","nodeType":"ElementaryTypeName","src":"5769:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1501,"initialValue":{"arguments":[{"expression":{"id":1497,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5814:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5814:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1499,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"5826:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1495,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5797:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5797:16:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5797:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5769:65:6"},{"assignments":[1503],"declarations":[{"constant":false,"id":1503,"mutability":"mutable","name":"payload","nameLocation":"5887:7:6","nodeType":"VariableDeclaration","scope":1518,"src":"5874:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1502,"name":"bytes","nodeType":"ElementaryTypeName","src":"5874:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1505,"initialValue":{"id":1504,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"5897:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"5874:31:6"},{"expression":{"arguments":[{"id":1510,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"5957:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1511,"name":"srcUaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"5970:12:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1512,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"5984:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1513,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1424,"src":"5993:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1514,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"6000:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1515,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"6010:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1507,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"5930:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1506,"name":"LZEndpointMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2453,"src":"5915:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LZEndpointMock_$2453_$","typeString":"type(contract LZEndpointMock)"}},"id":1508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5915:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"receivePayload","nodeType":"MemberAccess","referencedDeclaration":1726,"src":"5915:41:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,uint256,bytes memory) external"}},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5915:103:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1517,"nodeType":"ExpressionStatement","src":"5915:103:6"}]},"functionSelector":"c5803100","id":1519,"implemented":true,"kind":"function","modifiers":[{"id":1359,"kind":"modifierInvocation","modifierName":{"id":1358,"name":"sendNonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1250,"src":"4204:16:6"},"nodeType":"ModifierInvocation","src":"4204:16:6"}],"name":"send","nameLocation":"4022:4:6","nodeType":"FunctionDefinition","overrides":{"id":1357,"nodeType":"OverrideSpecifier","overrides":[],"src":"4195:8:6"},"parameters":{"id":1356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1345,"mutability":"mutable","name":"_chainId","nameLocation":"4034:8:6","nodeType":"VariableDeclaration","scope":1519,"src":"4027:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1344,"name":"uint16","nodeType":"ElementaryTypeName","src":"4027:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1347,"mutability":"mutable","name":"_path","nameLocation":"4057:5:6","nodeType":"VariableDeclaration","scope":1519,"src":"4044:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1346,"name":"bytes","nodeType":"ElementaryTypeName","src":"4044:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1349,"mutability":"mutable","name":"_payload","nameLocation":"4079:8:6","nodeType":"VariableDeclaration","scope":1519,"src":"4064:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1348,"name":"bytes","nodeType":"ElementaryTypeName","src":"4064:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1351,"mutability":"mutable","name":"_refundAddress","nameLocation":"4105:14:6","nodeType":"VariableDeclaration","scope":1519,"src":"4089:30:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1350,"name":"address","nodeType":"ElementaryTypeName","src":"4089:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1353,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"4129:18:6","nodeType":"VariableDeclaration","scope":1519,"src":"4121:26:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1352,"name":"address","nodeType":"ElementaryTypeName","src":"4121:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1355,"mutability":"mutable","name":"_adapterParams","nameLocation":"4162:14:6","nodeType":"VariableDeclaration","scope":1519,"src":"4149:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1354,"name":"bytes","nodeType":"ElementaryTypeName","src":"4149:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4026:151:6"},"returnParameters":{"id":1360,"nodeType":"ParameterList","parameters":[],"src":"4221:0:6"},"scope":2453,"src":"4013:2012:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[34],"body":{"id":1725,"nodeType":"Block","src":"6212:2094:6","statements":[{"assignments":[1539],"declarations":[{"constant":false,"id":1539,"mutability":"mutable","name":"sp","nameLocation":"6244:2:6","nodeType":"VariableDeclaration","scope":1725,"src":"6222:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1538,"nodeType":"UserDefinedTypeName","pathNode":{"id":1537,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"6222:13:6"},"referencedDeclaration":1224,"src":"6222:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1545,"initialValue":{"baseExpression":{"baseExpression":{"id":1540,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"6249:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1542,"indexExpression":{"id":1541,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6263:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6249:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1544,"indexExpression":{"id":1543,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6276:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6249:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6222:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1547,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"6365:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6375:34:6","subExpression":{"baseExpression":{"baseExpression":{"id":1548,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"6377:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1550,"indexExpression":{"id":1549,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6390:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6377:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1552,"indexExpression":{"id":1551,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6403:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6377:32:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6365:44:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","id":1555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6411:28:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""},"value":"LayerZeroMock: wrong nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""}],"id":1546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6357:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6357:83:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1557,"nodeType":"ExpressionStatement","src":"6357:83:6"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1558,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1539,"src":"6578:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"6578:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6604:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6596:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6596:7:6","typeDescriptions":{}}},"id":1563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6596:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6578:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":1636,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7432:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1722,"nodeType":"Block","src":"7791:509:6","statements":[{"clauses":[{"block":{"id":1683,"nodeType":"Block","src":"7905:2:6","statements":[]},"errorName":"","id":1684,"nodeType":"TryCatchClause","src":"7905:2:6"},{"block":{"id":1719,"nodeType":"Block","src":"7936:354:6","statements":[{"expression":{"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1688,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"7954:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1691,"indexExpression":{"id":1689,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7968:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7954:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1692,"indexExpression":{"id":1690,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7981:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7954:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":1696,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8011:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8011:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8004:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1694,"name":"uint64","nodeType":"ElementaryTypeName","src":"8004:6:6","typeDescriptions":{}}},"id":1698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8004:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1699,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"8029:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1701,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8052:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1700,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8042:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8042:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1693,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"7990:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$1224_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":1703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7990:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"7954:108:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":1705,"nodeType":"ExpressionStatement","src":"7954:108:6"},{"eventCall":{"arguments":[{"id":1707,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"8099:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1708,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"8112:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1709,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"8119:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1710,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"8132:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1711,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"8140:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1712,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"8150:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1706,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"8085:13:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":1713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8085:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1714,"nodeType":"EmitStatement","src":"8080:77:6"},{"expression":{"id":1717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1715,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"8253:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8270:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8253:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1718,"nodeType":"ExpressionStatement","src":"8253:22:6"}]},"errorName":"","id":1720,"nodeType":"TryCatchClause","parameters":{"id":1687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1686,"mutability":"mutable","name":"reason","nameLocation":"7928:6:6","nodeType":"VariableDeclaration","scope":1720,"src":"7915:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1685,"name":"bytes","nodeType":"ElementaryTypeName","src":"7915:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7914:21:6"},"src":"7908:382:6"}],"externalCall":{"arguments":[{"id":1678,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7867:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1679,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7880:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1680,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"7887:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1681,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7895:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":1673,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7828:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1672,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"7809:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":1674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7809:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"7809:41:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"id":1676,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1529,"src":"7856:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"7809:57:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$gas","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7809:95:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1721,"nodeType":"TryStatement","src":"7805:485:6"}]},"id":1723,"nodeType":"IfStatement","src":"7428:872:6","trueBody":{"id":1671,"nodeType":"Block","src":"7448:337:6","statements":[{"expression":{"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1637,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"7462:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1640,"indexExpression":{"id":1638,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7476:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7462:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1641,"indexExpression":{"id":1639,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7489:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7462:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":1645,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7519:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7519:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7512:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1643,"name":"uint64","nodeType":"ElementaryTypeName","src":"7512:6:6","typeDescriptions":{}}},"id":1647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7512:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1648,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7537:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1650,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7560:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1649,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7550:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7550:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1642,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"7498:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$1224_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7498:72:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"7462:108:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":1654,"nodeType":"ExpressionStatement","src":"7462:108:6"},{"eventCall":{"arguments":[{"id":1656,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"7603:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1657,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"7616:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1658,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7623:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1659,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"7636:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1660,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7644:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"hexValue":"","id":1663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7660:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7654:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1661,"name":"bytes","nodeType":"ElementaryTypeName","src":"7654:5:6","typeDescriptions":{}}},"id":1664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7654:9:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1655,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"7589:13:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":1665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7589:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1666,"nodeType":"EmitStatement","src":"7584:80:6"},{"expression":{"id":1669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1667,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"7752:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7769:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7752:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1670,"nodeType":"ExpressionStatement","src":"7752:22:6"}]}},"id":1724,"nodeType":"IfStatement","src":"6574:1726:6","trueBody":{"id":1635,"nodeType":"Block","src":"6608:814:6","statements":[{"assignments":[1569],"declarations":[{"constant":false,"id":1569,"mutability":"mutable","name":"msgs","nameLocation":"6646:4:6","nodeType":"VariableDeclaration","scope":1635,"src":"6622:28:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":1567,"nodeType":"UserDefinedTypeName","pathNode":{"id":1566,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"6622:13:6"},"referencedDeclaration":1231,"src":"6622:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":1568,"nodeType":"ArrayTypeName","src":"6622:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":1575,"initialValue":{"baseExpression":{"baseExpression":{"id":1570,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"6653:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":1572,"indexExpression":{"id":1571,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1521,"src":"6667:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6653:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":1574,"indexExpression":{"id":1573,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"6680:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6653:33:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6622:64:6"},{"assignments":[1578],"declarations":[{"constant":false,"id":1578,"mutability":"mutable","name":"newMsg","nameLocation":"6721:6:6","nodeType":"VariableDeclaration","scope":1635,"src":"6700:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":1577,"nodeType":"UserDefinedTypeName","pathNode":{"id":1576,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"6700:13:6"},"referencedDeclaration":1231,"src":"6700:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":1584,"initialValue":{"arguments":[{"id":1580,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"6744:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1581,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"6757:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1582,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"6765:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1579,"name":"QueuedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"6730:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QueuedPayload_$1231_storage_ptr_$","typeString":"type(struct LZEndpointMock.QueuedPayload storage pointer)"}},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6730:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6700:74:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1585,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"6980:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6980:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6994:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6980:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1633,"nodeType":"Block","src":"7362:50:6","statements":[{"expression":{"arguments":[{"id":1630,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7390:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":1627,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7380:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7380:9:6","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$1231_storage_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":1631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7380:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1632,"nodeType":"ExpressionStatement","src":"7380:17:6"}]},"id":1634,"nodeType":"IfStatement","src":"6976:436:6","trueBody":{"id":1626,"nodeType":"Block","src":"6997:359:6","statements":[{"expression":{"arguments":[{"id":1592,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7061:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":1589,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7051:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7051:9:6","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$1231_storage_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":1593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7051:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1594,"nodeType":"ExpressionStatement","src":"7051:17:6"},{"body":{"id":1618,"nodeType":"Block","src":"7184:62:6","statements":[{"expression":{"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1608,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7206:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1612,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1609,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7211:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7215:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7211:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7206:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1613,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7220:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1615,"indexExpression":{"id":1614,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7225:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7220:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"src":"7206:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":1617,"nodeType":"ExpressionStatement","src":"7206:21:6"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7158:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1600,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7162:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7162:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7176:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7162:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7158:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1619,"initializationExpression":{"assignments":[1596],"declarations":[{"constant":false,"id":1596,"mutability":"mutable","name":"i","nameLocation":"7151:1:6","nodeType":"VariableDeclaration","scope":1619,"src":"7146:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint","nodeType":"ElementaryTypeName","src":"7146:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1598,"initialValue":{"hexValue":"30","id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7155:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7146:10:6"},"loopExpression":{"expression":{"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7179:3:6","subExpression":{"id":1605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"7179:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1607,"nodeType":"ExpressionStatement","src":"7179:3:6"},"nodeType":"ForStatement","src":"7141:105:6"},{"expression":{"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1620,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1569,"src":"7325:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":1622,"indexExpression":{"hexValue":"30","id":1621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7330:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7325:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1623,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7335:6:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"src":"7325:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":1625,"nodeType":"ExpressionStatement","src":"7325:16:6"}]}}]}}]},"functionSelector":"c2fa4813","id":1726,"implemented":true,"kind":"function","modifiers":[{"id":1535,"kind":"modifierInvocation","modifierName":{"id":1534,"name":"receiveNonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1269,"src":"6192:19:6"},"nodeType":"ModifierInvocation","src":"6192:19:6"}],"name":"receivePayload","nameLocation":"6040:14:6","nodeType":"FunctionDefinition","overrides":{"id":1533,"nodeType":"OverrideSpecifier","overrides":[],"src":"6183:8:6"},"parameters":{"id":1532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1521,"mutability":"mutable","name":"_srcChainId","nameLocation":"6062:11:6","nodeType":"VariableDeclaration","scope":1726,"src":"6055:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1520,"name":"uint16","nodeType":"ElementaryTypeName","src":"6055:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1523,"mutability":"mutable","name":"_path","nameLocation":"6090:5:6","nodeType":"VariableDeclaration","scope":1726,"src":"6075:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1522,"name":"bytes","nodeType":"ElementaryTypeName","src":"6075:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1525,"mutability":"mutable","name":"_dstAddress","nameLocation":"6105:11:6","nodeType":"VariableDeclaration","scope":1726,"src":"6097:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1524,"name":"address","nodeType":"ElementaryTypeName","src":"6097:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1527,"mutability":"mutable","name":"_nonce","nameLocation":"6125:6:6","nodeType":"VariableDeclaration","scope":1726,"src":"6118:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1526,"name":"uint64","nodeType":"ElementaryTypeName","src":"6118:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1529,"mutability":"mutable","name":"_gasLimit","nameLocation":"6138:9:6","nodeType":"VariableDeclaration","scope":1726,"src":"6133:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1528,"name":"uint","nodeType":"ElementaryTypeName","src":"6133:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1531,"mutability":"mutable","name":"_payload","nameLocation":"6164:8:6","nodeType":"VariableDeclaration","scope":1726,"src":"6149:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1530,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6054:119:6"},"returnParameters":{"id":1536,"nodeType":"ParameterList","parameters":[],"src":"6212:0:6"},"scope":2453,"src":"6031:2275:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[43],"body":{"id":1742,"nodeType":"Block","src":"8416:53:6","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1736,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"8433:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1738,"indexExpression":{"id":1737,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"8446:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8433:22:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1740,"indexExpression":{"id":1739,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"8456:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8433:29:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1735,"id":1741,"nodeType":"Return","src":"8426:36:6"}]},"functionSelector":"fdc07c70","id":1743,"implemented":true,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"8321:15:6","nodeType":"FunctionDefinition","overrides":{"id":1732,"nodeType":"OverrideSpecifier","overrides":[],"src":"8390:8:6"},"parameters":{"id":1731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1728,"mutability":"mutable","name":"_chainID","nameLocation":"8344:8:6","nodeType":"VariableDeclaration","scope":1743,"src":"8337:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1727,"name":"uint16","nodeType":"ElementaryTypeName","src":"8337:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1730,"mutability":"mutable","name":"_path","nameLocation":"8369:5:6","nodeType":"VariableDeclaration","scope":1743,"src":"8354:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1729,"name":"bytes","nodeType":"ElementaryTypeName","src":"8354:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8336:39:6"},"returnParameters":{"id":1735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1734,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1743,"src":"8408:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1733,"name":"uint64","nodeType":"ElementaryTypeName","src":"8408:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8407:8:6"},"scope":2453,"src":"8312:157:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[52],"body":{"id":1759,"nodeType":"Block","src":"8579:60:6","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1753,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"8596:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":1755,"indexExpression":{"id":1754,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"8610:8:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8596:23:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":1757,"indexExpression":{"id":1756,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"8620:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8596:36:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1752,"id":1758,"nodeType":"Return","src":"8589:43:6"}]},"functionSelector":"7a145748","id":1760,"implemented":true,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"8484:16:6","nodeType":"FunctionDefinition","overrides":{"id":1749,"nodeType":"OverrideSpecifier","overrides":[],"src":"8553:8:6"},"parameters":{"id":1748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1745,"mutability":"mutable","name":"_chainID","nameLocation":"8508:8:6","nodeType":"VariableDeclaration","scope":1760,"src":"8501:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1744,"name":"uint16","nodeType":"ElementaryTypeName","src":"8501:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1747,"mutability":"mutable","name":"_srcAddress","nameLocation":"8526:11:6","nodeType":"VariableDeclaration","scope":1760,"src":"8518:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1746,"name":"address","nodeType":"ElementaryTypeName","src":"8518:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8500:38:6"},"returnParameters":{"id":1752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1760,"src":"8571:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1750,"name":"uint64","nodeType":"ElementaryTypeName","src":"8571:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8570:8:6"},"scope":2453,"src":"8475:164:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[69],"body":{"id":1823,"nodeType":"Block","src":"8831:507:6","statements":[{"assignments":[1778],"declarations":[{"constant":false,"id":1778,"mutability":"mutable","name":"adapterParams","nameLocation":"8854:13:6","nodeType":"VariableDeclaration","scope":1823,"src":"8841:26:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1777,"name":"bytes","nodeType":"ElementaryTypeName","src":"8841:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1786,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1779,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"8870:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8870:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8894:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8870:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1784,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"8915:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8870:65:6","trueExpression":{"id":1783,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"8898:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8841:94:6"},{"assignments":[1788],"declarations":[{"constant":false,"id":1788,"mutability":"mutable","name":"relayerFee","nameLocation":"8974:10:6","nodeType":"VariableDeclaration","scope":1823,"src":"8969:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1787,"name":"uint","nodeType":"ElementaryTypeName","src":"8969:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1797,"initialValue":{"arguments":[{"id":1790,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"9002:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"31","id":1791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9015:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":1792,"name":"_userApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"9018:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1793,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1766,"src":"9036:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9036:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1795,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"9053:13:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1789,"name":"_getRelayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2452,"src":"8987:14:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint16,uint16,address,uint256,bytes memory) view returns (uint256)"}},"id":1796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8987:80:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8969:98:6"},{"assignments":[1799],"declarations":[{"constant":false,"id":1799,"mutability":"mutable","name":"protocolFee","nameLocation":"9108:11:6","nodeType":"VariableDeclaration","scope":1823,"src":"9103:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1798,"name":"uint","nodeType":"ElementaryTypeName","src":"9103:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1805,"initialValue":{"arguments":[{"id":1801,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"9139:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1802,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"9150:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1803,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"9162:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1800,"name":"_getProtocolFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2356,"src":"9122:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) view returns (uint256)"}},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9122:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9103:69:6"},{"expression":{"condition":{"id":1806,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"9182:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1810,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9217:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1811,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"9229:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9217:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9182:58:6","trueExpression":{"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1807,"name":"zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1775,"src":"9194:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1808,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"9203:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9194:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1814,"nodeType":"ExpressionStatement","src":"9182:58:6"},{"expression":{"id":1821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1815,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9285:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1816,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"9297:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1817,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"9309:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9297:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1819,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"9322:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9297:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9285:46:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1822,"nodeType":"ExpressionStatement","src":"9285:46:6"}]},"functionSelector":"40a7bb10","id":1824,"implemented":true,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"8654:12:6","nodeType":"FunctionDefinition","parameters":{"id":1771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1762,"mutability":"mutable","name":"_dstChainId","nameLocation":"8674:11:6","nodeType":"VariableDeclaration","scope":1824,"src":"8667:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1761,"name":"uint16","nodeType":"ElementaryTypeName","src":"8667:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1764,"mutability":"mutable","name":"_userApplication","nameLocation":"8695:16:6","nodeType":"VariableDeclaration","scope":1824,"src":"8687:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1763,"name":"address","nodeType":"ElementaryTypeName","src":"8687:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1766,"mutability":"mutable","name":"_payload","nameLocation":"8726:8:6","nodeType":"VariableDeclaration","scope":1824,"src":"8713:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1765,"name":"bytes","nodeType":"ElementaryTypeName","src":"8713:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1768,"mutability":"mutable","name":"_payInZRO","nameLocation":"8741:9:6","nodeType":"VariableDeclaration","scope":1824,"src":"8736:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1767,"name":"bool","nodeType":"ElementaryTypeName","src":"8736:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1770,"mutability":"mutable","name":"_adapterParams","nameLocation":"8765:14:6","nodeType":"VariableDeclaration","scope":1824,"src":"8752:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1769,"name":"bytes","nodeType":"ElementaryTypeName","src":"8752:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8666:114:6"},"returnParameters":{"id":1776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1773,"mutability":"mutable","name":"nativeFee","nameLocation":"8807:9:6","nodeType":"VariableDeclaration","scope":1824,"src":"8802:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1772,"name":"uint","nodeType":"ElementaryTypeName","src":"8802:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1775,"mutability":"mutable","name":"zroFee","nameLocation":"8823:6:6","nodeType":"VariableDeclaration","scope":1824,"src":"8818:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1774,"name":"uint","nodeType":"ElementaryTypeName","src":"8818:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8801:29:6"},"scope":2453,"src":"8645:693:6","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[74],"body":{"id":1832,"nodeType":"Block","src":"9406:35:6","statements":[{"expression":{"id":1830,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1156,"src":"9423:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":1829,"id":1831,"nodeType":"Return","src":"9416:18:6"}]},"functionSelector":"3408e470","id":1833,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"9353:10:6","nodeType":"FunctionDefinition","overrides":{"id":1826,"nodeType":"OverrideSpecifier","overrides":[],"src":"9380:8:6"},"parameters":{"id":1825,"nodeType":"ParameterList","parameters":[],"src":"9363:2:6"},"returnParameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1833,"src":"9398:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1827,"name":"uint16","nodeType":"ElementaryTypeName","src":"9398:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"9397:8:6"},"scope":2453,"src":"9344:97:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[83],"body":{"id":1933,"nodeType":"Block","src":"9554:686:6","statements":[{"assignments":[1845],"declarations":[{"constant":false,"id":1845,"mutability":"mutable","name":"sp","nameLocation":"9586:2:6","nodeType":"VariableDeclaration","scope":1933,"src":"9564:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1844,"nodeType":"UserDefinedTypeName","pathNode":{"id":1843,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"9564:13:6"},"referencedDeclaration":1224,"src":"9564:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1851,"initialValue":{"baseExpression":{"baseExpression":{"id":1846,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"9591:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1848,"indexExpression":{"id":1847,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"9605:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9591:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1850,"indexExpression":{"id":1849,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"9618:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9591:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9564:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1853,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9642:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9642:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9668:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9660:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9660:7:6","typeDescriptions":{}}},"id":1858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9660:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9642:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":1860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9672:34:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":1852,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9634:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9634:73:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1862,"nodeType":"ExpressionStatement","src":"9634:73:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1864,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"9725:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9725:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1866,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9744:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"9744:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9725:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1870,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"9774:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1869,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9764:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1872,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9787:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9787:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9764:37:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9725:76:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","id":1876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9803:32:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""},"value":"LayerZeroMock: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""}],"id":1863,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9717:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9717:119:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1878,"nodeType":"ExpressionStatement","src":"9717:119:6"},{"assignments":[1880],"declarations":[{"constant":false,"id":1880,"mutability":"mutable","name":"dstAddress","nameLocation":"9855:10:6","nodeType":"VariableDeclaration","scope":1933,"src":"9847:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1879,"name":"address","nodeType":"ElementaryTypeName","src":"9847:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1883,"initialValue":{"expression":{"id":1881,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9868:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"9868:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9847:34:6"},{"expression":{"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1884,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9926:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"9926:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9945:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9926:20:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":1889,"nodeType":"ExpressionStatement","src":"9926:20:6"},{"expression":{"id":1897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1890,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9956:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"9956:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9980:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9972:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1893,"name":"address","nodeType":"ElementaryTypeName","src":"9972:7:6","typeDescriptions":{}}},"id":1896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9972:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9956:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1898,"nodeType":"ExpressionStatement","src":"9956:26:6"},{"expression":{"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1899,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"9992:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"9992:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10017:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10009:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10009:7:6","typeDescriptions":{}}},"id":1905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10009:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9992:27:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1907,"nodeType":"ExpressionStatement","src":"9992:27:6"},{"assignments":[1909],"declarations":[{"constant":false,"id":1909,"mutability":"mutable","name":"nonce","nameLocation":"10037:5:6","nodeType":"VariableDeclaration","scope":1933,"src":"10030:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1908,"name":"uint64","nodeType":"ElementaryTypeName","src":"10030:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1915,"initialValue":{"baseExpression":{"baseExpression":{"id":1910,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"10045:12:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":1912,"indexExpression":{"id":1911,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10058:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10045:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":1914,"indexExpression":{"id":1913,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10071:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10045:32:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10030:47:6"},{"expression":{"arguments":[{"id":1920,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10129:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1921,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10142:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1922,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"10149:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1923,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"10156:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":1917,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"10107:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1916,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"10088:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10088:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"10088:40:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10088:77:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1925,"nodeType":"ExpressionStatement","src":"10088:77:6"},{"eventCall":{"arguments":[{"id":1927,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"10195:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1928,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"10208:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1929,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"10215:5:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1930,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"10222:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1926,"name":"PayloadCleared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1285,"src":"10180:14:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_address_$returns$__$","typeString":"function (uint16,bytes memory,uint64,address)"}},"id":1931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10180:53:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1932,"nodeType":"EmitStatement","src":"10175:58:6"}]},"functionSelector":"aaff5f16","id":1934,"implemented":true,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"9456:12:6","nodeType":"FunctionDefinition","overrides":{"id":1841,"nodeType":"OverrideSpecifier","overrides":[],"src":"9545:8:6"},"parameters":{"id":1840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1835,"mutability":"mutable","name":"_srcChainId","nameLocation":"9476:11:6","nodeType":"VariableDeclaration","scope":1934,"src":"9469:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1834,"name":"uint16","nodeType":"ElementaryTypeName","src":"9469:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1837,"mutability":"mutable","name":"_path","nameLocation":"9504:5:6","nodeType":"VariableDeclaration","scope":1934,"src":"9489:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1836,"name":"bytes","nodeType":"ElementaryTypeName","src":"9489:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1839,"mutability":"mutable","name":"_payload","nameLocation":"9526:8:6","nodeType":"VariableDeclaration","scope":1934,"src":"9511:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1838,"name":"bytes","nodeType":"ElementaryTypeName","src":"9511:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9468:67:6"},"returnParameters":{"id":1842,"nodeType":"ParameterList","parameters":[],"src":"9554:0:6"},"scope":2453,"src":"9447:793:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[92],"body":{"id":1961,"nodeType":"Block","src":"10352:122:6","statements":[{"assignments":[1946],"declarations":[{"constant":false,"id":1946,"mutability":"mutable","name":"sp","nameLocation":"10384:2:6","nodeType":"VariableDeclaration","scope":1961,"src":"10362:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":1945,"nodeType":"UserDefinedTypeName","pathNode":{"id":1944,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"10362:13:6"},"referencedDeclaration":1224,"src":"10362:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":1952,"initialValue":{"baseExpression":{"baseExpression":{"id":1947,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"10389:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":1949,"indexExpression":{"id":1948,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"10403:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10389:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":1951,"indexExpression":{"id":1950,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1938,"src":"10416:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10389:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10362:60:6"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1953,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1946,"src":"10439:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":1954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"10439:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10457:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10457:7:6","typeDescriptions":{}}},"id":1958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10457:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10439:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1943,"id":1960,"nodeType":"Return","src":"10432:35:6"}]},"functionSelector":"0eaf6ea6","id":1962,"implemented":true,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"10255:16:6","nodeType":"FunctionDefinition","overrides":{"id":1940,"nodeType":"OverrideSpecifier","overrides":[],"src":"10328:8:6"},"parameters":{"id":1939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1936,"mutability":"mutable","name":"_srcChainId","nameLocation":"10279:11:6","nodeType":"VariableDeclaration","scope":1962,"src":"10272:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1935,"name":"uint16","nodeType":"ElementaryTypeName","src":"10272:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1938,"mutability":"mutable","name":"_path","nameLocation":"10307:5:6","nodeType":"VariableDeclaration","scope":1962,"src":"10292:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1937,"name":"bytes","nodeType":"ElementaryTypeName","src":"10292:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10271:42:6"},"returnParameters":{"id":1943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1962,"src":"10346:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1941,"name":"bool","nodeType":"ElementaryTypeName","src":"10346:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10345:6:6"},"scope":2453,"src":"10246:228:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[99],"body":{"id":1975,"nodeType":"Block","src":"10561:37:6","statements":[{"expression":{"arguments":[{"id":1972,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10586:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}],"id":1971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10578:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1970,"name":"address","nodeType":"ElementaryTypeName","src":"10578:7:6","typeDescriptions":{}}},"id":1973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10578:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1969,"id":1974,"nodeType":"Return","src":"10571:20:6"}]},"functionSelector":"9c729da1","id":1976,"implemented":true,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"10489:21:6","nodeType":"FunctionDefinition","overrides":{"id":1966,"nodeType":"OverrideSpecifier","overrides":[],"src":"10534:8:6"},"parameters":{"id":1965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1976,"src":"10511:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1963,"name":"address","nodeType":"ElementaryTypeName","src":"10511:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10510:9:6"},"returnParameters":{"id":1969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1976,"src":"10552:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1967,"name":"address","nodeType":"ElementaryTypeName","src":"10552:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10551:9:6"},"scope":2453,"src":"10480:118:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[106],"body":{"id":1989,"nodeType":"Block","src":"10688:37:6","statements":[{"expression":{"arguments":[{"id":1986,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10713:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$2453","typeString":"contract LZEndpointMock"}],"id":1985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10705:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1984,"name":"address","nodeType":"ElementaryTypeName","src":"10705:7:6","typeDescriptions":{}}},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10705:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1983,"id":1988,"nodeType":"Return","src":"10698:20:6"}]},"functionSelector":"71ba2fd6","id":1990,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"10613:24:6","nodeType":"FunctionDefinition","overrides":{"id":1980,"nodeType":"OverrideSpecifier","overrides":[],"src":"10661:8:6"},"parameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1990,"src":"10638:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1977,"name":"address","nodeType":"ElementaryTypeName","src":"10638:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10637:9:6"},"returnParameters":{"id":1983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1990,"src":"10679:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1981,"name":"address","nodeType":"ElementaryTypeName","src":"10679:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10678:9:6"},"scope":2453,"src":"10604:121:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[111],"body":{"id":2000,"nodeType":"Block","src":"10797:55:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1996,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"10814:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1997,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10837:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10814:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1995,"id":1999,"nodeType":"Return","src":"10807:38:6"}]},"functionSelector":"e97a448a","id":2001,"implemented":true,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"10740:16:6","nodeType":"FunctionDefinition","overrides":{"id":1992,"nodeType":"OverrideSpecifier","overrides":[],"src":"10773:8:6"},"parameters":{"id":1991,"nodeType":"ParameterList","parameters":[],"src":"10756:2:6"},"returnParameters":{"id":1995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2001,"src":"10791:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1993,"name":"bool","nodeType":"ElementaryTypeName","src":"10791:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10790:6:6"},"scope":2453,"src":"10731:121:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[116],"body":{"id":2011,"nodeType":"Block","src":"10926:58:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2007,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"10943:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2008,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"10969:8:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10943:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2006,"id":2010,"nodeType":"Return","src":"10936:41:6"}]},"functionSelector":"ca066b35","id":2012,"implemented":true,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"10867:18:6","nodeType":"FunctionDefinition","overrides":{"id":2003,"nodeType":"OverrideSpecifier","overrides":[],"src":"10902:8:6"},"parameters":{"id":2002,"nodeType":"ParameterList","parameters":[],"src":"10885:2:6"},"returnParameters":{"id":2006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2012,"src":"10920:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2004,"name":"bool","nodeType":"ElementaryTypeName","src":"10920:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10919:6:6"},"scope":2453,"src":"10858:126:6","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[129],"body":{"id":2028,"nodeType":"Block","src":"11174:26:6","statements":[{"expression":{"hexValue":"","id":2026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11191:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":2025,"id":2027,"nodeType":"Return","src":"11184:9:6"}]},"functionSelector":"f5ecbdbc","id":2029,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"10999:9:6","nodeType":"FunctionDefinition","overrides":{"id":2022,"nodeType":"OverrideSpecifier","overrides":[],"src":"11142:8:6"},"parameters":{"id":2021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11018:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2013,"name":"uint16","nodeType":"ElementaryTypeName","src":"11018:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11047:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2015,"name":"uint16","nodeType":"ElementaryTypeName","src":"11047:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11076:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2017,"name":"address","nodeType":"ElementaryTypeName","src":"11076:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11101:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2019,"name":"uint","nodeType":"ElementaryTypeName","src":"11101:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11008:119:6"},"returnParameters":{"id":2025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2029,"src":"11160:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2023,"name":"bytes","nodeType":"ElementaryTypeName","src":"11160:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11159:14:6"},"scope":2453,"src":"10990:210:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[136],"body":{"id":2039,"nodeType":"Block","src":"11314:25:6","statements":[{"expression":{"hexValue":"31","id":2037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11331:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":2036,"id":2038,"nodeType":"Return","src":"11324:8:6"}]},"functionSelector":"096568f6","id":2040,"implemented":true,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"11215:14:6","nodeType":"FunctionDefinition","overrides":{"id":2033,"nodeType":"OverrideSpecifier","overrides":[],"src":"11288:8:6"},"parameters":{"id":2032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2040,"src":"11239:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2030,"name":"address","nodeType":"ElementaryTypeName","src":"11239:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11229:44:6"},"returnParameters":{"id":2036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2040,"src":"11306:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2034,"name":"uint16","nodeType":"ElementaryTypeName","src":"11306:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11305:8:6"},"scope":2453,"src":"11206:133:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[143],"body":{"id":2050,"nodeType":"Block","src":"11456:25:6","statements":[{"expression":{"hexValue":"31","id":2048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11473:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":2047,"id":2049,"nodeType":"Return","src":"11466:8:6"}]},"functionSelector":"da1a7c9a","id":2051,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"11354:17:6","nodeType":"FunctionDefinition","overrides":{"id":2044,"nodeType":"OverrideSpecifier","overrides":[],"src":"11430:8:6"},"parameters":{"id":2043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2051,"src":"11381:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2041,"name":"address","nodeType":"ElementaryTypeName","src":"11381:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11371:44:6"},"returnParameters":{"id":2047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2051,"src":"11448:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2045,"name":"uint16","nodeType":"ElementaryTypeName","src":"11448:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11447:8:6"},"scope":2453,"src":"11345:136:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[171],"body":{"id":2063,"nodeType":"Block","src":"11652:2:6","statements":[]},"functionSelector":"cbed8b9c","id":2064,"implemented":true,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"11496:9:6","nodeType":"FunctionDefinition","overrides":{"id":2061,"nodeType":"OverrideSpecifier","overrides":[],"src":"11643:8:6"},"parameters":{"id":2060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11515:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2052,"name":"uint16","nodeType":"ElementaryTypeName","src":"11515:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11544:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2054,"name":"uint16","nodeType":"ElementaryTypeName","src":"11544:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11573:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2056,"name":"uint","nodeType":"ElementaryTypeName","src":"11573:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2064,"src":"11603:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2058,"name":"bytes","nodeType":"ElementaryTypeName","src":"11603:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11505:128:6"},"returnParameters":{"id":2062,"nodeType":"ParameterList","parameters":[],"src":"11652:0:6"},"scope":2453,"src":"11487:167:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[176],"body":{"id":2070,"nodeType":"Block","src":"11736:2:6","statements":[]},"functionSelector":"07e0db17","id":2071,"implemented":true,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"11669:14:6","nodeType":"FunctionDefinition","overrides":{"id":2068,"nodeType":"OverrideSpecifier","overrides":[],"src":"11727:8:6"},"parameters":{"id":2067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2071,"src":"11693:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2065,"name":"uint16","nodeType":"ElementaryTypeName","src":"11693:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11683:34:6"},"returnParameters":{"id":2069,"nodeType":"ParameterList","parameters":[],"src":"11736:0:6"},"scope":2453,"src":"11660:78:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[181],"body":{"id":2077,"nodeType":"Block","src":"11823:2:6","statements":[]},"functionSelector":"10ddb137","id":2078,"implemented":true,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"11753:17:6","nodeType":"FunctionDefinition","overrides":{"id":2075,"nodeType":"OverrideSpecifier","overrides":[],"src":"11814:8:6"},"parameters":{"id":2074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2078,"src":"11780:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2072,"name":"uint16","nodeType":"ElementaryTypeName","src":"11780:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11770:34:6"},"returnParameters":{"id":2076,"nodeType":"ParameterList","parameters":[],"src":"11823:0:6"},"scope":2453,"src":"11744:81:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[188],"body":{"id":2149,"nodeType":"Block","src":"11919:632:6","statements":[{"assignments":[2088],"declarations":[{"constant":false,"id":2088,"mutability":"mutable","name":"sp","nameLocation":"11951:2:6","nodeType":"VariableDeclaration","scope":2149,"src":"11929:24:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":2087,"nodeType":"UserDefinedTypeName","pathNode":{"id":2086,"name":"StoredPayload","nodeType":"IdentifierPath","referencedDeclaration":1224,"src":"11929:13:6"},"referencedDeclaration":1224,"src":"11929:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":2094,"initialValue":{"baseExpression":{"baseExpression":{"id":2089,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"11956:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2091,"indexExpression":{"id":2090,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"11970:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11956:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1224_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2093,"indexExpression":{"id":2092,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"11983:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11956:33:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11929:60:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2096,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12085:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"12085:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12111:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12103:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12103:7:6","typeDescriptions":{}}},"id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12103:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12085:28:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":2103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12115:34:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":2095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12077:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12077:73:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2105,"nodeType":"ExpressionStatement","src":"12077:73:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2107,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12168:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"12168:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2109,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12185:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12185:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12168:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","id":2112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12197:31:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""},"value":"LayerZeroMock: invalid caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""}],"id":2106,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12160:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12160:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2114,"nodeType":"ExpressionStatement","src":"12160:69:6"},{"expression":{"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2115,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12275:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1219,"src":"12275:16:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12294:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12275:20:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2120,"nodeType":"ExpressionStatement","src":"12275:20:6"},{"expression":{"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2121,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12305:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1221,"src":"12305:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12329:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12321:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2124,"name":"address","nodeType":"ElementaryTypeName","src":"12321:7:6","typeDescriptions":{}}},"id":2127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12321:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12305:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2129,"nodeType":"ExpressionStatement","src":"12305:26:6"},{"expression":{"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2130,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"12341:2:6","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1224_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1223,"src":"12341:14:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12366:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12358:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12358:7:6","typeDescriptions":{}}},"id":2136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12358:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12341:27:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2138,"nodeType":"ExpressionStatement","src":"12341:27:6"},{"eventCall":{"arguments":[{"id":2140,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"12405:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2141,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"12418:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2139,"name":"UaForceResumeReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"12384:20:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12384:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2143,"nodeType":"EmitStatement","src":"12379:45:6"},{"expression":{"arguments":[{"id":2145,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"12525:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2146,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"12538:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2144,"name":"_clearMsgQue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2326,"src":"12512:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (uint16,bytes calldata)"}},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12512:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2148,"nodeType":"ExpressionStatement","src":"12512:32:6"}]},"functionSelector":"42d65a8d","id":2150,"implemented":true,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"11840:18:6","nodeType":"FunctionDefinition","overrides":{"id":2084,"nodeType":"OverrideSpecifier","overrides":[],"src":"11910:8:6"},"parameters":{"id":2083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2080,"mutability":"mutable","name":"_srcChainId","nameLocation":"11866:11:6","nodeType":"VariableDeclaration","scope":2150,"src":"11859:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2079,"name":"uint16","nodeType":"ElementaryTypeName","src":"11859:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2082,"mutability":"mutable","name":"_path","nameLocation":"11894:5:6","nodeType":"VariableDeclaration","scope":2150,"src":"11879:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2081,"name":"bytes","nodeType":"ElementaryTypeName","src":"11879:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11858:42:6"},"returnParameters":{"id":2085,"nodeType":"ParameterList","parameters":[],"src":"11919:0:6"},"scope":2453,"src":"11831:720:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2166,"nodeType":"Block","src":"12782:70:6","statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":2159,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"12799:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2161,"indexExpression":{"id":2160,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"12813:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12799:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2163,"indexExpression":{"id":2162,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2154,"src":"12826:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12799:39:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12799:46:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2158,"id":2165,"nodeType":"Return","src":"12792:53:6"}]},"functionSelector":"7f6df8e6","id":2167,"implemented":true,"kind":"function","modifiers":[],"name":"getLengthOfQueue","nameLocation":"12688:16:6","nodeType":"FunctionDefinition","parameters":{"id":2155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2152,"mutability":"mutable","name":"_srcChainId","nameLocation":"12712:11:6","nodeType":"VariableDeclaration","scope":2167,"src":"12705:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2151,"name":"uint16","nodeType":"ElementaryTypeName","src":"12705:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2154,"mutability":"mutable","name":"_srcAddress","nameLocation":"12740:11:6","nodeType":"VariableDeclaration","scope":2167,"src":"12725:26:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2153,"name":"bytes","nodeType":"ElementaryTypeName","src":"12725:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12704:48:6"},"returnParameters":{"id":2158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2167,"src":"12776:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2156,"name":"uint","nodeType":"ElementaryTypeName","src":"12776:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12775:6:6"},"scope":2453,"src":"12679:173:6","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2174,"nodeType":"Block","src":"12957:38:6","statements":[{"expression":{"id":2172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2170,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"12967:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12984:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12967:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2173,"nodeType":"ExpressionStatement","src":"12967:21:6"}]},"functionSelector":"d23104f1","id":2175,"implemented":true,"kind":"function","modifiers":[],"name":"blockNextMsg","nameLocation":"12933:12:6","nodeType":"FunctionDefinition","parameters":{"id":2168,"nodeType":"ParameterList","parameters":[],"src":"12945:2:6"},"returnParameters":{"id":2169,"nodeType":"ParameterList","parameters":[],"src":"12957:0:6"},"scope":2453,"src":"12924:71:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2188,"nodeType":"Block","src":"13079:60:6","statements":[{"expression":{"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2182,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13089:16:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":2184,"indexExpression":{"id":2183,"name":"destAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2177,"src":"13106:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13089:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2185,"name":"lzEndpointAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"13118:14:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13089:43:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2187,"nodeType":"ExpressionStatement","src":"13089:43:6"}]},"functionSelector":"c08f15a1","id":2189,"implemented":true,"kind":"function","modifiers":[],"name":"setDestLzEndpoint","nameLocation":"13010:17:6","nodeType":"FunctionDefinition","parameters":{"id":2180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2177,"mutability":"mutable","name":"destAddr","nameLocation":"13036:8:6","nodeType":"VariableDeclaration","scope":2189,"src":"13028:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2176,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2179,"mutability":"mutable","name":"lzEndpointAddr","nameLocation":"13054:14:6","nodeType":"VariableDeclaration","scope":2189,"src":"13046:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2178,"name":"address","nodeType":"ElementaryTypeName","src":"13046:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13027:42:6"},"returnParameters":{"id":2181,"nodeType":"ParameterList","parameters":[],"src":"13079:0:6"},"scope":2453,"src":"13001:138:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2232,"nodeType":"Block","src":"13293:284:6","statements":[{"expression":{"id":2206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2202,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13303:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"13303:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2205,"name":"_dstPriceRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2191,"src":"13336:14:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13303:47:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2207,"nodeType":"ExpressionStatement","src":"13303:47:6"},{"expression":{"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2208,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13360:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"13360:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2211,"name":"_dstGasPriceInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2193,"src":"13396:17:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13360:53:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2213,"nodeType":"ExpressionStatement","src":"13360:53:6"},{"expression":{"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2214,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13423:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":1212,"src":"13423:32:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2217,"name":"_dstNativeAmtCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"13458:16:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13423:51:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2219,"nodeType":"ExpressionStatement","src":"13423:51:6"},{"expression":{"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2220,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13484:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":1214,"src":"13484:24:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2223,"name":"_baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"13511:8:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13484:35:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2225,"nodeType":"ExpressionStatement","src":"13484:35:6"},{"expression":{"id":2230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2226,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"13529:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":1216,"src":"13529:27:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2229,"name":"_gasPerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"13559:11:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13529:41:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2231,"nodeType":"ExpressionStatement","src":"13529:41:6"}]},"functionSelector":"2c365e25","id":2233,"implemented":true,"kind":"function","modifiers":[],"name":"setRelayerPrice","nameLocation":"13154:15:6","nodeType":"FunctionDefinition","parameters":{"id":2200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2191,"mutability":"mutable","name":"_dstPriceRatio","nameLocation":"13178:14:6","nodeType":"VariableDeclaration","scope":2233,"src":"13170:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2190,"name":"uint128","nodeType":"ElementaryTypeName","src":"13170:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2193,"mutability":"mutable","name":"_dstGasPriceInWei","nameLocation":"13202:17:6","nodeType":"VariableDeclaration","scope":2233,"src":"13194:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2192,"name":"uint128","nodeType":"ElementaryTypeName","src":"13194:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2195,"mutability":"mutable","name":"_dstNativeAmtCap","nameLocation":"13229:16:6","nodeType":"VariableDeclaration","scope":2233,"src":"13221:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2194,"name":"uint128","nodeType":"ElementaryTypeName","src":"13221:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"_baseGas","nameLocation":"13254:8:6","nodeType":"VariableDeclaration","scope":2233,"src":"13247:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2196,"name":"uint64","nodeType":"ElementaryTypeName","src":"13247:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2199,"mutability":"mutable","name":"_gasPerByte","nameLocation":"13271:11:6","nodeType":"VariableDeclaration","scope":2233,"src":"13264:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2198,"name":"uint64","nodeType":"ElementaryTypeName","src":"13264:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13169:114:6"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[],"src":"13293:0:6"},"scope":2453,"src":"13145:432:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2252,"nodeType":"Block","src":"13646:99:6","statements":[{"expression":{"id":2244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2240,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"13656:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"13656:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2243,"name":"_zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"13683:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13656:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2245,"nodeType":"ExpressionStatement","src":"13656:34:6"},{"expression":{"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2246,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"13700:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":1205,"src":"13700:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2249,"name":"_nativeBP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"13729:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13700:38:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2251,"nodeType":"ExpressionStatement","src":"13700:38:6"}]},"functionSelector":"240de277","id":2253,"implemented":true,"kind":"function","modifiers":[],"name":"setProtocolFee","nameLocation":"13592:14:6","nodeType":"FunctionDefinition","parameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2235,"mutability":"mutable","name":"_zroFee","nameLocation":"13612:7:6","nodeType":"VariableDeclaration","scope":2253,"src":"13607:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2234,"name":"uint","nodeType":"ElementaryTypeName","src":"13607:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2237,"mutability":"mutable","name":"_nativeBP","nameLocation":"13626:9:6","nodeType":"VariableDeclaration","scope":2253,"src":"13621:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2236,"name":"uint","nodeType":"ElementaryTypeName","src":"13621:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13606:30:6"},"returnParameters":{"id":2239,"nodeType":"ParameterList","parameters":[],"src":"13646:0:6"},"scope":2453,"src":"13583:162:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2262,"nodeType":"Block","src":"13799:39:6","statements":[{"expression":{"id":2260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2258,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"13809:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2259,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2255,"src":"13821:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13809:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2261,"nodeType":"ExpressionStatement","src":"13809:22:6"}]},"functionSelector":"b6d9ef60","id":2263,"implemented":true,"kind":"function","modifiers":[],"name":"setOracleFee","nameLocation":"13760:12:6","nodeType":"FunctionDefinition","parameters":{"id":2256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2255,"mutability":"mutable","name":"_oracleFee","nameLocation":"13778:10:6","nodeType":"VariableDeclaration","scope":2263,"src":"13773:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2254,"name":"uint","nodeType":"ElementaryTypeName","src":"13773:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13772:17:6"},"returnParameters":{"id":2257,"nodeType":"ParameterList","parameters":[],"src":"13799:0:6"},"scope":2453,"src":"13751:87:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2272,"nodeType":"Block","src":"13915:54:6","statements":[{"expression":{"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2268,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"13925:20:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2269,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"13948:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"13925:37:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":2271,"nodeType":"ExpressionStatement","src":"13925:37:6"}]},"functionSelector":"fbba623b","id":2273,"implemented":true,"kind":"function","modifiers":[],"name":"setDefaultAdapterParams","nameLocation":"13853:23:6","nodeType":"FunctionDefinition","parameters":{"id":2266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2265,"mutability":"mutable","name":"_adapterParams","nameLocation":"13890:14:6","nodeType":"VariableDeclaration","scope":2273,"src":"13877:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2264,"name":"bytes","nodeType":"ElementaryTypeName","src":"13877:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13876:29:6"},"returnParameters":{"id":2267,"nodeType":"ParameterList","parameters":[],"src":"13915:0:6"},"scope":2453,"src":"13844:125:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2325,"nodeType":"Block","src":"14227:425:6","statements":[{"assignments":[2284],"declarations":[{"constant":false,"id":2284,"mutability":"mutable","name":"msgs","nameLocation":"14261:4:6","nodeType":"VariableDeclaration","scope":2325,"src":"14237:28:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":2282,"nodeType":"UserDefinedTypeName","pathNode":{"id":2281,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"14237:13:6"},"referencedDeclaration":1231,"src":"14237:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":2283,"nodeType":"ArrayTypeName","src":"14237:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":2290,"initialValue":{"baseExpression":{"baseExpression":{"id":2285,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"14268:13:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2287,"indexExpression":{"id":2286,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"14282:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14268:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2289,"indexExpression":{"id":2288,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"14295:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14268:33:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14237:64:6"},{"body":{"id":2323,"nodeType":"Block","src":"14431:215:6","statements":[{"assignments":[2297],"declarations":[{"constant":false,"id":2297,"mutability":"mutable","name":"payload","nameLocation":"14466:7:6","nodeType":"VariableDeclaration","scope":2323,"src":"14445:28:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":2296,"nodeType":"UserDefinedTypeName","pathNode":{"id":2295,"name":"QueuedPayload","nodeType":"IdentifierPath","referencedDeclaration":1231,"src":"14445:13:6"},"referencedDeclaration":1231,"src":"14445:13:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":2304,"initialValue":{"baseExpression":{"id":2298,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14476:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2303,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2299,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14481:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14481:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14495:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14481:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14476:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14445:52:6"},{"expression":{"arguments":[{"id":2310,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"14560:11:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2311,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"14573:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":2312,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14580:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":1228,"src":"14580:13:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":2314,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14595:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":1230,"src":"14595:15:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":2306,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"14530:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1231_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1226,"src":"14530:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2305,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"14511:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$158_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14511:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$158","typeString":"contract ILayerZeroReceiver"}},"id":2309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":157,"src":"14511:48:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":2316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14511:100:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2317,"nodeType":"ExpressionStatement","src":"14511:100:6"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2318,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14625:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"14625:8:6","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14625:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2322,"nodeType":"ExpressionStatement","src":"14625:10:6"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2291,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"14414:4:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1231_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14414:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14428:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14414:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2324,"nodeType":"WhileStatement","src":"14407:239:6"}]},"id":2326,"implemented":true,"kind":"function","modifiers":[],"name":"_clearMsgQue","nameLocation":"14163:12:6","nodeType":"FunctionDefinition","parameters":{"id":2278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2275,"mutability":"mutable","name":"_srcChainId","nameLocation":"14183:11:6","nodeType":"VariableDeclaration","scope":2326,"src":"14176:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2274,"name":"uint16","nodeType":"ElementaryTypeName","src":"14176:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2277,"mutability":"mutable","name":"_path","nameLocation":"14211:5:6","nodeType":"VariableDeclaration","scope":2326,"src":"14196:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2276,"name":"bytes","nodeType":"ElementaryTypeName","src":"14196:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14175:42:6"},"returnParameters":{"id":2279,"nodeType":"ParameterList","parameters":[],"src":"14227:0:6"},"scope":2453,"src":"14154:498:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2355,"nodeType":"Block","src":"14764:190:6","statements":[{"condition":{"id":2337,"name":"_payInZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2328,"src":"14778:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2353,"nodeType":"Block","src":"14851:97:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2342,"name":"_relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2330,"src":"14874:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2343,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"14888:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14874:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14873:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2346,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"14902:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":1205,"src":"14902:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14873:55:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14872:57:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14932:5:6","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"14872:65:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2336,"id":2352,"nodeType":"Return","src":"14865:72:6"}]},"id":2354,"nodeType":"IfStatement","src":"14774:174:6","trueBody":{"id":2341,"nodeType":"Block","src":"14789:56:6","statements":[{"expression":{"expression":{"id":2338,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"14810:17:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1206_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"14810:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2336,"id":2340,"nodeType":"Return","src":"14803:31:6"}]}}]},"id":2356,"implemented":true,"kind":"function","modifiers":[],"name":"_getProtocolFees","nameLocation":"14667:16:6","nodeType":"FunctionDefinition","parameters":{"id":2333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2328,"mutability":"mutable","name":"_payInZro","nameLocation":"14689:9:6","nodeType":"VariableDeclaration","scope":2356,"src":"14684:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2327,"name":"bool","nodeType":"ElementaryTypeName","src":"14684:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2330,"mutability":"mutable","name":"_relayerFee","nameLocation":"14705:11:6","nodeType":"VariableDeclaration","scope":2356,"src":"14700:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2329,"name":"uint","nodeType":"ElementaryTypeName","src":"14700:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2332,"mutability":"mutable","name":"_oracleFee","nameLocation":"14723:10:6","nodeType":"VariableDeclaration","scope":2356,"src":"14718:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2331,"name":"uint","nodeType":"ElementaryTypeName","src":"14718:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14683:51:6"},"returnParameters":{"id":2336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2356,"src":"14758:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2334,"name":"uint","nodeType":"ElementaryTypeName","src":"14758:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14757:6:6"},"scope":2453,"src":"14658:296:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2451,"nodeType":"Block","src":"15198:1084:6","statements":[{"assignments":[2372,2374,2376,null],"declarations":[{"constant":false,"id":2372,"mutability":"mutable","name":"txType","nameLocation":"15216:6:6","nodeType":"VariableDeclaration","scope":2451,"src":"15209:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2371,"name":"uint16","nodeType":"ElementaryTypeName","src":"15209:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2374,"mutability":"mutable","name":"extraGas","nameLocation":"15229:8:6","nodeType":"VariableDeclaration","scope":2451,"src":"15224:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint","nodeType":"ElementaryTypeName","src":"15224:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2376,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"15244:12:6","nodeType":"VariableDeclaration","scope":2451,"src":"15239:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2375,"name":"uint","nodeType":"ElementaryTypeName","src":"15239:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":2381,"initialValue":{"arguments":[{"id":2379,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"15288:14:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2377,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"15262:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$427_$","typeString":"type(library LzLib)"}},"id":2378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":375,"src":"15262:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15262:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"15208:95:6"},{"assignments":[2383],"declarations":[{"constant":false,"id":2383,"mutability":"mutable","name":"totalRemoteToken","nameLocation":"15318:16:6","nodeType":"VariableDeclaration","scope":2451,"src":"15313:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2382,"name":"uint","nodeType":"ElementaryTypeName","src":"15313:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2384,"nodeType":"VariableDeclarationStatement","src":"15313:21:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2385,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"15395:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":2386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15405:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15395:11:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2401,"nodeType":"IfStatement","src":"15391:187:6","trueBody":{"id":2400,"nodeType":"Block","src":"15408:170:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2389,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15430:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":1212,"src":"15430:32:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2391,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"15466:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15430:48:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f206c6172676520","id":2393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15480:40:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""},"value":"LayerZeroMock: dstNativeAmt too large "}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""}],"id":2388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15422:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15422:99:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2395,"nodeType":"ExpressionStatement","src":"15422:99:6"},{"expression":{"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2396,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15535:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2397,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"15555:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15535:32:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2399,"nodeType":"ExpressionStatement","src":"15535:32:6"}]}},{"assignments":[2403],"declarations":[{"constant":false,"id":2403,"mutability":"mutable","name":"remoteGasTotal","nameLocation":"15660:14:6","nodeType":"VariableDeclaration","scope":2451,"src":"15655:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2402,"name":"uint","nodeType":"ElementaryTypeName","src":"15655:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2412,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2404,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15677:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"15677:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2406,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15714:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":1214,"src":"15714:24:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2408,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"15741:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15714:35:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2410,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15713:37:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15677:73:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15655:95:6"},{"expression":{"id":2415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2413,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15760:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2414,"name":"remoteGasTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"15780:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15760:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2416,"nodeType":"ExpressionStatement","src":"15760:34:6"},{"assignments":[2418],"declarations":[{"constant":false,"id":2418,"mutability":"mutable","name":"basePrice","nameLocation":"15927:9:6","nodeType":"VariableDeclaration","scope":2451,"src":"15922:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2417,"name":"uint","nodeType":"ElementaryTypeName","src":"15922:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2428,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2419,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"15940:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2420,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"15959:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"15959:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"15940:49:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15939:51:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":2426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15993:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":2425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15997:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"15993:6:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"15939:60:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15922:77:6"},{"assignments":[2430],"declarations":[{"constant":false,"id":2430,"mutability":"mutable","name":"pricePerByte","nameLocation":"16096:12:6","nodeType":"VariableDeclaration","scope":2451,"src":"16091:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2429,"name":"uint","nodeType":"ElementaryTypeName","src":"16091:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2444,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2431,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16112:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1210,"src":"16112:33:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2433,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16148:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":1216,"src":"16148:27:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16112:63:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2436,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"16178:16:6","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1217_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1208,"src":"16178:30:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"16112:96:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":2439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16111:98:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":2442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16212:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":2441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16216:2:6","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"16212:6:6","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"16111:107:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"16091:127:6"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2445,"name":"basePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"16236:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2446,"name":"_payloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2364,"src":"16248:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2447,"name":"pricePerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2430,"src":"16263:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16248:27:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:39:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2370,"id":2450,"nodeType":"Return","src":"16229:46:6"}]},"id":2452,"implemented":true,"kind":"function","modifiers":[],"name":"_getRelayerFee","nameLocation":"14969:14:6","nodeType":"FunctionDefinition","parameters":{"id":2367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"14993:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2357,"name":"uint16","nodeType":"ElementaryTypeName","src":"14993:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15027:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2359,"name":"uint16","nodeType":"ElementaryTypeName","src":"15027:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15068:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2361,"name":"address","nodeType":"ElementaryTypeName","src":"15068:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2364,"mutability":"mutable","name":"_payloadSize","nameLocation":"15113:12:6","nodeType":"VariableDeclaration","scope":2452,"src":"15108:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2363,"name":"uint","nodeType":"ElementaryTypeName","src":"15108:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2366,"mutability":"mutable","name":"_adapterParams","nameLocation":"15148:14:6","nodeType":"VariableDeclaration","scope":2452,"src":"15135:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2365,"name":"bytes","nodeType":"ElementaryTypeName","src":"15135:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14983:185:6"},"returnParameters":{"id":2370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2452,"src":"15192:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2368,"name":"uint","nodeType":"ElementaryTypeName","src":"15192:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15191:6:6"},"scope":2453,"src":"14960:1322:6","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2454,"src":"817:15467:6","usedErrors":[]}],"src":"38:16247:6"},"id":6},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol","exportedSymbols":{"BytesLib":[2786]},"id":2787,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":2455,"literals":["solidity",">=","0.8",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"336:31:7"},{"abstract":false,"baseContracts":[],"canonicalName":"BytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2786,"linearizedBaseContracts":[2786],"name":"BytesLib","nameLocation":"378:8:7","nodeType":"ContractDefinition","nodes":[{"body":{"id":2470,"nodeType":"Block","src":"533:2695:7","statements":[{"assignments":[2465],"declarations":[{"constant":false,"id":2465,"mutability":"mutable","name":"tempBytes","nameLocation":"556:9:7","nodeType":"VariableDeclaration","scope":2470,"src":"543:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2464,"name":"bytes","nodeType":"ElementaryTypeName","src":"543:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2466,"nodeType":"VariableDeclarationStatement","src":"543:22:7"},{"AST":{"nodeType":"YulBlock","src":"585:2610:7","statements":[{"nodeType":"YulAssignment","src":"721:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"740:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"734:5:7"},"nodeType":"YulFunctionCall","src":"734:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"721:9:7"}]},{"nodeType":"YulVariableDeclaration","src":"869:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"889:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"883:5:7"},"nodeType":"YulFunctionCall","src":"883:16:7"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"873:6:7","type":""}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"919:9:7"},{"name":"length","nodeType":"YulIdentifier","src":"930:6:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"912:6:7"},"nodeType":"YulFunctionCall","src":"912:25:7"},"nodeType":"YulExpressionStatement","src":"912:25:7"},{"nodeType":"YulVariableDeclaration","src":"1135:30:7","value":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"1149:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"1160:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1145:3:7"},"nodeType":"YulFunctionCall","src":"1145:20:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"1139:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1282:26:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1297:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"1301:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1293:3:7"},"nodeType":"YulFunctionCall","src":"1293:15:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"1286:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"1673:154:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1799:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"1809:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1803:5:7"},"nodeType":"YulFunctionCall","src":"1803:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1792:6:7"},"nodeType":"YulFunctionCall","src":"1792:21:7"},"nodeType":"YulExpressionStatement","src":"1792:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1510:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"1514:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1507:2:7"},"nodeType":"YulFunctionCall","src":"1507:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1519:153:7","statements":[{"nodeType":"YulAssignment","src":"1603:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"1613:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"1617:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1609:3:7"},"nodeType":"YulFunctionCall","src":"1609:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"1603:2:7"}]},{"nodeType":"YulAssignment","src":"1639:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"1649:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"1653:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1645:3:7"},"nodeType":"YulFunctionCall","src":"1645:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"1639:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"1326:180:7","statements":[{"nodeType":"YulVariableDeclaration","src":"1462:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"1476:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"1487:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1472:3:7"},"nodeType":"YulFunctionCall","src":"1472:20:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"1466:2:7","type":""}]}]},"src":"1322:505:7"},{"nodeType":"YulAssignment","src":"2016:27:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"2032:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2026:5:7"},"nodeType":"YulFunctionCall","src":"2026:17:7"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2016:6:7"}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"2063:9:7"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2078:6:7"},{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"2092:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2086:5:7"},"nodeType":"YulFunctionCall","src":"2086:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2074:3:7"},"nodeType":"YulFunctionCall","src":"2074:29:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2056:6:7"},"nodeType":"YulFunctionCall","src":"2056:48:7"},"nodeType":"YulExpressionStatement","src":"2056:48:7"},{"nodeType":"YulAssignment","src":"2234:9:7","value":{"name":"end","nodeType":"YulIdentifier","src":"2240:3:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"2234:2:7"}]},{"nodeType":"YulAssignment","src":"2362:22:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2373:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"2377:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2369:3:7"},"nodeType":"YulFunctionCall","src":"2369:15:7"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2362:3:7"}]},{"body":{"nodeType":"YulBlock","src":"2566:53:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2591:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"2601:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2595:5:7"},"nodeType":"YulFunctionCall","src":"2595:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2584:6:7"},"nodeType":"YulFunctionCall","src":"2584:21:7"},"nodeType":"YulExpressionStatement","src":"2584:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2469:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"2473:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2466:2:7"},"nodeType":"YulFunctionCall","src":"2466:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2478:87:7","statements":[{"nodeType":"YulAssignment","src":"2496:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2506:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"2510:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2502:3:7"},"nodeType":"YulFunctionCall","src":"2502:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"2496:2:7"}]},{"nodeType":"YulAssignment","src":"2532:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"2542:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"2546:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2538:3:7"},"nodeType":"YulFunctionCall","src":"2538:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"2532:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"2402:63:7","statements":[{"nodeType":"YulVariableDeclaration","src":"2420:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"2434:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"2446:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2430:3:7"},"nodeType":"YulFunctionCall","src":"2430:21:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"2424:2:7","type":""}]}]},"src":"2398:221:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3031:4:7","type":"","value":"0x40"},{"arguments":[{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"3062:3:7"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3078:6:7"},{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"3092:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3086:5:7"},"nodeType":"YulFunctionCall","src":"3086:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3074:3:7"},"nodeType":"YulFunctionCall","src":"3074:29:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3067:6:7"},"nodeType":"YulFunctionCall","src":"3067:37:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3058:3:7"},"nodeType":"YulFunctionCall","src":"3058:47:7"},{"kind":"number","nodeType":"YulLiteral","src":"3107:2:7","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3054:3:7"},"nodeType":"YulFunctionCall","src":"3054:56:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3128:2:7","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3124:3:7"},"nodeType":"YulFunctionCall","src":"3124:7:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3037:3:7"},"nodeType":"YulFunctionCall","src":"3037:147:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3024:6:7"},"nodeType":"YulFunctionCall","src":"3024:161:7"},"nodeType":"YulExpressionStatement","src":"3024:161:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2459,"isOffset":false,"isSlot":false,"src":"2032:10:7","valueSize":1},{"declaration":2459,"isOffset":false,"isSlot":false,"src":"2434:10:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"1476:9:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"3092:9:7","valueSize":1},{"declaration":2457,"isOffset":false,"isSlot":false,"src":"889:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"1149:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"2063:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"2092:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"721:9:7","valueSize":1},{"declaration":2465,"isOffset":false,"isSlot":false,"src":"919:9:7","valueSize":1}],"id":2467,"nodeType":"InlineAssembly","src":"576:2619:7"},{"expression":{"id":2468,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"3212:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2463,"id":2469,"nodeType":"Return","src":"3205:16:7"}]},"id":2471,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"402:6:7","nodeType":"FunctionDefinition","parameters":{"id":2460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2457,"mutability":"mutable","name":"_preBytes","nameLocation":"431:9:7","nodeType":"VariableDeclaration","scope":2471,"src":"418:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2456,"name":"bytes","nodeType":"ElementaryTypeName","src":"418:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2459,"mutability":"mutable","name":"_postBytes","nameLocation":"463:10:7","nodeType":"VariableDeclaration","scope":2471,"src":"450:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2458,"name":"bytes","nodeType":"ElementaryTypeName","src":"450:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"408:71:7"},"returnParameters":{"id":2463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2471,"src":"515:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2461,"name":"bytes","nodeType":"ElementaryTypeName","src":"515:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"514:14:7"},"scope":2786,"src":"393:2835:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2479,"nodeType":"Block","src":"3316:5543:7","statements":[{"AST":{"nodeType":"YulBlock","src":"3335:5518:7","statements":[{"nodeType":"YulVariableDeclaration","src":"3546:34:7","value":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"3565:14:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3559:5:7"},"nodeType":"YulFunctionCall","src":"3559:21:7"},"variables":[{"name":"fslot","nodeType":"YulTypedName","src":"3550:5:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4045:76:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"4068:5:7"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4083:5:7","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"4101:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"4108:1:7","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4097:3:7"},"nodeType":"YulFunctionCall","src":"4097:13:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4090:6:7"},"nodeType":"YulFunctionCall","src":"4090:21:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4079:3:7"},"nodeType":"YulFunctionCall","src":"4079:33:7"},{"kind":"number","nodeType":"YulLiteral","src":"4114:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4075:3:7"},"nodeType":"YulFunctionCall","src":"4075:41:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4064:3:7"},"nodeType":"YulFunctionCall","src":"4064:53:7"},{"kind":"number","nodeType":"YulLiteral","src":"4119:1:7","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4060:3:7"},"nodeType":"YulFunctionCall","src":"4060:61:7"},"variables":[{"name":"slength","nodeType":"YulTypedName","src":"4049:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4134:32:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"4155:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4149:5:7"},"nodeType":"YulFunctionCall","src":"4149:17:7"},"variables":[{"name":"mlength","nodeType":"YulTypedName","src":"4138:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4179:38:7","value":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"4200:7:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"4209:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4196:3:7"},"nodeType":"YulFunctionCall","src":"4196:21:7"},"variables":[{"name":"newlength","nodeType":"YulTypedName","src":"4183:9:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"4538:1193:7","statements":[{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"4803:14:7"},{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"5079:5:7"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"5221:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"5233:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5217:3:7"},"nodeType":"YulFunctionCall","src":"5217:21:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5211:5:7"},"nodeType":"YulFunctionCall","src":"5211:28:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5308:5:7","type":"","value":"0x100"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5319:2:7","type":"","value":"32"},{"name":"mlength","nodeType":"YulIdentifier","src":"5323:7:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5315:3:7"},"nodeType":"YulFunctionCall","src":"5315:16:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"5304:3:7"},"nodeType":"YulFunctionCall","src":"5304:28:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5144:3:7"},"nodeType":"YulFunctionCall","src":"5144:206:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5491:5:7","type":"","value":"0x100"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5502:2:7","type":"","value":"32"},{"name":"newlength","nodeType":"YulIdentifier","src":"5506:9:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5498:3:7"},"nodeType":"YulFunctionCall","src":"5498:18:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"5487:3:7"},"nodeType":"YulFunctionCall","src":"5487:30:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5123:3:7"},"nodeType":"YulFunctionCall","src":"5123:412:7"},{"arguments":[{"name":"mlength","nodeType":"YulIdentifier","src":"5652:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"5661:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5648:3:7"},"nodeType":"YulFunctionCall","src":"5648:15:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5102:3:7"},"nodeType":"YulFunctionCall","src":"5102:579:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4934:3:7"},"nodeType":"YulFunctionCall","src":"4934:765:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4779:6:7"},"nodeType":"YulFunctionCall","src":"4779:938:7"},"nodeType":"YulExpressionStatement","src":"4779:938:7"}]},"nodeType":"YulCase","src":"4531:1200:7","value":{"kind":"number","nodeType":"YulLiteral","src":"4536:1:7","type":"","value":"2"}},{"body":{"nodeType":"YulBlock","src":"5751:1827:7","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5948:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"5953:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5941:6:7"},"nodeType":"YulFunctionCall","src":"5941:27:7"},"nodeType":"YulExpressionStatement","src":"5941:27:7"},{"nodeType":"YulVariableDeclaration","src":"5985:53:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6009:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"6014:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"5999:9:7"},"nodeType":"YulFunctionCall","src":"5999:20:7"},{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"6025:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"6034:2:7","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6021:3:7"},"nodeType":"YulFunctionCall","src":"6021:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5995:3:7"},"nodeType":"YulFunctionCall","src":"5995:43:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"5989:2:7","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"6094:14:7"},{"arguments":[{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"6118:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"6129:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6114:3:7"},"nodeType":"YulFunctionCall","src":"6114:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"6133:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6110:3:7"},"nodeType":"YulFunctionCall","src":"6110:25:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6087:6:7"},"nodeType":"YulFunctionCall","src":"6087:49:7"},"nodeType":"YulExpressionStatement","src":"6087:49:7"},{"nodeType":"YulVariableDeclaration","src":"6692:30:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6710:2:7","type":"","value":"32"},{"name":"slength","nodeType":"YulIdentifier","src":"6714:7:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6706:3:7"},"nodeType":"YulFunctionCall","src":"6706:16:7"},"variables":[{"name":"submod","nodeType":"YulTypedName","src":"6696:6:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6739:33:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"6753:10:7"},{"name":"submod","nodeType":"YulIdentifier","src":"6765:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6749:3:7"},"nodeType":"YulFunctionCall","src":"6749:23:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"6743:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6789:35:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"6804:10:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"6816:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6800:3:7"},"nodeType":"YulFunctionCall","src":"6800:24:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"6793:3:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6841:38:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6861:5:7","type":"","value":"0x100"},{"name":"submod","nodeType":"YulIdentifier","src":"6868:6:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"6857:3:7"},"nodeType":"YulFunctionCall","src":"6857:18:7"},{"kind":"number","nodeType":"YulLiteral","src":"6877:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6853:3:7"},"nodeType":"YulFunctionCall","src":"6853:26:7"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"6845:4:7","type":""}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"6921:2:7"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"6983:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"7006:66:7","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6962:3:7"},"nodeType":"YulFunctionCall","src":"6962:128:7"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7118:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7112:5:7"},"nodeType":"YulFunctionCall","src":"7112:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7123:4:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7108:3:7"},"nodeType":"YulFunctionCall","src":"7108:20:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6941:3:7"},"nodeType":"YulFunctionCall","src":"6941:205:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6897:6:7"},"nodeType":"YulFunctionCall","src":"6897:267:7"},"nodeType":"YulExpressionStatement","src":"6897:267:7"},{"body":{"nodeType":"YulBlock","src":"7392:61:7","statements":[{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7421:2:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7431:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7425:5:7"},"nodeType":"YulFunctionCall","src":"7425:9:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7414:6:7"},"nodeType":"YulFunctionCall","src":"7414:21:7"},"nodeType":"YulExpressionStatement","src":"7414:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7286:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"7290:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7283:2:7"},"nodeType":"YulFunctionCall","src":"7283:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7295:96:7","statements":[{"nodeType":"YulAssignment","src":"7317:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7327:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7331:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7323:3:7"},"nodeType":"YulFunctionCall","src":"7323:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"7317:2:7"}]},{"nodeType":"YulAssignment","src":"7354:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7364:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7368:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7360:3:7"},"nodeType":"YulFunctionCall","src":"7360:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"7354:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"7186:96:7","statements":[{"nodeType":"YulAssignment","src":"7208:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7218:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7222:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:7"},"nodeType":"YulFunctionCall","src":"7214:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"7208:2:7"}]},{"nodeType":"YulAssignment","src":"7248:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7258:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"7262:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7254:3:7"},"nodeType":"YulFunctionCall","src":"7254:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"7248:2:7"}]}]},"src":"7182:271:7"},{"nodeType":"YulAssignment","src":"7471:32:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7483:5:7","type":"","value":"0x100"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7494:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"7498:3:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7490:3:7"},"nodeType":"YulFunctionCall","src":"7490:12:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"7479:3:7"},"nodeType":"YulFunctionCall","src":"7479:24:7"},"variableNames":[{"name":"mask","nodeType":"YulIdentifier","src":"7471:4:7"}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"7528:2:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"7546:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7540:5:7"},"nodeType":"YulFunctionCall","src":"7540:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7551:4:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7536:3:7"},"nodeType":"YulFunctionCall","src":"7536:20:7"},{"name":"mask","nodeType":"YulIdentifier","src":"7558:4:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7532:3:7"},"nodeType":"YulFunctionCall","src":"7532:31:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7521:6:7"},"nodeType":"YulFunctionCall","src":"7521:43:7"},"nodeType":"YulExpressionStatement","src":"7521:43:7"}]},"nodeType":"YulCase","src":"5744:1834:7","value":{"kind":"number","nodeType":"YulLiteral","src":"5749:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"7599:1244:7","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7692:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"7697:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7685:6:7"},"nodeType":"YulFunctionCall","src":"7685:27:7"},"nodeType":"YulExpressionStatement","src":"7685:27:7"},{"nodeType":"YulVariableDeclaration","src":"7801:53:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7825:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"7830:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"7815:9:7"},"nodeType":"YulFunctionCall","src":"7815:20:7"},{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"7841:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"7850:2:7","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7837:3:7"},"nodeType":"YulFunctionCall","src":"7837:16:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7811:3:7"},"nodeType":"YulFunctionCall","src":"7811:43:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"7805:2:7","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"7910:14:7"},{"arguments":[{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"7934:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"7945:1:7","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7930:3:7"},"nodeType":"YulFunctionCall","src":"7930:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"7949:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7926:3:7"},"nodeType":"YulFunctionCall","src":"7926:25:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7903:6:7"},"nodeType":"YulFunctionCall","src":"7903:49:7"},"nodeType":"YulExpressionStatement","src":"7903:49:7"},{"nodeType":"YulVariableDeclaration","src":"8071:34:7","value":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"8093:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"8102:2:7","type":"","value":"32"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"8089:3:7"},"nodeType":"YulFunctionCall","src":"8089:16:7"},"variables":[{"name":"slengthmod","nodeType":"YulTypedName","src":"8075:10:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8122:34:7","value":{"arguments":[{"name":"mlength","nodeType":"YulIdentifier","src":"8144:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"8153:2:7","type":"","value":"32"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"8140:3:7"},"nodeType":"YulFunctionCall","src":"8140:16:7"},"variables":[{"name":"mlengthmod","nodeType":"YulTypedName","src":"8126:10:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8173:33:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8191:2:7","type":"","value":"32"},{"name":"slengthmod","nodeType":"YulIdentifier","src":"8195:10:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8187:3:7"},"nodeType":"YulFunctionCall","src":"8187:19:7"},"variables":[{"name":"submod","nodeType":"YulTypedName","src":"8177:6:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8223:33:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"8237:10:7"},{"name":"submod","nodeType":"YulIdentifier","src":"8249:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8233:3:7"},"nodeType":"YulFunctionCall","src":"8233:23:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"8227:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8273:35:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"8288:10:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"8300:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8284:3:7"},"nodeType":"YulFunctionCall","src":"8284:24:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"8277:3:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8325:38:7","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8345:5:7","type":"","value":"0x100"},{"name":"submod","nodeType":"YulIdentifier","src":"8352:6:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"8341:3:7"},"nodeType":"YulFunctionCall","src":"8341:18:7"},{"kind":"number","nodeType":"YulLiteral","src":"8361:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8337:3:7"},"nodeType":"YulFunctionCall","src":"8337:26:7"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"8329:4:7","type":""}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8388:2:7"},{"arguments":[{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8402:2:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"8396:5:7"},"nodeType":"YulFunctionCall","src":"8396:9:7"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8417:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8411:5:7"},"nodeType":"YulFunctionCall","src":"8411:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8422:4:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8407:3:7"},"nodeType":"YulFunctionCall","src":"8407:20:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8392:3:7"},"nodeType":"YulFunctionCall","src":"8392:36:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8381:6:7"},"nodeType":"YulFunctionCall","src":"8381:48:7"},"nodeType":"YulExpressionStatement","src":"8381:48:7"},{"body":{"nodeType":"YulBlock","src":"8657:61:7","statements":[{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8686:2:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8696:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8690:5:7"},"nodeType":"YulFunctionCall","src":"8690:9:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8679:6:7"},"nodeType":"YulFunctionCall","src":"8679:21:7"},"nodeType":"YulExpressionStatement","src":"8679:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8551:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"8555:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8548:2:7"},"nodeType":"YulFunctionCall","src":"8548:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8560:96:7","statements":[{"nodeType":"YulAssignment","src":"8582:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8592:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8596:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8588:3:7"},"nodeType":"YulFunctionCall","src":"8588:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"8582:2:7"}]},{"nodeType":"YulAssignment","src":"8619:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8629:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8633:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8625:3:7"},"nodeType":"YulFunctionCall","src":"8625:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"8619:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"8451:96:7","statements":[{"nodeType":"YulAssignment","src":"8473:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8483:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8487:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8479:3:7"},"nodeType":"YulFunctionCall","src":"8479:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"8473:2:7"}]},{"nodeType":"YulAssignment","src":"8510:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8520:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"8524:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8516:3:7"},"nodeType":"YulFunctionCall","src":"8516:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"8510:2:7"}]}]},"src":"8447:271:7"},{"nodeType":"YulAssignment","src":"8736:32:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8748:5:7","type":"","value":"0x100"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8759:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"8763:3:7"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8755:3:7"},"nodeType":"YulFunctionCall","src":"8755:12:7"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"8744:3:7"},"nodeType":"YulFunctionCall","src":"8744:24:7"},"variableNames":[{"name":"mask","nodeType":"YulIdentifier","src":"8736:4:7"}]},{"expression":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"8793:2:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"8811:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8805:5:7"},"nodeType":"YulFunctionCall","src":"8805:9:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8816:4:7"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8801:3:7"},"nodeType":"YulFunctionCall","src":"8801:20:7"},{"name":"mask","nodeType":"YulIdentifier","src":"8823:4:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8797:3:7"},"nodeType":"YulFunctionCall","src":"8797:31:7"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8786:6:7"},"nodeType":"YulFunctionCall","src":"8786:43:7"},"nodeType":"YulExpressionStatement","src":"8786:43:7"}]},"nodeType":"YulCase","src":"7591:1252:7","value":"default"}],"expression":{"arguments":[{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"4486:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"4495:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4483:2:7"},"nodeType":"YulFunctionCall","src":"4483:15:7"},{"arguments":[{"name":"newlength","nodeType":"YulIdentifier","src":"4503:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"4514:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4500:2:7"},"nodeType":"YulFunctionCall","src":"4500:17:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4479:3:7"},"nodeType":"YulFunctionCall","src":"4479:39:7"},"nodeType":"YulSwitch","src":"4472:4371:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2475,"isOffset":false,"isSlot":false,"src":"4155:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"5221:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"6753:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"6804:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"8237:10:7","valueSize":1},{"declaration":2475,"isOffset":false,"isSlot":false,"src":"8288:10:7","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"3565:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"4803:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"5953:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"6094:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"7697:14:7","suffix":"slot","valueSize":1},{"declaration":2473,"isOffset":false,"isSlot":true,"src":"7910:14:7","suffix":"slot","valueSize":1}],"id":2478,"nodeType":"InlineAssembly","src":"3326:5527:7"}]},"id":2480,"implemented":true,"kind":"function","modifiers":[],"name":"concatStorage","nameLocation":"3243:13:7","nodeType":"FunctionDefinition","parameters":{"id":2476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2473,"mutability":"mutable","name":"_preBytes","nameLocation":"3271:9:7","nodeType":"VariableDeclaration","scope":2480,"src":"3257:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2472,"name":"bytes","nodeType":"ElementaryTypeName","src":"3257:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2475,"mutability":"mutable","name":"_postBytes","nameLocation":"3295:10:7","nodeType":"VariableDeclaration","scope":2480,"src":"3282:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2474,"name":"bytes","nodeType":"ElementaryTypeName","src":"3282:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3256:50:7"},"returnParameters":{"id":2477,"nodeType":"ParameterList","parameters":[],"src":"3316:0:7"},"scope":2786,"src":"3234:5625:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2516,"nodeType":"Block","src":"9017:2560:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2492,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9035:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":2493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9045:2:7","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"9035:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2495,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9051:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9035:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":2497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9060:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":2491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9027:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9027:50:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2499,"nodeType":"ExpressionStatement","src":"9027:50:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2501,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"9095:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9095:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2503,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2484,"src":"9112:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2504,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"9121:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9112:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9095:33:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f75744f66426f756e6473","id":2507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9130:19:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""},"value":"slice_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""}],"id":2500,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9087:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9087:63:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2509,"nodeType":"ExpressionStatement","src":"9087:63:7"},{"assignments":[2511],"declarations":[{"constant":false,"id":2511,"mutability":"mutable","name":"tempBytes","nameLocation":"9174:9:7","nodeType":"VariableDeclaration","scope":2516,"src":"9161:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2510,"name":"bytes","nodeType":"ElementaryTypeName","src":"9161:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2512,"nodeType":"VariableDeclarationStatement","src":"9161:22:7"},{"AST":{"nodeType":"YulBlock","src":"9203:2341:7","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"9259:1888:7","statements":[{"nodeType":"YulAssignment","src":"9407:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9426:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9420:5:7"},"nodeType":"YulFunctionCall","src":"9420:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"9407:9:7"}]},{"nodeType":"YulVariableDeclaration","src":"10023:33:7","value":{"arguments":[{"name":"_length","nodeType":"YulIdentifier","src":"10044:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"10053:2:7","type":"","value":"31"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10040:3:7"},"nodeType":"YulFunctionCall","src":"10040:16:7"},"variables":[{"name":"lengthmod","nodeType":"YulTypedName","src":"10027:9:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10361:70:7","value":{"arguments":[{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"10379:9:7"},{"name":"lengthmod","nodeType":"YulIdentifier","src":"10390:9:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10375:3:7"},"nodeType":"YulFunctionCall","src":"10375:25:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10406:4:7","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nodeType":"YulIdentifier","src":"10419:9:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10412:6:7"},"nodeType":"YulFunctionCall","src":"10412:17:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10402:3:7"},"nodeType":"YulFunctionCall","src":"10402:28:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10371:3:7"},"nodeType":"YulFunctionCall","src":"10371:60:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"10365:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10448:27:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10463:2:7"},{"name":"_length","nodeType":"YulIdentifier","src":"10467:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10459:3:7"},"nodeType":"YulFunctionCall","src":"10459:16:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"10452:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"10849:61:7","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10878:2:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"10888:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10882:5:7"},"nodeType":"YulFunctionCall","src":"10882:9:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10871:6:7"},"nodeType":"YulFunctionCall","src":"10871:21:7"},"nodeType":"YulExpressionStatement","src":"10871:21:7"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10740:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"10744:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10737:2:7"},"nodeType":"YulFunctionCall","src":"10737:11:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10749:99:7","statements":[{"nodeType":"YulAssignment","src":"10771:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"10781:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"10785:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10777:3:7"},"nodeType":"YulFunctionCall","src":"10777:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"10771:2:7"}]},{"nodeType":"YulAssignment","src":"10811:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"10821:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"10825:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10817:3:7"},"nodeType":"YulFunctionCall","src":"10817:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"10811:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"10497:239:7","statements":[{"nodeType":"YulVariableDeclaration","src":"10638:80:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"10660:6:7"},{"name":"lengthmod","nodeType":"YulIdentifier","src":"10668:9:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10656:3:7"},"nodeType":"YulFunctionCall","src":"10656:22:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10684:4:7","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nodeType":"YulIdentifier","src":"10697:9:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10690:6:7"},"nodeType":"YulFunctionCall","src":"10690:17:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10680:3:7"},"nodeType":"YulFunctionCall","src":"10680:28:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10652:3:7"},"nodeType":"YulFunctionCall","src":"10652:57:7"},{"name":"_start","nodeType":"YulIdentifier","src":"10711:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10648:3:7"},"nodeType":"YulFunctionCall","src":"10648:70:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"10642:2:7","type":""}]}]},"src":"10493:417:7"},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"10935:9:7"},{"name":"_length","nodeType":"YulIdentifier","src":"10946:7:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10928:6:7"},"nodeType":"YulFunctionCall","src":"10928:26:7"},"nodeType":"YulExpressionStatement","src":"10928:26:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11101:4:7","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"11115:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"11119:2:7","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11111:3:7"},"nodeType":"YulFunctionCall","src":"11111:11:7"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11128:2:7","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11124:3:7"},"nodeType":"YulFunctionCall","src":"11124:7:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11107:3:7"},"nodeType":"YulFunctionCall","src":"11107:25:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11094:6:7"},"nodeType":"YulFunctionCall","src":"11094:39:7"},"nodeType":"YulExpressionStatement","src":"11094:39:7"}]},"nodeType":"YulCase","src":"9252:1895:7","value":{"kind":"number","nodeType":"YulLiteral","src":"9257:1:7","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"11251:283:7","statements":[{"nodeType":"YulAssignment","src":"11269:24:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11288:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11282:5:7"},"nodeType":"YulFunctionCall","src":"11282:11:7"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11269:9:7"}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11455:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"11466:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11448:6:7"},"nodeType":"YulFunctionCall","src":"11448:20:7"},"nodeType":"YulExpressionStatement","src":"11448:20:7"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11493:4:7","type":"","value":"0x40"},{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"11503:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"11514:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11499:3:7"},"nodeType":"YulFunctionCall","src":"11499:20:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11486:6:7"},"nodeType":"YulFunctionCall","src":"11486:34:7"},"nodeType":"YulExpressionStatement","src":"11486:34:7"}]},"nodeType":"YulCase","src":"11243:291:7","value":"default"}],"expression":{"arguments":[{"name":"_length","nodeType":"YulIdentifier","src":"9231:7:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9224:6:7"},"nodeType":"YulFunctionCall","src":"9224:15:7"},"nodeType":"YulSwitch","src":"9217:2317:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2482,"isOffset":false,"isSlot":false,"src":"10660:6:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10044:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10467:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"10946:7:7","valueSize":1},{"declaration":2486,"isOffset":false,"isSlot":false,"src":"9231:7:7","valueSize":1},{"declaration":2484,"isOffset":false,"isSlot":false,"src":"10711:6:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"10379:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"10935:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11269:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11455:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"11503:9:7","valueSize":1},{"declaration":2511,"isOffset":false,"isSlot":false,"src":"9407:9:7","valueSize":1}],"id":2513,"nodeType":"InlineAssembly","src":"9194:2350:7"},{"expression":{"id":2514,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2511,"src":"11561:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2490,"id":2515,"nodeType":"Return","src":"11554:16:7"}]},"id":2517,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"8874:5:7","nodeType":"FunctionDefinition","parameters":{"id":2487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2482,"mutability":"mutable","name":"_bytes","nameLocation":"8902:6:7","nodeType":"VariableDeclaration","scope":2517,"src":"8889:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2481,"name":"bytes","nodeType":"ElementaryTypeName","src":"8889:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2484,"mutability":"mutable","name":"_start","nameLocation":"8926:6:7","nodeType":"VariableDeclaration","scope":2517,"src":"8918:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2483,"name":"uint256","nodeType":"ElementaryTypeName","src":"8918:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2486,"mutability":"mutable","name":"_length","nameLocation":"8950:7:7","nodeType":"VariableDeclaration","scope":2517,"src":"8942:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2485,"name":"uint256","nodeType":"ElementaryTypeName","src":"8942:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8879:84:7"},"returnParameters":{"id":2490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2517,"src":"8999:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2488,"name":"bytes","nodeType":"ElementaryTypeName","src":"8999:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8998:14:7"},"scope":2786,"src":"8865:2712:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2542,"nodeType":"Block","src":"11671:266:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2527,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"11689:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11689:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2529,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2521,"src":"11706:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":2530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11715:2:7","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"11706:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11689:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","id":2533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11719:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""},"value":"toAddress_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""}],"id":2526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11681:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11681:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2535,"nodeType":"ExpressionStatement","src":"11681:62:7"},{"assignments":[2537],"declarations":[{"constant":false,"id":2537,"mutability":"mutable","name":"tempAddress","nameLocation":"11761:11:7","nodeType":"VariableDeclaration","scope":2542,"src":"11753:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2536,"name":"address","nodeType":"ElementaryTypeName","src":"11753:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2538,"nodeType":"VariableDeclarationStatement","src":"11753:19:7"},{"AST":{"nodeType":"YulBlock","src":"11792:110:7","statements":[{"nodeType":"YulAssignment","src":"11806:86:7","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"11839:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"11847:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11835:3:7"},"nodeType":"YulFunctionCall","src":"11835:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"11854:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11831:3:7"},"nodeType":"YulFunctionCall","src":"11831:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11825:5:7"},"nodeType":"YulFunctionCall","src":"11825:37:7"},{"kind":"number","nodeType":"YulLiteral","src":"11864:27:7","type":"","value":"0x1000000000000000000000000"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11821:3:7"},"nodeType":"YulFunctionCall","src":"11821:71:7"},"variableNames":[{"name":"tempAddress","nodeType":"YulIdentifier","src":"11806:11:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2519,"isOffset":false,"isSlot":false,"src":"11839:6:7","valueSize":1},{"declaration":2521,"isOffset":false,"isSlot":false,"src":"11854:6:7","valueSize":1},{"declaration":2537,"isOffset":false,"isSlot":false,"src":"11806:11:7","valueSize":1}],"id":2539,"nodeType":"InlineAssembly","src":"11783:119:7"},{"expression":{"id":2540,"name":"tempAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2537,"src":"11919:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2525,"id":2541,"nodeType":"Return","src":"11912:18:7"}]},"id":2543,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"11592:9:7","nodeType":"FunctionDefinition","parameters":{"id":2522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2519,"mutability":"mutable","name":"_bytes","nameLocation":"11615:6:7","nodeType":"VariableDeclaration","scope":2543,"src":"11602:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2518,"name":"bytes","nodeType":"ElementaryTypeName","src":"11602:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2521,"mutability":"mutable","name":"_start","nameLocation":"11631:6:7","nodeType":"VariableDeclaration","scope":2543,"src":"11623:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2520,"name":"uint256","nodeType":"ElementaryTypeName","src":"11623:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11601:37:7"},"returnParameters":{"id":2525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2543,"src":"11662:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2523,"name":"address","nodeType":"ElementaryTypeName","src":"11662:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11661:9:7"},"scope":2786,"src":"11583:354:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2568,"nodeType":"Block","src":"12027:218:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2553,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"12045:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12045:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2555,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2547,"src":"12062:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12071:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12062:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12045:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","id":2559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12075:21:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""},"value":"toUint8_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""}],"id":2552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12037:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12037:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2561,"nodeType":"ExpressionStatement","src":"12037:60:7"},{"assignments":[2563],"declarations":[{"constant":false,"id":2563,"mutability":"mutable","name":"tempUint","nameLocation":"12113:8:7","nodeType":"VariableDeclaration","scope":2568,"src":"12107:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2562,"name":"uint8","nodeType":"ElementaryTypeName","src":"12107:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2564,"nodeType":"VariableDeclarationStatement","src":"12107:14:7"},{"AST":{"nodeType":"YulBlock","src":"12141:72:7","statements":[{"nodeType":"YulAssignment","src":"12155:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12181:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12189:3:7","type":"","value":"0x1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12177:3:7"},"nodeType":"YulFunctionCall","src":"12177:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12195:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12173:3:7"},"nodeType":"YulFunctionCall","src":"12173:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12167:5:7"},"nodeType":"YulFunctionCall","src":"12167:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12155:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2545,"isOffset":false,"isSlot":false,"src":"12181:6:7","valueSize":1},{"declaration":2547,"isOffset":false,"isSlot":false,"src":"12195:6:7","valueSize":1},{"declaration":2563,"isOffset":false,"isSlot":false,"src":"12155:8:7","valueSize":1}],"id":2565,"nodeType":"InlineAssembly","src":"12132:81:7"},{"expression":{"id":2566,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2563,"src":"12230:8:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":2551,"id":2567,"nodeType":"Return","src":"12223:15:7"}]},"id":2569,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"11952:7:7","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2545,"mutability":"mutable","name":"_bytes","nameLocation":"11973:6:7","nodeType":"VariableDeclaration","scope":2569,"src":"11960:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2544,"name":"bytes","nodeType":"ElementaryTypeName","src":"11960:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"_start","nameLocation":"11989:6:7","nodeType":"VariableDeclaration","scope":2569,"src":"11981:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2546,"name":"uint256","nodeType":"ElementaryTypeName","src":"11981:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11959:37:7"},"returnParameters":{"id":2551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2569,"src":"12020:5:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2549,"name":"uint8","nodeType":"ElementaryTypeName","src":"12020:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12019:7:7"},"scope":2786,"src":"11943:302:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2594,"nodeType":"Block","src":"12337:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2579,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2571,"src":"12355:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12355:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2581,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"12372:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12381:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12372:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12355:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7431365f6f75744f66426f756e6473","id":2585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12384:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""},"value":"toUint16_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""}],"id":2578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12347:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12347:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2587,"nodeType":"ExpressionStatement","src":"12347:60:7"},{"assignments":[2589],"declarations":[{"constant":false,"id":2589,"mutability":"mutable","name":"tempUint","nameLocation":"12424:8:7","nodeType":"VariableDeclaration","scope":2594,"src":"12417:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2588,"name":"uint16","nodeType":"ElementaryTypeName","src":"12417:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":2590,"nodeType":"VariableDeclarationStatement","src":"12417:15:7"},{"AST":{"nodeType":"YulBlock","src":"12452:72:7","statements":[{"nodeType":"YulAssignment","src":"12466:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12492:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12500:3:7","type":"","value":"0x2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12488:3:7"},"nodeType":"YulFunctionCall","src":"12488:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12506:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12484:3:7"},"nodeType":"YulFunctionCall","src":"12484:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12478:5:7"},"nodeType":"YulFunctionCall","src":"12478:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12466:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2571,"isOffset":false,"isSlot":false,"src":"12492:6:7","valueSize":1},{"declaration":2573,"isOffset":false,"isSlot":false,"src":"12506:6:7","valueSize":1},{"declaration":2589,"isOffset":false,"isSlot":false,"src":"12466:8:7","valueSize":1}],"id":2591,"nodeType":"InlineAssembly","src":"12443:81:7"},{"expression":{"id":2592,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2589,"src":"12541:8:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":2577,"id":2593,"nodeType":"Return","src":"12534:15:7"}]},"id":2595,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"12260:8:7","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2571,"mutability":"mutable","name":"_bytes","nameLocation":"12282:6:7","nodeType":"VariableDeclaration","scope":2595,"src":"12269:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2570,"name":"bytes","nodeType":"ElementaryTypeName","src":"12269:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2573,"mutability":"mutable","name":"_start","nameLocation":"12298:6:7","nodeType":"VariableDeclaration","scope":2595,"src":"12290:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2572,"name":"uint256","nodeType":"ElementaryTypeName","src":"12290:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12268:37:7"},"returnParameters":{"id":2577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2595,"src":"12329:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2575,"name":"uint16","nodeType":"ElementaryTypeName","src":"12329:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"12328:8:7"},"scope":2786,"src":"12251:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2620,"nodeType":"Block","src":"12648:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2605,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2597,"src":"12666:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12666:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2607,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2599,"src":"12683:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":2608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12692:1:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12683:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12666:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7433325f6f75744f66426f756e6473","id":2611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12695:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""},"value":"toUint32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""}],"id":2604,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12658:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12658:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2613,"nodeType":"ExpressionStatement","src":"12658:60:7"},{"assignments":[2615],"declarations":[{"constant":false,"id":2615,"mutability":"mutable","name":"tempUint","nameLocation":"12735:8:7","nodeType":"VariableDeclaration","scope":2620,"src":"12728:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2614,"name":"uint32","nodeType":"ElementaryTypeName","src":"12728:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":2616,"nodeType":"VariableDeclarationStatement","src":"12728:15:7"},{"AST":{"nodeType":"YulBlock","src":"12763:72:7","statements":[{"nodeType":"YulAssignment","src":"12777:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"12803:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"12811:3:7","type":"","value":"0x4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12799:3:7"},"nodeType":"YulFunctionCall","src":"12799:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"12817:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12795:3:7"},"nodeType":"YulFunctionCall","src":"12795:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12789:5:7"},"nodeType":"YulFunctionCall","src":"12789:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"12777:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2597,"isOffset":false,"isSlot":false,"src":"12803:6:7","valueSize":1},{"declaration":2599,"isOffset":false,"isSlot":false,"src":"12817:6:7","valueSize":1},{"declaration":2615,"isOffset":false,"isSlot":false,"src":"12777:8:7","valueSize":1}],"id":2617,"nodeType":"InlineAssembly","src":"12754:81:7"},{"expression":{"id":2618,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2615,"src":"12852:8:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":2603,"id":2619,"nodeType":"Return","src":"12845:15:7"}]},"id":2621,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"12571:8:7","nodeType":"FunctionDefinition","parameters":{"id":2600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2597,"mutability":"mutable","name":"_bytes","nameLocation":"12593:6:7","nodeType":"VariableDeclaration","scope":2621,"src":"12580:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2596,"name":"bytes","nodeType":"ElementaryTypeName","src":"12580:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2599,"mutability":"mutable","name":"_start","nameLocation":"12609:6:7","nodeType":"VariableDeclaration","scope":2621,"src":"12601:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2598,"name":"uint256","nodeType":"ElementaryTypeName","src":"12601:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12579:37:7"},"returnParameters":{"id":2603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2621,"src":"12640:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2601,"name":"uint32","nodeType":"ElementaryTypeName","src":"12640:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"12639:8:7"},"scope":2786,"src":"12562:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2646,"nodeType":"Block","src":"12959:219:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2631,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2623,"src":"12977:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12977:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2633,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"12994:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":2634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13003:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12994:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12977:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","id":2637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13006:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""},"value":"toUint64_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""}],"id":2630,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12969:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12969:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2639,"nodeType":"ExpressionStatement","src":"12969:60:7"},{"assignments":[2641],"declarations":[{"constant":false,"id":2641,"mutability":"mutable","name":"tempUint","nameLocation":"13046:8:7","nodeType":"VariableDeclaration","scope":2646,"src":"13039:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2640,"name":"uint64","nodeType":"ElementaryTypeName","src":"13039:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":2642,"nodeType":"VariableDeclarationStatement","src":"13039:15:7"},{"AST":{"nodeType":"YulBlock","src":"13074:72:7","statements":[{"nodeType":"YulAssignment","src":"13088:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13114:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13122:3:7","type":"","value":"0x8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13110:3:7"},"nodeType":"YulFunctionCall","src":"13110:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13128:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13106:3:7"},"nodeType":"YulFunctionCall","src":"13106:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13100:5:7"},"nodeType":"YulFunctionCall","src":"13100:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13088:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2623,"isOffset":false,"isSlot":false,"src":"13114:6:7","valueSize":1},{"declaration":2625,"isOffset":false,"isSlot":false,"src":"13128:6:7","valueSize":1},{"declaration":2641,"isOffset":false,"isSlot":false,"src":"13088:8:7","valueSize":1}],"id":2643,"nodeType":"InlineAssembly","src":"13065:81:7"},{"expression":{"id":2644,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2641,"src":"13163:8:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":2629,"id":2645,"nodeType":"Return","src":"13156:15:7"}]},"id":2647,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"12882:8:7","nodeType":"FunctionDefinition","parameters":{"id":2626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2623,"mutability":"mutable","name":"_bytes","nameLocation":"12904:6:7","nodeType":"VariableDeclaration","scope":2647,"src":"12891:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2622,"name":"bytes","nodeType":"ElementaryTypeName","src":"12891:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2625,"mutability":"mutable","name":"_start","nameLocation":"12920:6:7","nodeType":"VariableDeclaration","scope":2647,"src":"12912:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2624,"name":"uint256","nodeType":"ElementaryTypeName","src":"12912:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12890:37:7"},"returnParameters":{"id":2629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2647,"src":"12951:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2627,"name":"uint64","nodeType":"ElementaryTypeName","src":"12951:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"12950:8:7"},"scope":2786,"src":"12873:305:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2672,"nodeType":"Block","src":"13270:220:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2657,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2649,"src":"13288:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13288:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2659,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2651,"src":"13305:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3132","id":2660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13314:2:7","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13305:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13288:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7439365f6f75744f66426f756e6473","id":2663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13318:22:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""},"value":"toUint96_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""}],"id":2656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13280:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13280:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2665,"nodeType":"ExpressionStatement","src":"13280:61:7"},{"assignments":[2667],"declarations":[{"constant":false,"id":2667,"mutability":"mutable","name":"tempUint","nameLocation":"13358:8:7","nodeType":"VariableDeclaration","scope":2672,"src":"13351:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2666,"name":"uint96","nodeType":"ElementaryTypeName","src":"13351:6:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":2668,"nodeType":"VariableDeclarationStatement","src":"13351:15:7"},{"AST":{"nodeType":"YulBlock","src":"13386:72:7","statements":[{"nodeType":"YulAssignment","src":"13400:48:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13426:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13434:3:7","type":"","value":"0xc"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13422:3:7"},"nodeType":"YulFunctionCall","src":"13422:16:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13440:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13418:3:7"},"nodeType":"YulFunctionCall","src":"13418:29:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13412:5:7"},"nodeType":"YulFunctionCall","src":"13412:36:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13400:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2649,"isOffset":false,"isSlot":false,"src":"13426:6:7","valueSize":1},{"declaration":2651,"isOffset":false,"isSlot":false,"src":"13440:6:7","valueSize":1},{"declaration":2667,"isOffset":false,"isSlot":false,"src":"13400:8:7","valueSize":1}],"id":2669,"nodeType":"InlineAssembly","src":"13377:81:7"},{"expression":{"id":2670,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2667,"src":"13475:8:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":2655,"id":2671,"nodeType":"Return","src":"13468:15:7"}]},"id":2673,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"13193:8:7","nodeType":"FunctionDefinition","parameters":{"id":2652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2649,"mutability":"mutable","name":"_bytes","nameLocation":"13215:6:7","nodeType":"VariableDeclaration","scope":2673,"src":"13202:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2648,"name":"bytes","nodeType":"ElementaryTypeName","src":"13202:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2651,"mutability":"mutable","name":"_start","nameLocation":"13231:6:7","nodeType":"VariableDeclaration","scope":2673,"src":"13223:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2650,"name":"uint256","nodeType":"ElementaryTypeName","src":"13223:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13201:37:7"},"returnParameters":{"id":2655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2673,"src":"13262:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2653,"name":"uint96","nodeType":"ElementaryTypeName","src":"13262:6:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"13261:8:7"},"scope":2786,"src":"13184:306:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2698,"nodeType":"Block","src":"13584:223:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2683,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2675,"src":"13602:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13602:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2685,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2677,"src":"13619:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":2686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13628:2:7","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13619:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13602:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743132385f6f75744f66426f756e6473","id":2689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13632:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""},"value":"toUint128_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""}],"id":2682,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13594:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13594:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2691,"nodeType":"ExpressionStatement","src":"13594:62:7"},{"assignments":[2693],"declarations":[{"constant":false,"id":2693,"mutability":"mutable","name":"tempUint","nameLocation":"13674:8:7","nodeType":"VariableDeclaration","scope":2698,"src":"13666:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2692,"name":"uint128","nodeType":"ElementaryTypeName","src":"13666:7:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":2694,"nodeType":"VariableDeclarationStatement","src":"13666:16:7"},{"AST":{"nodeType":"YulBlock","src":"13702:73:7","statements":[{"nodeType":"YulAssignment","src":"13716:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"13742:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"13750:4:7","type":"","value":"0x10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13738:3:7"},"nodeType":"YulFunctionCall","src":"13738:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"13757:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13734:3:7"},"nodeType":"YulFunctionCall","src":"13734:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13728:5:7"},"nodeType":"YulFunctionCall","src":"13728:37:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"13716:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2675,"isOffset":false,"isSlot":false,"src":"13742:6:7","valueSize":1},{"declaration":2677,"isOffset":false,"isSlot":false,"src":"13757:6:7","valueSize":1},{"declaration":2693,"isOffset":false,"isSlot":false,"src":"13716:8:7","valueSize":1}],"id":2695,"nodeType":"InlineAssembly","src":"13693:82:7"},{"expression":{"id":2696,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2693,"src":"13792:8:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":2681,"id":2697,"nodeType":"Return","src":"13785:15:7"}]},"id":2699,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"13505:9:7","nodeType":"FunctionDefinition","parameters":{"id":2678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2675,"mutability":"mutable","name":"_bytes","nameLocation":"13528:6:7","nodeType":"VariableDeclaration","scope":2699,"src":"13515:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2674,"name":"bytes","nodeType":"ElementaryTypeName","src":"13515:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2677,"mutability":"mutable","name":"_start","nameLocation":"13544:6:7","nodeType":"VariableDeclaration","scope":2699,"src":"13536:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2676,"name":"uint256","nodeType":"ElementaryTypeName","src":"13536:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13514:37:7"},"returnParameters":{"id":2681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2699,"src":"13575:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2679,"name":"uint128","nodeType":"ElementaryTypeName","src":"13575:7:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13574:9:7"},"scope":2786,"src":"13496:311:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2724,"nodeType":"Block","src":"13901:223:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2709,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"13919:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13919:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2711,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"13936:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":2712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13945:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"13936:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13919:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743235365f6f75744f66426f756e6473","id":2715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13949:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""},"value":"toUint256_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""}],"id":2708,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13911:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13911:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2717,"nodeType":"ExpressionStatement","src":"13911:62:7"},{"assignments":[2719],"declarations":[{"constant":false,"id":2719,"mutability":"mutable","name":"tempUint","nameLocation":"13991:8:7","nodeType":"VariableDeclaration","scope":2724,"src":"13983:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2718,"name":"uint256","nodeType":"ElementaryTypeName","src":"13983:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2720,"nodeType":"VariableDeclarationStatement","src":"13983:16:7"},{"AST":{"nodeType":"YulBlock","src":"14019:73:7","statements":[{"nodeType":"YulAssignment","src":"14033:49:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"14059:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"14067:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14055:3:7"},"nodeType":"YulFunctionCall","src":"14055:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"14074:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14051:3:7"},"nodeType":"YulFunctionCall","src":"14051:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14045:5:7"},"nodeType":"YulFunctionCall","src":"14045:37:7"},"variableNames":[{"name":"tempUint","nodeType":"YulIdentifier","src":"14033:8:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2701,"isOffset":false,"isSlot":false,"src":"14059:6:7","valueSize":1},{"declaration":2703,"isOffset":false,"isSlot":false,"src":"14074:6:7","valueSize":1},{"declaration":2719,"isOffset":false,"isSlot":false,"src":"14033:8:7","valueSize":1}],"id":2721,"nodeType":"InlineAssembly","src":"14010:82:7"},{"expression":{"id":2722,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"14109:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2707,"id":2723,"nodeType":"Return","src":"14102:15:7"}]},"id":2725,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"13822:9:7","nodeType":"FunctionDefinition","parameters":{"id":2704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2701,"mutability":"mutable","name":"_bytes","nameLocation":"13845:6:7","nodeType":"VariableDeclaration","scope":2725,"src":"13832:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2700,"name":"bytes","nodeType":"ElementaryTypeName","src":"13832:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2703,"mutability":"mutable","name":"_start","nameLocation":"13861:6:7","nodeType":"VariableDeclaration","scope":2725,"src":"13853:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2702,"name":"uint256","nodeType":"ElementaryTypeName","src":"13853:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13831:37:7"},"returnParameters":{"id":2707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2725,"src":"13892:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2705,"name":"uint256","nodeType":"ElementaryTypeName","src":"13892:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13891:9:7"},"scope":2786,"src":"13813:311:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2750,"nodeType":"Block","src":"14218:232:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2735,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2727,"src":"14236:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14236:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2737,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2729,"src":"14253:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":2738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14253:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14236:28:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","id":2741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14266:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""},"value":"toBytes32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""}],"id":2734,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14228:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14228:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2743,"nodeType":"ExpressionStatement","src":"14228:62:7"},{"assignments":[2745],"declarations":[{"constant":false,"id":2745,"mutability":"mutable","name":"tempBytes32","nameLocation":"14308:11:7","nodeType":"VariableDeclaration","scope":2750,"src":"14300:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14300:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2746,"nodeType":"VariableDeclarationStatement","src":"14300:19:7"},{"AST":{"nodeType":"YulBlock","src":"14339:76:7","statements":[{"nodeType":"YulAssignment","src":"14353:52:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"14382:6:7"},{"kind":"number","nodeType":"YulLiteral","src":"14390:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14378:3:7"},"nodeType":"YulFunctionCall","src":"14378:17:7"},{"name":"_start","nodeType":"YulIdentifier","src":"14397:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14374:3:7"},"nodeType":"YulFunctionCall","src":"14374:30:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14368:5:7"},"nodeType":"YulFunctionCall","src":"14368:37:7"},"variableNames":[{"name":"tempBytes32","nodeType":"YulIdentifier","src":"14353:11:7"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2727,"isOffset":false,"isSlot":false,"src":"14382:6:7","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"14397:6:7","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"14353:11:7","valueSize":1}],"id":2747,"nodeType":"InlineAssembly","src":"14330:85:7"},{"expression":{"id":2748,"name":"tempBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"14432:11:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2733,"id":2749,"nodeType":"Return","src":"14425:18:7"}]},"id":2751,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"14139:9:7","nodeType":"FunctionDefinition","parameters":{"id":2730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"mutability":"mutable","name":"_bytes","nameLocation":"14162:6:7","nodeType":"VariableDeclaration","scope":2751,"src":"14149:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2726,"name":"bytes","nodeType":"ElementaryTypeName","src":"14149:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2729,"mutability":"mutable","name":"_start","nameLocation":"14178:6:7","nodeType":"VariableDeclaration","scope":2751,"src":"14170:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"14170:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14148:37:7"},"returnParameters":{"id":2733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2751,"src":"14209:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14209:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14208:9:7"},"scope":2786,"src":"14130:320:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2767,"nodeType":"Block","src":"14549:1291:7","statements":[{"assignments":[2761],"declarations":[{"constant":false,"id":2761,"mutability":"mutable","name":"success","nameLocation":"14564:7:7","nodeType":"VariableDeclaration","scope":2767,"src":"14559:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2760,"name":"bool","nodeType":"ElementaryTypeName","src":"14559:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2763,"initialValue":{"hexValue":"74727565","id":2762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14574:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"14559:19:7"},{"AST":{"nodeType":"YulBlock","src":"14598:1211:7","statements":[{"nodeType":"YulVariableDeclaration","src":"14612:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"14632:9:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14626:5:7"},"nodeType":"YulFunctionCall","src":"14626:16:7"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14616:6:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"14771:937:7","statements":[{"nodeType":"YulVariableDeclaration","src":"14984:11:7","value":{"kind":"number","nodeType":"YulLiteral","src":"14994:1:7","type":"","value":"1"},"variables":[{"name":"cb","nodeType":"YulTypedName","src":"14988:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15013:30:7","value":{"arguments":[{"name":"_preBytes","nodeType":"YulIdentifier","src":"15027:9:7"},{"kind":"number","nodeType":"YulLiteral","src":"15038:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15023:3:7"},"nodeType":"YulFunctionCall","src":"15023:20:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"15017:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15060:26:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15075:2:7"},{"name":"length","nodeType":"YulIdentifier","src":"15079:6:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15071:3:7"},"nodeType":"YulFunctionCall","src":"15071:15:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"15064:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"15418:276:7","statements":[{"body":{"nodeType":"YulBlock","src":"15550:126:7","statements":[{"nodeType":"YulAssignment","src":"15610:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15621:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"15610:7:7"}]},{"nodeType":"YulAssignment","src":"15647:7:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15653:1:7","type":"","value":"0"},"variableNames":[{"name":"cb","nodeType":"YulIdentifier","src":"15647:2:7"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15533:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15527:5:7"},"nodeType":"YulFunctionCall","src":"15527:9:7"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"15544:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15538:5:7"},"nodeType":"YulFunctionCall","src":"15538:9:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15524:2:7"},"nodeType":"YulFunctionCall","src":"15524:24:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15517:6:7"},"nodeType":"YulFunctionCall","src":"15517:32:7"},"nodeType":"YulIf","src":"15514:162:7"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15300:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"15304:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15297:2:7"},"nodeType":"YulFunctionCall","src":"15297:11:7"},{"name":"cb","nodeType":"YulIdentifier","src":"15310:2:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15293:3:7"},"nodeType":"YulFunctionCall","src":"15293:20:7"},{"kind":"number","nodeType":"YulLiteral","src":"15315:1:7","type":"","value":"2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15290:2:7"},"nodeType":"YulFunctionCall","src":"15290:27:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15318:99:7","statements":[{"nodeType":"YulAssignment","src":"15340:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"15350:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"15354:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15346:3:7"},"nodeType":"YulFunctionCall","src":"15346:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"15340:2:7"}]},{"nodeType":"YulAssignment","src":"15380:19:7","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"15390:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"15394:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15386:3:7"},"nodeType":"YulFunctionCall","src":"15386:13:7"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"15380:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"15108:181:7","statements":[{"nodeType":"YulVariableDeclaration","src":"15130:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"15144:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"15156:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15140:3:7"},"nodeType":"YulFunctionCall","src":"15140:21:7"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"15134:2:7","type":""}]}]},"src":"15104:590:7"}]},"nodeType":"YulCase","src":"14764:944:7","value":{"kind":"number","nodeType":"YulLiteral","src":"14769:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"15729:70:7","statements":[{"nodeType":"YulAssignment","src":"15773:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"15784:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"15773:7:7"}]}]},"nodeType":"YulCase","src":"15721:78:7","value":"default"}],"expression":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14725:6:7"},{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"14739:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14733:5:7"},"nodeType":"YulFunctionCall","src":"14733:17:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14722:2:7"},"nodeType":"YulFunctionCall","src":"14722:29:7"},"nodeType":"YulSwitch","src":"14715:1084:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2755,"isOffset":false,"isSlot":false,"src":"14739:10:7","valueSize":1},{"declaration":2755,"isOffset":false,"isSlot":false,"src":"15144:10:7","valueSize":1},{"declaration":2753,"isOffset":false,"isSlot":false,"src":"14632:9:7","valueSize":1},{"declaration":2753,"isOffset":false,"isSlot":false,"src":"15027:9:7","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"15610:7:7","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"15773:7:7","valueSize":1}],"id":2764,"nodeType":"InlineAssembly","src":"14589:1220:7"},{"expression":{"id":2765,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2761,"src":"15826:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2759,"id":2766,"nodeType":"Return","src":"15819:14:7"}]},"id":2768,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"14465:5:7","nodeType":"FunctionDefinition","parameters":{"id":2756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2753,"mutability":"mutable","name":"_preBytes","nameLocation":"14484:9:7","nodeType":"VariableDeclaration","scope":2768,"src":"14471:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2752,"name":"bytes","nodeType":"ElementaryTypeName","src":"14471:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2755,"mutability":"mutable","name":"_postBytes","nameLocation":"14508:10:7","nodeType":"VariableDeclaration","scope":2768,"src":"14495:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2754,"name":"bytes","nodeType":"ElementaryTypeName","src":"14495:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14470:49:7"},"returnParameters":{"id":2759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2768,"src":"14543:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2757,"name":"bool","nodeType":"ElementaryTypeName","src":"14543:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14542:6:7"},"scope":2786,"src":"14456:1384:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2784,"nodeType":"Block","src":"15985:2491:7","statements":[{"assignments":[2778],"declarations":[{"constant":false,"id":2778,"mutability":"mutable","name":"success","nameLocation":"16000:7:7","nodeType":"VariableDeclaration","scope":2784,"src":"15995:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2777,"name":"bool","nodeType":"ElementaryTypeName","src":"15995:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2780,"initialValue":{"hexValue":"74727565","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16010:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"15995:19:7"},{"AST":{"nodeType":"YulBlock","src":"16034:2411:7","statements":[{"nodeType":"YulVariableDeclaration","src":"16089:34:7","value":{"arguments":[{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"16108:14:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"16102:5:7"},"nodeType":"YulFunctionCall","src":"16102:21:7"},"variables":[{"name":"fslot","nodeType":"YulTypedName","src":"16093:5:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16210:76:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16233:5:7"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16248:5:7","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16266:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"16273:1:7","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16262:3:7"},"nodeType":"YulFunctionCall","src":"16262:13:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16255:6:7"},"nodeType":"YulFunctionCall","src":"16255:21:7"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"16244:3:7"},"nodeType":"YulFunctionCall","src":"16244:33:7"},{"kind":"number","nodeType":"YulLiteral","src":"16279:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16240:3:7"},"nodeType":"YulFunctionCall","src":"16240:41:7"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16229:3:7"},"nodeType":"YulFunctionCall","src":"16229:53:7"},{"kind":"number","nodeType":"YulLiteral","src":"16284:1:7","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"16225:3:7"},"nodeType":"YulFunctionCall","src":"16225:61:7"},"variables":[{"name":"slength","nodeType":"YulTypedName","src":"16214:7:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16299:32:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"16320:10:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16314:5:7"},"nodeType":"YulFunctionCall","src":"16314:17:7"},"variables":[{"name":"mlength","nodeType":"YulTypedName","src":"16303:7:7","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"16451:1893:7","statements":[{"body":{"nodeType":"YulBlock","src":"16750:1580:7","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"16822:332:7","statements":[{"nodeType":"YulAssignment","src":"16911:38:7","value":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16928:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"16935:5:7","type":"","value":"0x100"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"16924:3:7"},"nodeType":"YulFunctionCall","src":"16924:17:7"},{"kind":"number","nodeType":"YulLiteral","src":"16943:5:7","type":"","value":"0x100"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"16920:3:7"},"nodeType":"YulFunctionCall","src":"16920:29:7"},"variableNames":[{"name":"fslot","nodeType":"YulIdentifier","src":"16911:5:7"}]},{"body":{"nodeType":"YulBlock","src":"17026:106:7","statements":[{"nodeType":"YulAssignment","src":"17094:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"17105:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"17094:7:7"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fslot","nodeType":"YulIdentifier","src":"16988:5:7"},{"arguments":[{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"17005:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"17017:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17001:3:7"},"nodeType":"YulFunctionCall","src":"17001:21:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16995:5:7"},"nodeType":"YulFunctionCall","src":"16995:28:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16985:2:7"},"nodeType":"YulFunctionCall","src":"16985:39:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16978:6:7"},"nodeType":"YulFunctionCall","src":"16978:47:7"},"nodeType":"YulIf","src":"16975:157:7"}]},"nodeType":"YulCase","src":"16815:339:7","value":{"kind":"number","nodeType":"YulLiteral","src":"16820:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"17183:1129:7","statements":[{"nodeType":"YulVariableDeclaration","src":"17436:11:7","value":{"kind":"number","nodeType":"YulLiteral","src":"17446:1:7","type":"","value":"1"},"variables":[{"name":"cb","nodeType":"YulTypedName","src":"17440:2:7","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17556:3:7","type":"","value":"0x0"},{"name":"_preBytes.slot","nodeType":"YulIdentifier","src":"17561:14:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17549:6:7"},"nodeType":"YulFunctionCall","src":"17549:27:7"},"nodeType":"YulExpressionStatement","src":"17549:27:7"},{"nodeType":"YulVariableDeclaration","src":"17601:30:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17621:3:7","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"17626:4:7","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"17611:9:7"},"nodeType":"YulFunctionCall","src":"17611:20:7"},"variables":[{"name":"sc","nodeType":"YulTypedName","src":"17605:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17657:31:7","value":{"arguments":[{"name":"_postBytes","nodeType":"YulIdentifier","src":"17671:10:7"},{"kind":"number","nodeType":"YulLiteral","src":"17683:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17667:3:7"},"nodeType":"YulFunctionCall","src":"17667:21:7"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"17661:2:7","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17713:27:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"17728:2:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"17732:7:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17724:3:7"},"nodeType":"YulFunctionCall","src":"17724:16:7"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"17717:3:7","type":""}]},{"body":{"nodeType":"YulBlock","src":"18040:250:7","statements":[{"body":{"nodeType":"YulBlock","src":"18106:158:7","statements":[{"nodeType":"YulAssignment","src":"18182:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18193:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"18182:7:7"}]},{"nodeType":"YulAssignment","src":"18227:7:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18233:1:7","type":"","value":"0"},"variableNames":[{"name":"cb","nodeType":"YulIdentifier","src":"18227:2:7"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"18089:2:7"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"18083:5:7"},"nodeType":"YulFunctionCall","src":"18083:9:7"},{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"18100:2:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18094:5:7"},"nodeType":"YulFunctionCall","src":"18094:9:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18080:2:7"},"nodeType":"YulFunctionCall","src":"18080:24:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18073:6:7"},"nodeType":"YulFunctionCall","src":"18073:32:7"},"nodeType":"YulIf","src":"18070:194:7"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"17901:2:7"},{"name":"end","nodeType":"YulIdentifier","src":"17905:3:7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17898:2:7"},"nodeType":"YulFunctionCall","src":"17898:11:7"},{"name":"cb","nodeType":"YulIdentifier","src":"17911:2:7"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17894:3:7"},"nodeType":"YulFunctionCall","src":"17894:20:7"},{"kind":"number","nodeType":"YulLiteral","src":"17916:1:7","type":"","value":"2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"17891:2:7"},"nodeType":"YulFunctionCall","src":"17891:27:7"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"17919:120:7","statements":[{"nodeType":"YulAssignment","src":"17949:16:7","value":{"arguments":[{"name":"sc","nodeType":"YulIdentifier","src":"17959:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"17963:1:7","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17955:3:7"},"nodeType":"YulFunctionCall","src":"17955:10:7"},"variableNames":[{"name":"sc","nodeType":"YulIdentifier","src":"17949:2:7"}]},{"nodeType":"YulAssignment","src":"17994:19:7","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"18004:2:7"},{"kind":"number","nodeType":"YulLiteral","src":"18008:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18000:3:7"},"nodeType":"YulFunctionCall","src":"18000:13:7"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"17994:2:7"}]}]},"pre":{"nodeType":"YulBlock","src":"17888:2:7","statements":[]},"src":"17884:406:7"}]},"nodeType":"YulCase","src":"17175:1137:7","value":"default"}],"expression":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16782:7:7"},{"kind":"number","nodeType":"YulLiteral","src":"16791:2:7","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16779:2:7"},"nodeType":"YulFunctionCall","src":"16779:15:7"},"nodeType":"YulSwitch","src":"16772:1540:7"}]},"condition":{"arguments":[{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16740:7:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16733:6:7"},"nodeType":"YulFunctionCall","src":"16733:15:7"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16726:6:7"},"nodeType":"YulFunctionCall","src":"16726:23:7"},"nodeType":"YulIf","src":"16723:1607:7"}]},"nodeType":"YulCase","src":"16444:1900:7","value":{"kind":"number","nodeType":"YulLiteral","src":"16449:1:7","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"18365:70:7","statements":[{"nodeType":"YulAssignment","src":"18409:12:7","value":{"kind":"number","nodeType":"YulLiteral","src":"18420:1:7","type":"","value":"0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"18409:7:7"}]}]},"nodeType":"YulCase","src":"18357:78:7","value":"default"}],"expression":{"arguments":[{"name":"slength","nodeType":"YulIdentifier","src":"16414:7:7"},{"name":"mlength","nodeType":"YulIdentifier","src":"16423:7:7"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16411:2:7"},"nodeType":"YulFunctionCall","src":"16411:20:7"},"nodeType":"YulSwitch","src":"16404:2031:7"}]},"evmVersion":"london","externalReferences":[{"declaration":2772,"isOffset":false,"isSlot":false,"src":"16320:10:7","valueSize":1},{"declaration":2772,"isOffset":false,"isSlot":false,"src":"17005:10:7","valueSize":1},{"declaration":2772,"isOffset":false,"isSlot":false,"src":"17671:10:7","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":true,"src":"16108:14:7","suffix":"slot","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":true,"src":"17561:14:7","suffix":"slot","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"17094:7:7","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"18182:7:7","valueSize":1},{"declaration":2778,"isOffset":false,"isSlot":false,"src":"18409:7:7","valueSize":1}],"id":2781,"nodeType":"InlineAssembly","src":"16025:2420:7"},{"expression":{"id":2782,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2778,"src":"18462:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2776,"id":2783,"nodeType":"Return","src":"18455:14:7"}]},"id":2785,"implemented":true,"kind":"function","modifiers":[],"name":"equalStorage","nameLocation":"15855:12:7","nodeType":"FunctionDefinition","parameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2770,"mutability":"mutable","name":"_preBytes","nameLocation":"15891:9:7","nodeType":"VariableDeclaration","scope":2785,"src":"15877:23:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2769,"name":"bytes","nodeType":"ElementaryTypeName","src":"15877:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2772,"mutability":"mutable","name":"_postBytes","nameLocation":"15923:10:7","nodeType":"VariableDeclaration","scope":2785,"src":"15910:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2771,"name":"bytes","nodeType":"ElementaryTypeName","src":"15910:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15867:72:7"},"returnParameters":{"id":2776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2785,"src":"15975:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2774,"name":"bool","nodeType":"ElementaryTypeName","src":"15975:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15974:6:7"},"scope":2786,"src":"15846:2630:7","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2787,"src":"370:18108:7","usedErrors":[]}],"src":"336:18143:7"},"id":7},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol","exportedSymbols":{"ExcessivelySafeCall":[2883]},"id":2884,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2788,"literals":["solidity",">=","0.7",".6"],"nodeType":"PragmaDirective","src":"46:24:8"},{"abstract":false,"baseContracts":[],"canonicalName":"ExcessivelySafeCall","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2883,"linearizedBaseContracts":[2883],"name":"ExcessivelySafeCall","nameLocation":"80:19:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2791,"mutability":"constant","name":"LOW_28_MASK","nameLocation":"123:11:8","nodeType":"VariableDeclaration","scope":2883,"src":"106:101:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2789,"name":"uint256","nodeType":"ElementaryTypeName","src":"106:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830303030303030306666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":2790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"141:66:8","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1","typeString":"int_const 2695...(60 digits omitted)...9215"},"value":"0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"body":{"id":2825,"nodeType":"Block","src":"1295:1063:8","statements":[{"assignments":[2808],"declarations":[{"constant":false,"id":2808,"mutability":"mutable","name":"_toCopy","nameLocation":"1349:7:8","nodeType":"VariableDeclaration","scope":2825,"src":"1341:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2809,"nodeType":"VariableDeclarationStatement","src":"1341:15:8"},{"assignments":[2811],"declarations":[{"constant":false,"id":2811,"mutability":"mutable","name":"_success","nameLocation":"1371:8:8","nodeType":"VariableDeclaration","scope":2825,"src":"1366:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2810,"name":"bool","nodeType":"ElementaryTypeName","src":"1366:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2812,"nodeType":"VariableDeclarationStatement","src":"1366:13:8"},{"assignments":[2814],"declarations":[{"constant":false,"id":2814,"mutability":"mutable","name":"_returnData","nameLocation":"1402:11:8","nodeType":"VariableDeclaration","scope":2825,"src":"1389:24:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2813,"name":"bytes","nodeType":"ElementaryTypeName","src":"1389:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2819,"initialValue":{"arguments":[{"id":2817,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"1426:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":2816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1416:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2815,"name":"bytes","nodeType":"ElementaryTypeName","src":"1420:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1416:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1389:46:8"},{"AST":{"nodeType":"YulBlock","src":"1664:648:8","statements":[{"nodeType":"YulAssignment","src":"1678:251:8","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"1708:4:8"},{"name":"_target","nodeType":"YulIdentifier","src":"1733:7:8"},{"kind":"number","nodeType":"YulLiteral","src":"1767:1:8","type":"","value":"0"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1801:9:8"},{"kind":"number","nodeType":"YulLiteral","src":"1812:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1797:3:8"},"nodeType":"YulFunctionCall","src":"1797:20:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1846:9:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1840:5:8"},"nodeType":"YulFunctionCall","src":"1840:16:8"},{"kind":"number","nodeType":"YulLiteral","src":"1879:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1904:1:8","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1690:4:8"},"nodeType":"YulFunctionCall","src":"1690:239:8"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"1678:8:8"}]},{"nodeType":"YulAssignment","src":"1981:27:8","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1992:14:8"},"nodeType":"YulFunctionCall","src":"1992:16:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"1981:7:8"}]},{"body":{"nodeType":"YulBlock","src":"2046:51:8","statements":[{"nodeType":"YulAssignment","src":"2064:19:8","value":{"name":"_maxCopy","nodeType":"YulIdentifier","src":"2075:8:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"2064:7:8"}]}]},"condition":{"arguments":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"2027:7:8"},{"name":"_maxCopy","nodeType":"YulIdentifier","src":"2036:8:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2024:2:8"},"nodeType":"YulFunctionCall","src":"2024:21:8"},"nodeType":"YulIf","src":"2021:76:8"},{"expression":{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"2165:11:8"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"2178:7:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2158:6:8"},"nodeType":"YulFunctionCall","src":"2158:28:8"},"nodeType":"YulExpressionStatement","src":"2158:28:8"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"2271:11:8"},{"kind":"number","nodeType":"YulLiteral","src":"2284:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2267:3:8"},"nodeType":"YulFunctionCall","src":"2267:22:8"},{"kind":"number","nodeType":"YulLiteral","src":"2291:1:8","type":"","value":"0"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"2294:7:8"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2252:14:8"},"nodeType":"YulFunctionCall","src":"2252:50:8"},"nodeType":"YulExpressionStatement","src":"2252:50:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2800,"isOffset":false,"isSlot":false,"src":"1801:9:8","valueSize":1},{"declaration":2800,"isOffset":false,"isSlot":false,"src":"1846:9:8","valueSize":1},{"declaration":2796,"isOffset":false,"isSlot":false,"src":"1708:4:8","valueSize":1},{"declaration":2798,"isOffset":false,"isSlot":false,"src":"2036:8:8","valueSize":1},{"declaration":2798,"isOffset":false,"isSlot":false,"src":"2075:8:8","valueSize":1},{"declaration":2814,"isOffset":false,"isSlot":false,"src":"2165:11:8","valueSize":1},{"declaration":2814,"isOffset":false,"isSlot":false,"src":"2271:11:8","valueSize":1},{"declaration":2811,"isOffset":false,"isSlot":false,"src":"1678:8:8","valueSize":1},{"declaration":2794,"isOffset":false,"isSlot":false,"src":"1733:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"1981:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2027:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2064:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2178:7:8","valueSize":1},{"declaration":2808,"isOffset":false,"isSlot":false,"src":"2294:7:8","valueSize":1}],"id":2820,"nodeType":"InlineAssembly","src":"1655:657:8"},{"expression":{"components":[{"id":2821,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"2329:8:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2822,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"2339:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2823,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2328:23:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":2806,"id":2824,"nodeType":"Return","src":"2321:30:8"}]},"documentation":{"id":2792,"nodeType":"StructuredDocumentation","src":"214:899:8","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":2826,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeCall","nameLocation":"1127:19:8","nodeType":"FunctionDefinition","parameters":{"id":2801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2794,"mutability":"mutable","name":"_target","nameLocation":"1164:7:8","nodeType":"VariableDeclaration","scope":2826,"src":"1156:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2793,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2796,"mutability":"mutable","name":"_gas","nameLocation":"1189:4:8","nodeType":"VariableDeclaration","scope":2826,"src":"1181:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2795,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2798,"mutability":"mutable","name":"_maxCopy","nameLocation":"1210:8:8","nodeType":"VariableDeclaration","scope":2826,"src":"1203:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2797,"name":"uint16","nodeType":"ElementaryTypeName","src":"1203:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2800,"mutability":"mutable","name":"_calldata","nameLocation":"1241:9:8","nodeType":"VariableDeclaration","scope":2826,"src":"1228:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2799,"name":"bytes","nodeType":"ElementaryTypeName","src":"1228:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1146:110:8"},"returnParameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2826,"src":"1275:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2802,"name":"bool","nodeType":"ElementaryTypeName","src":"1275:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2826,"src":"1281:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2804,"name":"bytes","nodeType":"ElementaryTypeName","src":"1281:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1274:20:8"},"scope":2883,"src":"1118:1240:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2860,"nodeType":"Block","src":"3456:1039:8","statements":[{"assignments":[2843],"declarations":[{"constant":false,"id":2843,"mutability":"mutable","name":"_toCopy","nameLocation":"3510:7:8","nodeType":"VariableDeclaration","scope":2860,"src":"3502:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2842,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2844,"nodeType":"VariableDeclarationStatement","src":"3502:15:8"},{"assignments":[2846],"declarations":[{"constant":false,"id":2846,"mutability":"mutable","name":"_success","nameLocation":"3532:8:8","nodeType":"VariableDeclaration","scope":2860,"src":"3527:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2845,"name":"bool","nodeType":"ElementaryTypeName","src":"3527:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2847,"nodeType":"VariableDeclarationStatement","src":"3527:13:8"},{"assignments":[2849],"declarations":[{"constant":false,"id":2849,"mutability":"mutable","name":"_returnData","nameLocation":"3563:11:8","nodeType":"VariableDeclaration","scope":2860,"src":"3550:24:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2848,"name":"bytes","nodeType":"ElementaryTypeName","src":"3550:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2854,"initialValue":{"arguments":[{"id":2852,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"3587:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":2851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3577:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2850,"name":"bytes","nodeType":"ElementaryTypeName","src":"3581:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3577:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3550:46:8"},{"AST":{"nodeType":"YulBlock","src":"3825:624:8","statements":[{"nodeType":"YulAssignment","src":"3839:227:8","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"3875:4:8"},{"name":"_target","nodeType":"YulIdentifier","src":"3900:7:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"3938:9:8"},{"kind":"number","nodeType":"YulLiteral","src":"3949:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3934:3:8"},"nodeType":"YulFunctionCall","src":"3934:20:8"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"3983:9:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3977:5:8"},"nodeType":"YulFunctionCall","src":"3977:16:8"},{"kind":"number","nodeType":"YulLiteral","src":"4016:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4041:1:8","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"3851:10:8"},"nodeType":"YulFunctionCall","src":"3851:215:8"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"3839:8:8"}]},{"nodeType":"YulAssignment","src":"4118:27:8","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4129:14:8"},"nodeType":"YulFunctionCall","src":"4129:16:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4118:7:8"}]},{"body":{"nodeType":"YulBlock","src":"4183:51:8","statements":[{"nodeType":"YulAssignment","src":"4201:19:8","value":{"name":"_maxCopy","nodeType":"YulIdentifier","src":"4212:8:8"},"variableNames":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4201:7:8"}]}]},"condition":{"arguments":[{"name":"_toCopy","nodeType":"YulIdentifier","src":"4164:7:8"},{"name":"_maxCopy","nodeType":"YulIdentifier","src":"4173:8:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4161:2:8"},"nodeType":"YulFunctionCall","src":"4161:21:8"},"nodeType":"YulIf","src":"4158:76:8"},{"expression":{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"4302:11:8"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"4315:7:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4295:6:8"},"nodeType":"YulFunctionCall","src":"4295:28:8"},"nodeType":"YulExpressionStatement","src":"4295:28:8"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nodeType":"YulIdentifier","src":"4408:11:8"},{"kind":"number","nodeType":"YulLiteral","src":"4421:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4404:3:8"},"nodeType":"YulFunctionCall","src":"4404:22:8"},{"kind":"number","nodeType":"YulLiteral","src":"4428:1:8","type":"","value":"0"},{"name":"_toCopy","nodeType":"YulIdentifier","src":"4431:7:8"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"4389:14:8"},"nodeType":"YulFunctionCall","src":"4389:50:8"},"nodeType":"YulExpressionStatement","src":"4389:50:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2835,"isOffset":false,"isSlot":false,"src":"3938:9:8","valueSize":1},{"declaration":2835,"isOffset":false,"isSlot":false,"src":"3983:9:8","valueSize":1},{"declaration":2831,"isOffset":false,"isSlot":false,"src":"3875:4:8","valueSize":1},{"declaration":2833,"isOffset":false,"isSlot":false,"src":"4173:8:8","valueSize":1},{"declaration":2833,"isOffset":false,"isSlot":false,"src":"4212:8:8","valueSize":1},{"declaration":2849,"isOffset":false,"isSlot":false,"src":"4302:11:8","valueSize":1},{"declaration":2849,"isOffset":false,"isSlot":false,"src":"4408:11:8","valueSize":1},{"declaration":2846,"isOffset":false,"isSlot":false,"src":"3839:8:8","valueSize":1},{"declaration":2829,"isOffset":false,"isSlot":false,"src":"3900:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4118:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4164:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4201:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4315:7:8","valueSize":1},{"declaration":2843,"isOffset":false,"isSlot":false,"src":"4431:7:8","valueSize":1}],"id":2855,"nodeType":"InlineAssembly","src":"3816:633:8"},{"expression":{"components":[{"id":2856,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"4466:8:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2857,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2849,"src":"4476:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2858,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4465:23:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":2841,"id":2859,"nodeType":"Return","src":"4458:30:8"}]},"documentation":{"id":2827,"nodeType":"StructuredDocumentation","src":"2364:899:8","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":2861,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeStaticCall","nameLocation":"3277:25:8","nodeType":"FunctionDefinition","parameters":{"id":2836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2829,"mutability":"mutable","name":"_target","nameLocation":"3320:7:8","nodeType":"VariableDeclaration","scope":2861,"src":"3312:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2828,"name":"address","nodeType":"ElementaryTypeName","src":"3312:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2831,"mutability":"mutable","name":"_gas","nameLocation":"3345:4:8","nodeType":"VariableDeclaration","scope":2861,"src":"3337:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2830,"name":"uint256","nodeType":"ElementaryTypeName","src":"3337:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2833,"mutability":"mutable","name":"_maxCopy","nameLocation":"3366:8:8","nodeType":"VariableDeclaration","scope":2861,"src":"3359:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2832,"name":"uint16","nodeType":"ElementaryTypeName","src":"3359:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2835,"mutability":"mutable","name":"_calldata","nameLocation":"3397:9:8","nodeType":"VariableDeclaration","scope":2861,"src":"3384:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2834,"name":"bytes","nodeType":"ElementaryTypeName","src":"3384:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3302:110:8"},"returnParameters":{"id":2841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2861,"src":"3436:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2837,"name":"bool","nodeType":"ElementaryTypeName","src":"3436:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2861,"src":"3442:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2839,"name":"bytes","nodeType":"ElementaryTypeName","src":"3442:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3435:20:8"},"scope":2883,"src":"3268:1227:8","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2881,"nodeType":"Block","src":"5036:367:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2870,"name":"_buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2866,"src":"5054:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5054:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":2872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5069:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"5054:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2869,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5046:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5046:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2875,"nodeType":"ExpressionStatement","src":"5046:25:8"},{"assignments":[2877],"declarations":[{"constant":false,"id":2877,"mutability":"mutable","name":"_mask","nameLocation":"5089:5:8","nodeType":"VariableDeclaration","scope":2881,"src":"5081:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2876,"name":"uint256","nodeType":"ElementaryTypeName","src":"5081:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2879,"initialValue":{"id":2878,"name":"LOW_28_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2791,"src":"5097:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5081:27:8"},{"AST":{"nodeType":"YulBlock","src":"5127:270:8","statements":[{"nodeType":"YulVariableDeclaration","src":"5175:35:8","value":{"arguments":[{"arguments":[{"name":"_buf","nodeType":"YulIdentifier","src":"5198:4:8"},{"kind":"number","nodeType":"YulLiteral","src":"5204:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5194:3:8"},"nodeType":"YulFunctionCall","src":"5194:15:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5188:5:8"},"nodeType":"YulFunctionCall","src":"5188:22:8"},"variables":[{"name":"_word","nodeType":"YulTypedName","src":"5179:5:8","type":""}]},{"nodeType":"YulAssignment","src":"5273:26:8","value":{"arguments":[{"name":"_word","nodeType":"YulIdentifier","src":"5286:5:8"},{"name":"_mask","nodeType":"YulIdentifier","src":"5293:5:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5282:3:8"},"nodeType":"YulFunctionCall","src":"5282:17:8"},"variableNames":[{"name":"_word","nodeType":"YulIdentifier","src":"5273:5:8"}]},{"nodeType":"YulAssignment","src":"5312:32:8","value":{"arguments":[{"name":"_newSelector","nodeType":"YulIdentifier","src":"5324:12:8"},{"name":"_word","nodeType":"YulIdentifier","src":"5338:5:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5321:2:8"},"nodeType":"YulFunctionCall","src":"5321:23:8"},"variableNames":[{"name":"_word","nodeType":"YulIdentifier","src":"5312:5:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"_buf","nodeType":"YulIdentifier","src":"5368:4:8"},{"kind":"number","nodeType":"YulLiteral","src":"5374:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5364:3:8"},"nodeType":"YulFunctionCall","src":"5364:15:8"},{"name":"_word","nodeType":"YulIdentifier","src":"5381:5:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5357:6:8"},"nodeType":"YulFunctionCall","src":"5357:30:8"},"nodeType":"YulExpressionStatement","src":"5357:30:8"}]},"evmVersion":"london","externalReferences":[{"declaration":2866,"isOffset":false,"isSlot":false,"src":"5198:4:8","valueSize":1},{"declaration":2866,"isOffset":false,"isSlot":false,"src":"5368:4:8","valueSize":1},{"declaration":2877,"isOffset":false,"isSlot":false,"src":"5293:5:8","valueSize":1},{"declaration":2864,"isOffset":false,"isSlot":false,"src":"5324:12:8","valueSize":1}],"id":2880,"nodeType":"InlineAssembly","src":"5118:279:8"}]},"documentation":{"id":2862,"nodeType":"StructuredDocumentation","src":"4501:442:8","text":" @notice Swaps function selectors in encoded contract calls\n @dev Allows reuse of encoded calldata for functions with identical\n argument types but different names. It simply swaps out the first 4 bytes\n for the new selector. This function modifies memory in place, and should\n only be used with caution.\n @param _newSelector The new 4-byte selector\n @param _buf The encoded contract args"},"id":2882,"implemented":true,"kind":"function","modifiers":[],"name":"swapSelector","nameLocation":"4957:12:8","nodeType":"FunctionDefinition","parameters":{"id":2867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2864,"mutability":"mutable","name":"_newSelector","nameLocation":"4977:12:8","nodeType":"VariableDeclaration","scope":2882,"src":"4970:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2863,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4970:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":2866,"mutability":"mutable","name":"_buf","nameLocation":"5004:4:8","nodeType":"VariableDeclaration","scope":2882,"src":"4991:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2865,"name":"bytes","nodeType":"ElementaryTypeName","src":"4991:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4969:40:8"},"returnParameters":{"id":2868,"nodeType":"ParameterList","parameters":[],"src":"5036:0:8"},"scope":2883,"src":"4948:455:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2884,"src":"72:5333:8","usedErrors":[]}],"src":"46:5360:8"},"id":8},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[3708],"Ownable":[2996]},"id":2997,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2885,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:9"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":2886,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2997,"sourceUnit":3709,"src":"127:30:9","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2888,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":3708,"src":"683:7:9"},"id":2889,"nodeType":"InheritanceSpecifier","src":"683:7:9"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2887,"nodeType":"StructuredDocumentation","src":"159:494:9","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":2996,"linearizedBaseContracts":[2996,3708],"name":"Ownable","nameLocation":"672:7:9","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":2891,"mutability":"mutable","name":"_owner","nameLocation":"713:6:9","nodeType":"VariableDeclaration","scope":2996,"src":"697:22:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2890,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"id":2897,"name":"OwnershipTransferred","nameLocation":"732:20:9","nodeType":"EventDefinition","parameters":{"id":2896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2893,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:9","nodeType":"VariableDeclaration","scope":2897,"src":"753:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2892,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2895,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:9","nodeType":"VariableDeclaration","scope":2897,"src":"784:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2894,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:9"},"src":"726:84:9"},{"body":{"id":2906,"nodeType":"Block","src":"926:49:9","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2902,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"955:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2901,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"936:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2905,"nodeType":"ExpressionStatement","src":"936:32:9"}]},"documentation":{"id":2898,"nodeType":"StructuredDocumentation","src":"816:91:9","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":2907,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2899,"nodeType":"ParameterList","parameters":[],"src":"923:2:9"},"returnParameters":{"id":2900,"nodeType":"ParameterList","parameters":[],"src":"926:0:9"},"scope":2996,"src":"912:63:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2914,"nodeType":"Block","src":"1084:41:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2910,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2938,"src":"1094:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":2911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2912,"nodeType":"ExpressionStatement","src":"1094:13:9"},{"id":2913,"nodeType":"PlaceholderStatement","src":"1117:1:9"}]},"documentation":{"id":2908,"nodeType":"StructuredDocumentation","src":"981:77:9","text":" @dev Throws if called by any account other than the owner."},"id":2915,"name":"onlyOwner","nameLocation":"1072:9:9","nodeType":"ModifierDefinition","parameters":{"id":2909,"nodeType":"ParameterList","parameters":[],"src":"1081:2:9"},"src":"1063:62:9","virtual":false,"visibility":"internal"},{"body":{"id":2923,"nodeType":"Block","src":"1256:30:9","statements":[{"expression":{"id":2921,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"1273:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2920,"id":2922,"nodeType":"Return","src":"1266:13:9"}]},"documentation":{"id":2916,"nodeType":"StructuredDocumentation","src":"1131:65:9","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":2924,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:9","nodeType":"FunctionDefinition","parameters":{"id":2917,"nodeType":"ParameterList","parameters":[],"src":"1215:2:9"},"returnParameters":{"id":2920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2924,"src":"1247:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2918,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:9"},"scope":2996,"src":"1201:85:9","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2937,"nodeType":"Block","src":"1404:85:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2929,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"1422:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2931,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1433:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":2934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":2928,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2936,"nodeType":"ExpressionStatement","src":"1414:68:9"}]},"documentation":{"id":2925,"nodeType":"StructuredDocumentation","src":"1292:62:9","text":" @dev Throws if the sender is not the owner."},"id":2938,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:9","nodeType":"FunctionDefinition","parameters":{"id":2926,"nodeType":"ParameterList","parameters":[],"src":"1379:2:9"},"returnParameters":{"id":2927,"nodeType":"ParameterList","parameters":[],"src":"1404:0:9"},"scope":2996,"src":"1359:130:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2951,"nodeType":"Block","src":"1885:47:9","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":2947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2945,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:9","typeDescriptions":{}}},"id":2948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2944,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"1895:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2950,"nodeType":"ExpressionStatement","src":"1895:30:9"}]},"documentation":{"id":2939,"nodeType":"StructuredDocumentation","src":"1495:331:9","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":2952,"implemented":true,"kind":"function","modifiers":[{"id":2942,"kind":"modifierInvocation","modifierName":{"id":2941,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"1875:9:9"},"nodeType":"ModifierInvocation","src":"1875:9:9"}],"name":"renounceOwnership","nameLocation":"1840:17:9","nodeType":"FunctionDefinition","parameters":{"id":2940,"nodeType":"ParameterList","parameters":[],"src":"1857:2:9"},"returnParameters":{"id":2943,"nodeType":"ParameterList","parameters":[],"src":"1885:0:9"},"scope":2996,"src":"1831:101:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2974,"nodeType":"Block","src":"2151:128:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2961,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2169:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2962,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:9","typeDescriptions":{}}},"id":2965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":2967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":2960,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2969,"nodeType":"ExpressionStatement","src":"2161:73:9"},{"expression":{"arguments":[{"id":2971,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2263:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2970,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"2244:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2973,"nodeType":"ExpressionStatement","src":"2244:28:9"}]},"documentation":{"id":2953,"nodeType":"StructuredDocumentation","src":"1938:138:9","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":2975,"implemented":true,"kind":"function","modifiers":[{"id":2958,"kind":"modifierInvocation","modifierName":{"id":2957,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2915,"src":"2141:9:9"},"nodeType":"ModifierInvocation","src":"2141:9:9"}],"name":"transferOwnership","nameLocation":"2090:17:9","nodeType":"FunctionDefinition","parameters":{"id":2956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2955,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:9","nodeType":"VariableDeclaration","scope":2975,"src":"2108:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2954,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:9"},"returnParameters":{"id":2959,"nodeType":"ParameterList","parameters":[],"src":"2151:0:9"},"scope":2996,"src":"2081:198:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2994,"nodeType":"Block","src":"2496:124:9","statements":[{"assignments":[2982],"declarations":[{"constant":false,"id":2982,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:9","nodeType":"VariableDeclaration","scope":2994,"src":"2506:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2981,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2984,"initialValue":{"id":2983,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"2525:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:9"},{"expression":{"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2985,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"2541:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2986,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"2550:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2988,"nodeType":"ExpressionStatement","src":"2541:17:9"},{"eventCall":{"arguments":[{"id":2990,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2982,"src":"2594:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2991,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"2604:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2989,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2897,"src":"2573:20:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2993,"nodeType":"EmitStatement","src":"2568:45:9"}]},"documentation":{"id":2976,"nodeType":"StructuredDocumentation","src":"2285:143:9","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":2995,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:9","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2978,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:9","nodeType":"VariableDeclaration","scope":2995,"src":"2461:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2977,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:9"},"returnParameters":{"id":2980,"nodeType":"ParameterList","parameters":[],"src":"2496:0:9"},"scope":2996,"src":"2433:187:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2997,"src":"654:1968:9","usedErrors":[]}],"src":"102:2521:9"},"id":9},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"IERC20":[3661],"IERC20Metadata":[3686]},"id":3584,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2998,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:10"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":2999,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3662,"src":"130:22:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":3000,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3687,"src":"153:41:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":3001,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3584,"sourceUnit":3709,"src":"195:33:10","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3003,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":3708,"src":"1419:7:10"},"id":3004,"nodeType":"InheritanceSpecifier","src":"1419:7:10"},{"baseName":{"id":3005,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":3661,"src":"1428:6:10"},"id":3006,"nodeType":"InheritanceSpecifier","src":"1428:6:10"},{"baseName":{"id":3007,"name":"IERC20Metadata","nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"1436:14:10"},"id":3008,"nodeType":"InheritanceSpecifier","src":"1436:14:10"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":3002,"nodeType":"StructuredDocumentation","src":"230:1170:10","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":3583,"linearizedBaseContracts":[3583,3686,3661,3708],"name":"ERC20","nameLocation":"1410:5:10","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3012,"mutability":"mutable","name":"_balances","nameLocation":"1493:9:10","nodeType":"VariableDeclaration","scope":3583,"src":"1457:45:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3011,"keyType":{"id":3009,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1457:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3010,"name":"uint256","nodeType":"ElementaryTypeName","src":"1476:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":3018,"mutability":"mutable","name":"_allowances","nameLocation":"1565:11:10","nodeType":"VariableDeclaration","scope":3583,"src":"1509:67:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":3017,"keyType":{"id":3013,"name":"address","nodeType":"ElementaryTypeName","src":"1517:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1509:47:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":3016,"keyType":{"id":3014,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1528:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":3020,"mutability":"mutable","name":"_totalSupply","nameLocation":"1599:12:10","nodeType":"VariableDeclaration","scope":3583,"src":"1583:28:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1583:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3022,"mutability":"mutable","name":"_name","nameLocation":"1633:5:10","nodeType":"VariableDeclaration","scope":3583,"src":"1618:20:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3021,"name":"string","nodeType":"ElementaryTypeName","src":"1618:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":3024,"mutability":"mutable","name":"_symbol","nameLocation":"1659:7:10","nodeType":"VariableDeclaration","scope":3583,"src":"1644:22:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3023,"name":"string","nodeType":"ElementaryTypeName","src":"1644:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":3040,"nodeType":"Block","src":"2032:57:10","statements":[{"expression":{"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3032,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"2042:5:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3033,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3027,"src":"2050:5:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2042:13:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3035,"nodeType":"ExpressionStatement","src":"2042:13:10"},{"expression":{"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3036,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3024,"src":"2065:7:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3037,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2075:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2065:17:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3039,"nodeType":"ExpressionStatement","src":"2065:17:10"}]},"documentation":{"id":3025,"nodeType":"StructuredDocumentation","src":"1673:298:10","text":" @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."},"id":3041,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3027,"mutability":"mutable","name":"name_","nameLocation":"2002:5:10","nodeType":"VariableDeclaration","scope":3041,"src":"1988:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3026,"name":"string","nodeType":"ElementaryTypeName","src":"1988:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3029,"mutability":"mutable","name":"symbol_","nameLocation":"2023:7:10","nodeType":"VariableDeclaration","scope":3041,"src":"2009:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3028,"name":"string","nodeType":"ElementaryTypeName","src":"2009:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1987:44:10"},"returnParameters":{"id":3031,"nodeType":"ParameterList","parameters":[],"src":"2032:0:10"},"scope":3583,"src":"1976:113:10","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3673],"body":{"id":3050,"nodeType":"Block","src":"2223:29:10","statements":[{"expression":{"id":3048,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"2240:5:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":3047,"id":3049,"nodeType":"Return","src":"2233:12:10"}]},"documentation":{"id":3042,"nodeType":"StructuredDocumentation","src":"2095:54:10","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":3051,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2163:4:10","nodeType":"FunctionDefinition","overrides":{"id":3044,"nodeType":"OverrideSpecifier","overrides":[],"src":"2190:8:10"},"parameters":{"id":3043,"nodeType":"ParameterList","parameters":[],"src":"2167:2:10"},"returnParameters":{"id":3047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3051,"src":"2208:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3045,"name":"string","nodeType":"ElementaryTypeName","src":"2208:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2207:15:10"},"scope":3583,"src":"2154:98:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3679],"body":{"id":3060,"nodeType":"Block","src":"2436:31:10","statements":[{"expression":{"id":3058,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3024,"src":"2453:7:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":3057,"id":3059,"nodeType":"Return","src":"2446:14:10"}]},"documentation":{"id":3052,"nodeType":"StructuredDocumentation","src":"2258:102:10","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":3061,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2374:6:10","nodeType":"FunctionDefinition","overrides":{"id":3054,"nodeType":"OverrideSpecifier","overrides":[],"src":"2403:8:10"},"parameters":{"id":3053,"nodeType":"ParameterList","parameters":[],"src":"2380:2:10"},"returnParameters":{"id":3057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3061,"src":"2421:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3055,"name":"string","nodeType":"ElementaryTypeName","src":"2421:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2420:15:10"},"scope":3583,"src":"2365:102:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3685],"body":{"id":3070,"nodeType":"Block","src":"3156:26:10","statements":[{"expression":{"hexValue":"3138","id":3068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3173:2:10","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":3067,"id":3069,"nodeType":"Return","src":"3166:9:10"}]},"documentation":{"id":3062,"nodeType":"StructuredDocumentation","src":"2473:613:10","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":3071,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3100:8:10","nodeType":"FunctionDefinition","overrides":{"id":3064,"nodeType":"OverrideSpecifier","overrides":[],"src":"3131:8:10"},"parameters":{"id":3063,"nodeType":"ParameterList","parameters":[],"src":"3108:2:10"},"returnParameters":{"id":3067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3071,"src":"3149:5:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3065,"name":"uint8","nodeType":"ElementaryTypeName","src":"3149:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3148:7:10"},"scope":3583,"src":"3091:91:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3610],"body":{"id":3080,"nodeType":"Block","src":"3312:36:10","statements":[{"expression":{"id":3078,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"3329:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3077,"id":3079,"nodeType":"Return","src":"3322:19:10"}]},"documentation":{"id":3072,"nodeType":"StructuredDocumentation","src":"3188:49:10","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":3081,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3251:11:10","nodeType":"FunctionDefinition","overrides":{"id":3074,"nodeType":"OverrideSpecifier","overrides":[],"src":"3285:8:10"},"parameters":{"id":3073,"nodeType":"ParameterList","parameters":[],"src":"3262:2:10"},"returnParameters":{"id":3077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3081,"src":"3303:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3303:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3302:9:10"},"scope":3583,"src":"3242:106:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3618],"body":{"id":3094,"nodeType":"Block","src":"3489:42:10","statements":[{"expression":{"baseExpression":{"id":3090,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"3506:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3092,"indexExpression":{"id":3091,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3084,"src":"3516:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3506:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3089,"id":3093,"nodeType":"Return","src":"3499:25:10"}]},"documentation":{"id":3082,"nodeType":"StructuredDocumentation","src":"3354:47:10","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":3095,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3415:9:10","nodeType":"FunctionDefinition","overrides":{"id":3086,"nodeType":"OverrideSpecifier","overrides":[],"src":"3462:8:10"},"parameters":{"id":3085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3084,"mutability":"mutable","name":"account","nameLocation":"3433:7:10","nodeType":"VariableDeclaration","scope":3095,"src":"3425:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3083,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3424:17:10"},"returnParameters":{"id":3089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3095,"src":"3480:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3087,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3479:9:10"},"scope":3583,"src":"3406:125:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3628],"body":{"id":3119,"nodeType":"Block","src":"3812:104:10","statements":[{"assignments":[3107],"declarations":[{"constant":false,"id":3107,"mutability":"mutable","name":"owner","nameLocation":"3830:5:10","nodeType":"VariableDeclaration","scope":3119,"src":"3822:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3106,"name":"address","nodeType":"ElementaryTypeName","src":"3822:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3110,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3108,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"3838:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3838:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3822:28:10"},{"expression":{"arguments":[{"id":3112,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"3870:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3113,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"3877:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3114,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3100,"src":"3881:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3111,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"3860:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3116,"nodeType":"ExpressionStatement","src":"3860:28:10"},{"expression":{"hexValue":"74727565","id":3117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3905:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3105,"id":3118,"nodeType":"Return","src":"3898:11:10"}]},"documentation":{"id":3096,"nodeType":"StructuredDocumentation","src":"3537:185:10","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":3120,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3736:8:10","nodeType":"FunctionDefinition","overrides":{"id":3102,"nodeType":"OverrideSpecifier","overrides":[],"src":"3788:8:10"},"parameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3098,"mutability":"mutable","name":"to","nameLocation":"3753:2:10","nodeType":"VariableDeclaration","scope":3120,"src":"3745:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3097,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3100,"mutability":"mutable","name":"amount","nameLocation":"3765:6:10","nodeType":"VariableDeclaration","scope":3120,"src":"3757:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3099,"name":"uint256","nodeType":"ElementaryTypeName","src":"3757:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3744:28:10"},"returnParameters":{"id":3105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3120,"src":"3806:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3103,"name":"bool","nodeType":"ElementaryTypeName","src":"3806:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3805:6:10"},"scope":3583,"src":"3727:189:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3638],"body":{"id":3137,"nodeType":"Block","src":"4072:51:10","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":3131,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"4089:11:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3133,"indexExpression":{"id":3132,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3123,"src":"4101:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:18:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3135,"indexExpression":{"id":3134,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3125,"src":"4108:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3130,"id":3136,"nodeType":"Return","src":"4082:34:10"}]},"documentation":{"id":3121,"nodeType":"StructuredDocumentation","src":"3922:47:10","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":3138,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3983:9:10","nodeType":"FunctionDefinition","overrides":{"id":3127,"nodeType":"OverrideSpecifier","overrides":[],"src":"4045:8:10"},"parameters":{"id":3126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3123,"mutability":"mutable","name":"owner","nameLocation":"4001:5:10","nodeType":"VariableDeclaration","scope":3138,"src":"3993:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3122,"name":"address","nodeType":"ElementaryTypeName","src":"3993:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3125,"mutability":"mutable","name":"spender","nameLocation":"4016:7:10","nodeType":"VariableDeclaration","scope":3138,"src":"4008:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3124,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3992:32:10"},"returnParameters":{"id":3130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3138,"src":"4063:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3128,"name":"uint256","nodeType":"ElementaryTypeName","src":"4063:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4062:9:10"},"scope":3583,"src":"3974:149:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3648],"body":{"id":3162,"nodeType":"Block","src":"4520:108:10","statements":[{"assignments":[3150],"declarations":[{"constant":false,"id":3150,"mutability":"mutable","name":"owner","nameLocation":"4538:5:10","nodeType":"VariableDeclaration","scope":3162,"src":"4530:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3149,"name":"address","nodeType":"ElementaryTypeName","src":"4530:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3153,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3151,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"4546:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4546:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4530:28:10"},{"expression":{"arguments":[{"id":3155,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"4577:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3156,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3141,"src":"4584:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3157,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"4593:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3154,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"4568:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4568:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3159,"nodeType":"ExpressionStatement","src":"4568:32:10"},{"expression":{"hexValue":"74727565","id":3160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4617:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3148,"id":3161,"nodeType":"Return","src":"4610:11:10"}]},"documentation":{"id":3139,"nodeType":"StructuredDocumentation","src":"4129:297:10","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":3163,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4440:7:10","nodeType":"FunctionDefinition","overrides":{"id":3145,"nodeType":"OverrideSpecifier","overrides":[],"src":"4496:8:10"},"parameters":{"id":3144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3141,"mutability":"mutable","name":"spender","nameLocation":"4456:7:10","nodeType":"VariableDeclaration","scope":3163,"src":"4448:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3140,"name":"address","nodeType":"ElementaryTypeName","src":"4448:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3143,"mutability":"mutable","name":"amount","nameLocation":"4473:6:10","nodeType":"VariableDeclaration","scope":3163,"src":"4465:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3142,"name":"uint256","nodeType":"ElementaryTypeName","src":"4465:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4447:33:10"},"returnParameters":{"id":3148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3163,"src":"4514:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3146,"name":"bool","nodeType":"ElementaryTypeName","src":"4514:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4513:6:10"},"scope":3583,"src":"4431:197:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3660],"body":{"id":3195,"nodeType":"Block","src":"5323:153:10","statements":[{"assignments":[3177],"declarations":[{"constant":false,"id":3177,"mutability":"mutable","name":"spender","nameLocation":"5341:7:10","nodeType":"VariableDeclaration","scope":3195,"src":"5333:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3176,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3180,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3178,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"5351:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5351:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5333:30:10"},{"expression":{"arguments":[{"id":3182,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"5389:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3183,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"5395:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3184,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"5404:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3181,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"5373:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5373:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3186,"nodeType":"ExpressionStatement","src":"5373:38:10"},{"expression":{"arguments":[{"id":3188,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"5431:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3189,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3168,"src":"5437:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3190,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3170,"src":"5441:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3187,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"5421:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5421:27:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3192,"nodeType":"ExpressionStatement","src":"5421:27:10"},{"expression":{"hexValue":"74727565","id":3193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5465:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3175,"id":3194,"nodeType":"Return","src":"5458:11:10"}]},"documentation":{"id":3164,"nodeType":"StructuredDocumentation","src":"4634:551:10","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":3196,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5199:12:10","nodeType":"FunctionDefinition","overrides":{"id":3172,"nodeType":"OverrideSpecifier","overrides":[],"src":"5299:8:10"},"parameters":{"id":3171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3166,"mutability":"mutable","name":"from","nameLocation":"5229:4:10","nodeType":"VariableDeclaration","scope":3196,"src":"5221:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3165,"name":"address","nodeType":"ElementaryTypeName","src":"5221:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3168,"mutability":"mutable","name":"to","nameLocation":"5251:2:10","nodeType":"VariableDeclaration","scope":3196,"src":"5243:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3167,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3170,"mutability":"mutable","name":"amount","nameLocation":"5271:6:10","nodeType":"VariableDeclaration","scope":3196,"src":"5263:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3169,"name":"uint256","nodeType":"ElementaryTypeName","src":"5263:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5211:72:10"},"returnParameters":{"id":3175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3196,"src":"5317:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3173,"name":"bool","nodeType":"ElementaryTypeName","src":"5317:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5316:6:10"},"scope":3583,"src":"5190:286:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3224,"nodeType":"Block","src":"5965:140:10","statements":[{"assignments":[3207],"declarations":[{"constant":false,"id":3207,"mutability":"mutable","name":"owner","nameLocation":"5983:5:10","nodeType":"VariableDeclaration","scope":3224,"src":"5975:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3206,"name":"address","nodeType":"ElementaryTypeName","src":"5975:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3210,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3208,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"5991:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5991:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5975:28:10"},{"expression":{"arguments":[{"id":3212,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"6022:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3213,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"6029:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3215,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"6048:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3216,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"6055:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3214,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"6038:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6038:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3218,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3201,"src":"6066:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6038:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3211,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"6013:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6013:64:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3221,"nodeType":"ExpressionStatement","src":"6013:64:10"},{"expression":{"hexValue":"74727565","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6094:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3205,"id":3223,"nodeType":"Return","src":"6087:11:10"}]},"documentation":{"id":3197,"nodeType":"StructuredDocumentation","src":"5482:384:10","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":3225,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5880:17:10","nodeType":"FunctionDefinition","parameters":{"id":3202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3199,"mutability":"mutable","name":"spender","nameLocation":"5906:7:10","nodeType":"VariableDeclaration","scope":3225,"src":"5898:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3198,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3201,"mutability":"mutable","name":"addedValue","nameLocation":"5923:10:10","nodeType":"VariableDeclaration","scope":3225,"src":"5915:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3200,"name":"uint256","nodeType":"ElementaryTypeName","src":"5915:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5897:37:10"},"returnParameters":{"id":3205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3225,"src":"5959:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3203,"name":"bool","nodeType":"ElementaryTypeName","src":"5959:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5958:6:10"},"scope":3583,"src":"5871:234:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3265,"nodeType":"Block","src":"6691:328:10","statements":[{"assignments":[3236],"declarations":[{"constant":false,"id":3236,"mutability":"mutable","name":"owner","nameLocation":"6709:5:10","nodeType":"VariableDeclaration","scope":3265,"src":"6701:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3235,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3239,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3237,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"6717:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6717:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6701:28:10"},{"assignments":[3241],"declarations":[{"constant":false,"id":3241,"mutability":"mutable","name":"currentAllowance","nameLocation":"6747:16:10","nodeType":"VariableDeclaration","scope":3265,"src":"6739:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3240,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3246,"initialValue":{"arguments":[{"id":3243,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3236,"src":"6776:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3244,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3228,"src":"6783:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3242,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"6766:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6766:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6739:52:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3248,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"6809:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3249,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3230,"src":"6829:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6809:35:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":3251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6846:39:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":3247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6801:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6801:85:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3253,"nodeType":"ExpressionStatement","src":"6801:85:10"},{"id":3262,"nodeType":"UncheckedBlock","src":"6896:95:10","statements":[{"expression":{"arguments":[{"id":3255,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3236,"src":"6929:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3256,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3228,"src":"6936:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3257,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"6945:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3258,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3230,"src":"6964:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6945:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3254,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"6920:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6920:60:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3261,"nodeType":"ExpressionStatement","src":"6920:60:10"}]},{"expression":{"hexValue":"74727565","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7008:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3234,"id":3264,"nodeType":"Return","src":"7001:11:10"}]},"documentation":{"id":3226,"nodeType":"StructuredDocumentation","src":"6111:476:10","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":3266,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6601:17:10","nodeType":"FunctionDefinition","parameters":{"id":3231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3228,"mutability":"mutable","name":"spender","nameLocation":"6627:7:10","nodeType":"VariableDeclaration","scope":3266,"src":"6619:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3227,"name":"address","nodeType":"ElementaryTypeName","src":"6619:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3230,"mutability":"mutable","name":"subtractedValue","nameLocation":"6644:15:10","nodeType":"VariableDeclaration","scope":3266,"src":"6636:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3229,"name":"uint256","nodeType":"ElementaryTypeName","src":"6636:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6618:42:10"},"returnParameters":{"id":3234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3266,"src":"6685:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3232,"name":"bool","nodeType":"ElementaryTypeName","src":"6685:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6684:6:10"},"scope":3583,"src":"6592:427:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3342,"nodeType":"Block","src":"7581:710:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3277,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7599:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7607:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3278,"name":"address","nodeType":"ElementaryTypeName","src":"7607:7:10","typeDescriptions":{}}},"id":3281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7607:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7599:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":3283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7619:39:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":3276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7591:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7591:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3285,"nodeType":"ExpressionStatement","src":"7591:68:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3287,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"7677:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7691:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7683:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3288,"name":"address","nodeType":"ElementaryTypeName","src":"7683:7:10","typeDescriptions":{}}},"id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7683:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7677:16:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7695:37:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":3286,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7669:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7669:64:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3295,"nodeType":"ExpressionStatement","src":"7669:64:10"},{"expression":{"arguments":[{"id":3297,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7765:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3298,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"7771:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3299,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7775:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3296,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"7744:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7744:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3301,"nodeType":"ExpressionStatement","src":"7744:38:10"},{"assignments":[3303],"declarations":[{"constant":false,"id":3303,"mutability":"mutable","name":"fromBalance","nameLocation":"7801:11:10","nodeType":"VariableDeclaration","scope":3342,"src":"7793:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3302,"name":"uint256","nodeType":"ElementaryTypeName","src":"7793:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3307,"initialValue":{"baseExpression":{"id":3304,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"7815:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3306,"indexExpression":{"id":3305,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7825:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7815:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7793:37:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3309,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"7848:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3310,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7863:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7848:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":3312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7871:40:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":3308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7840:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7840:72:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3314,"nodeType":"ExpressionStatement","src":"7840:72:10"},{"id":3329,"nodeType":"UncheckedBlock","src":"7922:273:10","statements":[{"expression":{"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3315,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"7946:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3317,"indexExpression":{"id":3316,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7956:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7946:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3318,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"7964:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3319,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"7978:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7964:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7946:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3322,"nodeType":"ExpressionStatement","src":"7946:38:10"},{"expression":{"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3323,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"8161:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3325,"indexExpression":{"id":3324,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8171:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8161:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3326,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8178:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8161:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3328,"nodeType":"ExpressionStatement","src":"8161:23:10"}]},{"eventCall":{"arguments":[{"id":3331,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"8219:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3332,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8225:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3333,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8229:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3330,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"8210:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8210:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3335,"nodeType":"EmitStatement","src":"8205:31:10"},{"expression":{"arguments":[{"id":3337,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"8267:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3338,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"8273:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3339,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"8277:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3336,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"8247:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8247:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3341,"nodeType":"ExpressionStatement","src":"8247:37:10"}]},"documentation":{"id":3267,"nodeType":"StructuredDocumentation","src":"7025:443:10","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":3343,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7482:9:10","nodeType":"FunctionDefinition","parameters":{"id":3274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3269,"mutability":"mutable","name":"from","nameLocation":"7509:4:10","nodeType":"VariableDeclaration","scope":3343,"src":"7501:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3268,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3271,"mutability":"mutable","name":"to","nameLocation":"7531:2:10","nodeType":"VariableDeclaration","scope":3343,"src":"7523:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3270,"name":"address","nodeType":"ElementaryTypeName","src":"7523:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3273,"mutability":"mutable","name":"amount","nameLocation":"7551:6:10","nodeType":"VariableDeclaration","scope":3343,"src":"7543:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3272,"name":"uint256","nodeType":"ElementaryTypeName","src":"7543:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7491:72:10"},"returnParameters":{"id":3275,"nodeType":"ParameterList","parameters":[],"src":"7581:0:10"},"scope":3583,"src":"7473:818:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3399,"nodeType":"Block","src":"8632:470:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3352,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8650:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8669:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8661:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3353,"name":"address","nodeType":"ElementaryTypeName","src":"8661:7:10","typeDescriptions":{}}},"id":3356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8661:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8650:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":3358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8673:33:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":3351,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8642:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8642:65:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3360,"nodeType":"ExpressionStatement","src":"8642:65:10"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8747:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8739:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3362,"name":"address","nodeType":"ElementaryTypeName","src":"8739:7:10","typeDescriptions":{}}},"id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8739:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3366,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8751:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3367,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8760:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3361,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"8718:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8718:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3369,"nodeType":"ExpressionStatement","src":"8718:49:10"},{"expression":{"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3370,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"8778:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3371,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8794:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8778:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3373,"nodeType":"ExpressionStatement","src":"8778:22:10"},{"id":3380,"nodeType":"UncheckedBlock","src":"8810:175:10","statements":[{"expression":{"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3374,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"8946:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3376,"indexExpression":{"id":3375,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8956:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8946:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3377,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8968:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8946:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3379,"nodeType":"ExpressionStatement","src":"8946:28:10"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9016:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9008:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3382,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:10","typeDescriptions":{}}},"id":3385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9008:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3386,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"9020:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3387,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"9029:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3381,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"8999:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8999:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3389,"nodeType":"EmitStatement","src":"8994:42:10"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9075:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9067:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3391,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:10","typeDescriptions":{}}},"id":3394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9067:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3395,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"9079:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"9088:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3390,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"9047:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9047:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3398,"nodeType":"ExpressionStatement","src":"9047:48:10"}]},"documentation":{"id":3344,"nodeType":"StructuredDocumentation","src":"8297:265:10","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":3400,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8576:5:10","nodeType":"FunctionDefinition","parameters":{"id":3349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3346,"mutability":"mutable","name":"account","nameLocation":"8590:7:10","nodeType":"VariableDeclaration","scope":3400,"src":"8582:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3345,"name":"address","nodeType":"ElementaryTypeName","src":"8582:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3348,"mutability":"mutable","name":"amount","nameLocation":"8607:6:10","nodeType":"VariableDeclaration","scope":3400,"src":"8599:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3347,"name":"uint256","nodeType":"ElementaryTypeName","src":"8599:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8581:33:10"},"returnParameters":{"id":3350,"nodeType":"ParameterList","parameters":[],"src":"8632:0:10"},"scope":3583,"src":"8567:535:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3471,"nodeType":"Block","src":"9487:594:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3409,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9505:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9524:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3410,"name":"address","nodeType":"ElementaryTypeName","src":"9516:7:10","typeDescriptions":{}}},"id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9516:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9505:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":3415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9528:35:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":3408,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9497:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9497:67:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3417,"nodeType":"ExpressionStatement","src":"9497:67:10"},{"expression":{"arguments":[{"id":3419,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9596:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9613:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9605:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3420,"name":"address","nodeType":"ElementaryTypeName","src":"9605:7:10","typeDescriptions":{}}},"id":3423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9605:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3424,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9617:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3418,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3571,"src":"9575:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9575:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3426,"nodeType":"ExpressionStatement","src":"9575:49:10"},{"assignments":[3428],"declarations":[{"constant":false,"id":3428,"mutability":"mutable","name":"accountBalance","nameLocation":"9643:14:10","nodeType":"VariableDeclaration","scope":3471,"src":"9635:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3427,"name":"uint256","nodeType":"ElementaryTypeName","src":"9635:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3432,"initialValue":{"baseExpression":{"id":3429,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"9660:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3431,"indexExpression":{"id":3430,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9670:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9660:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9635:43:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3434,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"9696:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3435,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9714:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9696:24:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":3437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9722:36:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":3433,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9688:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9688:71:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3439,"nodeType":"ExpressionStatement","src":"9688:71:10"},{"id":3452,"nodeType":"UncheckedBlock","src":"9769:194:10","statements":[{"expression":{"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3440,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"9793:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3442,"indexExpression":{"id":3441,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9803:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9793:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3443,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"9814:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3444,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9831:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9814:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9793:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3447,"nodeType":"ExpressionStatement","src":"9793:44:10"},{"expression":{"id":3450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3448,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"9930:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":3449,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"9946:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9930:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3451,"nodeType":"ExpressionStatement","src":"9930:22:10"}]},{"eventCall":{"arguments":[{"id":3454,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"9987:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10004:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9996:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3455,"name":"address","nodeType":"ElementaryTypeName","src":"9996:7:10","typeDescriptions":{}}},"id":3458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9996:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3459,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"10008:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3453,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"9978:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9978:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3461,"nodeType":"EmitStatement","src":"9973:42:10"},{"expression":{"arguments":[{"id":3463,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"10046:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10063:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10055:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3464,"name":"address","nodeType":"ElementaryTypeName","src":"10055:7:10","typeDescriptions":{}}},"id":3467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10055:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3468,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"10067:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3462,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"10026:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10026:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3470,"nodeType":"ExpressionStatement","src":"10026:48:10"}]},"documentation":{"id":3401,"nodeType":"StructuredDocumentation","src":"9108:309:10","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":3472,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9431:5:10","nodeType":"FunctionDefinition","parameters":{"id":3406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3403,"mutability":"mutable","name":"account","nameLocation":"9445:7:10","nodeType":"VariableDeclaration","scope":3472,"src":"9437:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3402,"name":"address","nodeType":"ElementaryTypeName","src":"9437:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3405,"mutability":"mutable","name":"amount","nameLocation":"9462:6:10","nodeType":"VariableDeclaration","scope":3472,"src":"9454:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3404,"name":"uint256","nodeType":"ElementaryTypeName","src":"9454:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9436:33:10"},"returnParameters":{"id":3407,"nodeType":"ParameterList","parameters":[],"src":"9487:0:10"},"scope":3583,"src":"9422:659:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3516,"nodeType":"Block","src":"10617:257:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3483,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10635:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10652:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10644:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3484,"name":"address","nodeType":"ElementaryTypeName","src":"10644:7:10","typeDescriptions":{}}},"id":3487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10644:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10635:19:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":3489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10656:38:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":3482,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10627:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10627:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3491,"nodeType":"ExpressionStatement","src":"10627:68:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3493,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10713:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10732:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10724:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3494,"name":"address","nodeType":"ElementaryTypeName","src":"10724:7:10","typeDescriptions":{}}},"id":3497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10724:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10713:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10736:36:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":3492,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10705:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10705:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3501,"nodeType":"ExpressionStatement","src":"10705:68:10"},{"expression":{"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":3502,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"10784:11:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":3505,"indexExpression":{"id":3503,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10796:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10784:18:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3506,"indexExpression":{"id":3504,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10803:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10784:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3507,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"10814:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10784:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3509,"nodeType":"ExpressionStatement","src":"10784:36:10"},{"eventCall":{"arguments":[{"id":3511,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"10844:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3512,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"10851:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3513,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"10860:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3510,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"10835:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10835:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3515,"nodeType":"EmitStatement","src":"10830:37:10"}]},"documentation":{"id":3473,"nodeType":"StructuredDocumentation","src":"10087:412:10","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":3517,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10513:8:10","nodeType":"FunctionDefinition","parameters":{"id":3480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3475,"mutability":"mutable","name":"owner","nameLocation":"10539:5:10","nodeType":"VariableDeclaration","scope":3517,"src":"10531:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3474,"name":"address","nodeType":"ElementaryTypeName","src":"10531:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3477,"mutability":"mutable","name":"spender","nameLocation":"10562:7:10","nodeType":"VariableDeclaration","scope":3517,"src":"10554:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3476,"name":"address","nodeType":"ElementaryTypeName","src":"10554:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3479,"mutability":"mutable","name":"amount","nameLocation":"10587:6:10","nodeType":"VariableDeclaration","scope":3517,"src":"10579:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3478,"name":"uint256","nodeType":"ElementaryTypeName","src":"10579:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10521:78:10"},"returnParameters":{"id":3481,"nodeType":"ParameterList","parameters":[],"src":"10617:0:10"},"scope":3583,"src":"10504:370:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3559,"nodeType":"Block","src":"11275:321:10","statements":[{"assignments":[3528],"declarations":[{"constant":false,"id":3528,"mutability":"mutable","name":"currentAllowance","nameLocation":"11293:16:10","nodeType":"VariableDeclaration","scope":3559,"src":"11285:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3527,"name":"uint256","nodeType":"ElementaryTypeName","src":"11285:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3533,"initialValue":{"arguments":[{"id":3530,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3520,"src":"11322:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3531,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"11329:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3529,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"11312:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":3532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11312:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11285:52:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3534,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11351:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":3537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11376:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3536,"name":"uint256","nodeType":"ElementaryTypeName","src":"11376:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":3535,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11371:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11371:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":3539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"11371:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11351:37:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3558,"nodeType":"IfStatement","src":"11347:243:10","trueBody":{"id":3557,"nodeType":"Block","src":"11390:200:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3542,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11412:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3543,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"11432:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11412:26:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":3545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11440:31:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":3541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11404:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11404:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3547,"nodeType":"ExpressionStatement","src":"11404:68:10"},{"id":3556,"nodeType":"UncheckedBlock","src":"11486:94:10","statements":[{"expression":{"arguments":[{"id":3549,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3520,"src":"11523:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3550,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"11530:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3551,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"11539:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3552,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"11558:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11539:25:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3548,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"11514:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11514:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3555,"nodeType":"ExpressionStatement","src":"11514:51:10"}]}]}}]},"documentation":{"id":3518,"nodeType":"StructuredDocumentation","src":"10880:270:10","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":3560,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11164:15:10","nodeType":"FunctionDefinition","parameters":{"id":3525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3520,"mutability":"mutable","name":"owner","nameLocation":"11197:5:10","nodeType":"VariableDeclaration","scope":3560,"src":"11189:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3519,"name":"address","nodeType":"ElementaryTypeName","src":"11189:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3522,"mutability":"mutable","name":"spender","nameLocation":"11220:7:10","nodeType":"VariableDeclaration","scope":3560,"src":"11212:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3521,"name":"address","nodeType":"ElementaryTypeName","src":"11212:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3524,"mutability":"mutable","name":"amount","nameLocation":"11245:6:10","nodeType":"VariableDeclaration","scope":3560,"src":"11237:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3523,"name":"uint256","nodeType":"ElementaryTypeName","src":"11237:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11179:78:10"},"returnParameters":{"id":3526,"nodeType":"ParameterList","parameters":[],"src":"11275:0:10"},"scope":3583,"src":"11155:441:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3570,"nodeType":"Block","src":"12299:2:10","statements":[]},"documentation":{"id":3561,"nodeType":"StructuredDocumentation","src":"11602:573:10","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":3571,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12189:20:10","nodeType":"FunctionDefinition","parameters":{"id":3568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3563,"mutability":"mutable","name":"from","nameLocation":"12227:4:10","nodeType":"VariableDeclaration","scope":3571,"src":"12219:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3562,"name":"address","nodeType":"ElementaryTypeName","src":"12219:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3565,"mutability":"mutable","name":"to","nameLocation":"12249:2:10","nodeType":"VariableDeclaration","scope":3571,"src":"12241:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3564,"name":"address","nodeType":"ElementaryTypeName","src":"12241:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3567,"mutability":"mutable","name":"amount","nameLocation":"12269:6:10","nodeType":"VariableDeclaration","scope":3571,"src":"12261:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3566,"name":"uint256","nodeType":"ElementaryTypeName","src":"12261:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:72:10"},"returnParameters":{"id":3569,"nodeType":"ParameterList","parameters":[],"src":"12299:0:10"},"scope":3583,"src":"12180:121:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3581,"nodeType":"Block","src":"13007:2:10","statements":[]},"documentation":{"id":3572,"nodeType":"StructuredDocumentation","src":"12307:577:10","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":3582,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12898:19:10","nodeType":"FunctionDefinition","parameters":{"id":3579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3574,"mutability":"mutable","name":"from","nameLocation":"12935:4:10","nodeType":"VariableDeclaration","scope":3582,"src":"12927:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3573,"name":"address","nodeType":"ElementaryTypeName","src":"12927:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3576,"mutability":"mutable","name":"to","nameLocation":"12957:2:10","nodeType":"VariableDeclaration","scope":3582,"src":"12949:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3575,"name":"address","nodeType":"ElementaryTypeName","src":"12949:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3578,"mutability":"mutable","name":"amount","nameLocation":"12977:6:10","nodeType":"VariableDeclaration","scope":3582,"src":"12969:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"12969:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12917:72:10"},"returnParameters":{"id":3580,"nodeType":"ParameterList","parameters":[],"src":"13007:0:10"},"scope":3583,"src":"12889:120:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3584,"src":"1401:11610:10","usedErrors":[]}],"src":"105:12907:10"},"id":10},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[3661]},"id":3662,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3585,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":3586,"nodeType":"StructuredDocumentation","src":"131:70:11","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":3661,"linearizedBaseContracts":[3661],"name":"IERC20","nameLocation":"212:6:11","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":3587,"nodeType":"StructuredDocumentation","src":"225:158:11","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"id":3595,"name":"Transfer","nameLocation":"394:8:11","nodeType":"EventDefinition","parameters":{"id":3594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3589,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:11","nodeType":"VariableDeclaration","scope":3595,"src":"403:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3588,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3591,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:11","nodeType":"VariableDeclaration","scope":3595,"src":"425:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3590,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3593,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:11","nodeType":"VariableDeclaration","scope":3595,"src":"445:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3592,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:11"},"src":"388:72:11"},{"anonymous":false,"documentation":{"id":3596,"nodeType":"StructuredDocumentation","src":"466:148:11","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"id":3604,"name":"Approval","nameLocation":"625:8:11","nodeType":"EventDefinition","parameters":{"id":3603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3598,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:11","nodeType":"VariableDeclaration","scope":3604,"src":"634:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3597,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3600,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:11","nodeType":"VariableDeclaration","scope":3604,"src":"657:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3599,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3602,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:11","nodeType":"VariableDeclaration","scope":3604,"src":"682:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3601,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:11"},"src":"619:78:11"},{"documentation":{"id":3605,"nodeType":"StructuredDocumentation","src":"703:66:11","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":3610,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:11","nodeType":"FunctionDefinition","parameters":{"id":3606,"nodeType":"ParameterList","parameters":[],"src":"794:2:11"},"returnParameters":{"id":3609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3610,"src":"820:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3607,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:11"},"scope":3661,"src":"774:55:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3611,"nodeType":"StructuredDocumentation","src":"835:72:11","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":3618,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:11","nodeType":"FunctionDefinition","parameters":{"id":3614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3613,"mutability":"mutable","name":"account","nameLocation":"939:7:11","nodeType":"VariableDeclaration","scope":3618,"src":"931:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3612,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:11"},"returnParameters":{"id":3617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3618,"src":"971:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3615,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:11"},"scope":3661,"src":"912:68:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3619,"nodeType":"StructuredDocumentation","src":"986:202:11","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":3628,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:11","nodeType":"FunctionDefinition","parameters":{"id":3624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3621,"mutability":"mutable","name":"to","nameLocation":"1219:2:11","nodeType":"VariableDeclaration","scope":3628,"src":"1211:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3620,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3623,"mutability":"mutable","name":"amount","nameLocation":"1231:6:11","nodeType":"VariableDeclaration","scope":3628,"src":"1223:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:11"},"returnParameters":{"id":3627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3628,"src":"1257:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3625,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:11"},"scope":3661,"src":"1193:70:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3629,"nodeType":"StructuredDocumentation","src":"1269:264:11","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":3638,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:11","nodeType":"FunctionDefinition","parameters":{"id":3634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3631,"mutability":"mutable","name":"owner","nameLocation":"1565:5:11","nodeType":"VariableDeclaration","scope":3638,"src":"1557:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3630,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3633,"mutability":"mutable","name":"spender","nameLocation":"1580:7:11","nodeType":"VariableDeclaration","scope":3638,"src":"1572:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3632,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:11"},"returnParameters":{"id":3637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3638,"src":"1612:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:11"},"scope":3661,"src":"1538:83:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3639,"nodeType":"StructuredDocumentation","src":"1627:642:11","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":3648,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:11","nodeType":"FunctionDefinition","parameters":{"id":3644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3641,"mutability":"mutable","name":"spender","nameLocation":"2299:7:11","nodeType":"VariableDeclaration","scope":3648,"src":"2291:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3640,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3643,"mutability":"mutable","name":"amount","nameLocation":"2316:6:11","nodeType":"VariableDeclaration","scope":3648,"src":"2308:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3642,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:11"},"returnParameters":{"id":3647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3648,"src":"2342:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3645,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:11"},"scope":3661,"src":"2274:74:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3649,"nodeType":"StructuredDocumentation","src":"2354:287:11","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":3660,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:11","nodeType":"FunctionDefinition","parameters":{"id":3656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3651,"mutability":"mutable","name":"from","nameLocation":"2685:4:11","nodeType":"VariableDeclaration","scope":3660,"src":"2677:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3650,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3653,"mutability":"mutable","name":"to","nameLocation":"2707:2:11","nodeType":"VariableDeclaration","scope":3660,"src":"2699:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3652,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3655,"mutability":"mutable","name":"amount","nameLocation":"2727:6:11","nodeType":"VariableDeclaration","scope":3660,"src":"2719:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3654,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:11"},"returnParameters":{"id":3659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3660,"src":"2758:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3657,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:11"},"scope":3661,"src":"2646:118:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3662,"src":"202:2564:11","usedErrors":[]}],"src":"106:2661:11"},"id":11},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[3661],"IERC20Metadata":[3686]},"id":3687,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3663,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:12"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":3664,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3687,"sourceUnit":3662,"src":"135:23:12","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3666,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":3661,"src":"305:6:12"},"id":3667,"nodeType":"InheritanceSpecifier","src":"305:6:12"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":3665,"nodeType":"StructuredDocumentation","src":"160:116:12","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":3686,"linearizedBaseContracts":[3686,3661],"name":"IERC20Metadata","nameLocation":"287:14:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3668,"nodeType":"StructuredDocumentation","src":"318:54:12","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":3673,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:12","nodeType":"FunctionDefinition","parameters":{"id":3669,"nodeType":"ParameterList","parameters":[],"src":"390:2:12"},"returnParameters":{"id":3672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3673,"src":"416:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3670,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:12"},"scope":3686,"src":"377:54:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3674,"nodeType":"StructuredDocumentation","src":"437:56:12","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":3679,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:12","nodeType":"FunctionDefinition","parameters":{"id":3675,"nodeType":"ParameterList","parameters":[],"src":"513:2:12"},"returnParameters":{"id":3678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3679,"src":"539:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3676,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:12"},"scope":3686,"src":"498:56:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3680,"nodeType":"StructuredDocumentation","src":"560:65:12","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":3685,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:12","nodeType":"FunctionDefinition","parameters":{"id":3681,"nodeType":"ParameterList","parameters":[],"src":"647:2:12"},"returnParameters":{"id":3684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3685,"src":"673:5:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3682,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:12"},"scope":3686,"src":"630:50:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3687,"src":"277:405:12","usedErrors":[]}],"src":"110:573:12"},"id":12},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[3708]},"id":3709,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3688,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:13"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":3689,"nodeType":"StructuredDocumentation","src":"111:496:13","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":3708,"linearizedBaseContracts":[3708],"name":"Context","nameLocation":"626:7:13","nodeType":"ContractDefinition","nodes":[{"body":{"id":3697,"nodeType":"Block","src":"702:34:13","statements":[{"expression":{"expression":{"id":3694,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3693,"id":3696,"nodeType":"Return","src":"712:17:13"}]},"id":3698,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:13","nodeType":"FunctionDefinition","parameters":{"id":3690,"nodeType":"ParameterList","parameters":[],"src":"659:2:13"},"returnParameters":{"id":3693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3698,"src":"693:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3691,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:13"},"scope":3708,"src":"640:96:13","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3706,"nodeType":"Block","src":"809:32:13","statements":[{"expression":{"expression":{"id":3703,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:13","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":3702,"id":3705,"nodeType":"Return","src":"819:15:13"}]},"id":3707,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:13","nodeType":"FunctionDefinition","parameters":{"id":3699,"nodeType":"ParameterList","parameters":[],"src":"759:2:13"},"returnParameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3707,"src":"793:14:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3700,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:13"},"scope":3708,"src":"742:99:13","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":3709,"src":"608:235:13","usedErrors":[]}],"src":"86:758:13"},"id":13},"contracts/OmniVotingEscrow.sol":{"ast":{"absolutePath":"contracts/OmniVotingEscrow.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540],"LzApp":[917],"NonblockingLzApp":[1136],"OmniVotingEscrow":[4094],"Ownable":[2996]},"id":4095,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":3710,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:14"},{"id":3711,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:14"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./interfaces/IVotingEscrow.sol","id":3712,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4519,"src":"83:40:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","file":"./interfaces/IOmniVotingEscrow.sol","id":3713,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4466,"src":"124:44:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","file":"./interfaces/IVotingEscrowRemapper.sol","id":3714,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":4541,"src":"169:48:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","id":3715,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4095,"sourceUnit":1137,"src":"218:79:14","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3716,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"328:16:14"},"id":3717,"nodeType":"InheritanceSpecifier","src":"328:16:14"},{"baseName":{"id":3718,"name":"IOmniVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4465,"src":"346:17:14"},"id":3719,"nodeType":"InheritanceSpecifier","src":"346:17:14"}],"canonicalName":"OmniVotingEscrow","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4094,"linearizedBaseContracts":[4094,4465,1136,917,189,158,2996,3708],"name":"OmniVotingEscrow","nameLocation":"308:16:14","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"4f2bfe5b","id":3722,"mutability":"immutable","name":"votingEscrow","nameLocation":"401:12:14","nodeType":"VariableDeclaration","scope":4094,"src":"370:43:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":3721,"nodeType":"UserDefinedTypeName","pathNode":{"id":3720,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"370:13:14"},"referencedDeclaration":4518,"src":"370:13:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"public"},{"constant":false,"functionSelector":"363bf0de","id":3725,"mutability":"immutable","name":"votingEscrowRemapper","nameLocation":"458:20:14","nodeType":"VariableDeclaration","scope":4094,"src":"419:59:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"},"typeName":{"id":3724,"nodeType":"UserDefinedTypeName","pathNode":{"id":3723,"name":"IVotingEscrowRemapper","nodeType":"IdentifierPath","referencedDeclaration":4540,"src":"419:21:14"},"referencedDeclaration":4540,"src":"419:21:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"visibility":"public"},{"constant":false,"id":3728,"mutability":"mutable","name":"PT_USER","nameLocation":"530:7:14","nodeType":"VariableDeclaration","scope":4094,"src":"523:18:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3726,"name":"uint16","nodeType":"ElementaryTypeName","src":"523:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":3727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"540:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":false,"id":3731,"mutability":"mutable","name":"PT_TS","nameLocation":"594:5:14","nodeType":"VariableDeclaration","scope":4094,"src":"587:16:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3729,"name":"uint16","nodeType":"ElementaryTypeName","src":"587:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":3730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"602:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"anonymous":false,"id":3745,"name":"UserBalToChain","nameLocation":"639:14:14","nodeType":"EventDefinition","parameters":{"id":3744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3733,"indexed":false,"mutability":"mutable","name":"dstChainId","nameLocation":"661:10:14","nodeType":"VariableDeclaration","scope":3745,"src":"654:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3732,"name":"uint16","nodeType":"ElementaryTypeName","src":"654:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3735,"indexed":false,"mutability":"mutable","name":"localUser","nameLocation":"681:9:14","nodeType":"VariableDeclaration","scope":3745,"src":"673:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3734,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3737,"indexed":false,"mutability":"mutable","name":"remoteUser","nameLocation":"700:10:14","nodeType":"VariableDeclaration","scope":3745,"src":"692:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3736,"name":"address","nodeType":"ElementaryTypeName","src":"692:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3740,"indexed":false,"mutability":"mutable","name":"userPoint","nameLocation":"732:9:14","nodeType":"VariableDeclaration","scope":3745,"src":"712:29:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3739,"nodeType":"UserDefinedTypeName","pathNode":{"id":3738,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"712:19:14"},"referencedDeclaration":4477,"src":"712:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":3743,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"763:16:14","nodeType":"VariableDeclaration","scope":3745,"src":"743:36:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3742,"nodeType":"UserDefinedTypeName","pathNode":{"id":3741,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"743:19:14"},"referencedDeclaration":4477,"src":"743:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"653:127:14"},"src":"633:148:14"},{"anonymous":false,"id":3752,"name":"TotalSupplyToChain","nameLocation":"792:18:14","nodeType":"EventDefinition","parameters":{"id":3751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3747,"indexed":false,"mutability":"mutable","name":"dstChainId","nameLocation":"818:10:14","nodeType":"VariableDeclaration","scope":3752,"src":"811:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3746,"name":"uint16","nodeType":"ElementaryTypeName","src":"811:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3750,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"850:16:14","nodeType":"VariableDeclaration","scope":3752,"src":"830:36:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3749,"nodeType":"UserDefinedTypeName","pathNode":{"id":3748,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"830:19:14"},"referencedDeclaration":4477,"src":"830:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"810:57:14"},"src":"786:82:14"},{"body":{"id":3784,"nodeType":"Block","src":"968:248:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3763,"name":"_votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"986:21:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":3766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1019:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1011:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3764,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:14","typeDescriptions":{}}},"id":3767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1011:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"986:37:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f7420626520307830","id":3769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1025:42:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6","typeString":"literal_string \"OmniVotingEscrow: remapper cannot be 0x0\""},"value":"OmniVotingEscrow: remapper cannot be 0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6","typeString":"literal_string \"OmniVotingEscrow: remapper cannot be 0x0\""}],"id":3762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"978:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"978:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3771,"nodeType":"ExpressionStatement","src":"978:90:14"},{"expression":{"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3772,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"1079:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3774,"name":"_votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"1124:21:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3773,"name":"IVotingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"1102:21:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrowRemapper_$4540_$","typeString":"type(contract IVotingEscrowRemapper)"}},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1102:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"src":"1079:67:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3777,"nodeType":"ExpressionStatement","src":"1079:67:14"},{"expression":{"id":3782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3778,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"1156:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3779,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"1171:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getVotingEscrow","nodeType":"MemberAccess","referencedDeclaration":4529,"src":"1171:36:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IVotingEscrow_$4518_$","typeString":"function () view external returns (contract IVotingEscrow)"}},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1171:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"src":"1156:53:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3783,"nodeType":"ExpressionStatement","src":"1156:53:14"}]},"id":3785,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3759,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"955:11:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3760,"kind":"baseConstructorSpecifier","modifierName":{"id":3758,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"938:16:14"},"nodeType":"ModifierInvocation","src":"938:29:14"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3754,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"894:11:14","nodeType":"VariableDeclaration","scope":3785,"src":"886:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3753,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3756,"mutability":"mutable","name":"_votingEscrowRemapper","nameLocation":"915:21:14","nodeType":"VariableDeclaration","scope":3785,"src":"907:29:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3755,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"885:52:14"},"returnParameters":{"id":3761,"nodeType":"ParameterList","parameters":[],"src":"968:0:14"},"scope":4094,"src":"874:342:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1067],"body":{"id":3801,"nodeType":"Block","src":"1417:66:14","statements":[{"expression":{"arguments":[{"hexValue":"4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665206c7a4d736773","id":3798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1434:41:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2","typeString":"literal_string \"OmniVotingEscrow: cannot receive lzMsgs\""},"value":"OmniVotingEscrow: cannot receive lzMsgs"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2","typeString":"literal_string \"OmniVotingEscrow: cannot receive lzMsgs\""}],"id":3797,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1427:6:14","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1427:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3800,"nodeType":"ExpressionStatement","src":"1427:49:14"}]},"id":3802,"implemented":true,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1231:21:14","nodeType":"FunctionDefinition","overrides":{"id":3795,"nodeType":"OverrideSpecifier","overrides":[],"src":"1408:8:14"},"parameters":{"id":3794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1262:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3786,"name":"uint16","nodeType":"ElementaryTypeName","src":"1262:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1294:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3788,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1332:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3790,"name":"uint64","nodeType":"ElementaryTypeName","src":"1332:6:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3802,"src":"1359:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3792,"name":"bytes","nodeType":"ElementaryTypeName","src":"1359:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1252:138:14"},"returnParameters":{"id":3796,"nodeType":"ParameterList","parameters":[],"src":"1417:0:14"},"scope":4094,"src":"1222:261:14","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[4427],"body":{"id":3853,"nodeType":"Block","src":"1637:248:14","statements":[{"assignments":[3816],"declarations":[{"constant":false,"id":3816,"mutability":"mutable","name":"lzPayload","nameLocation":"1660:9:14","nodeType":"VariableDeclaration","scope":3853,"src":"1647:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3815,"name":"bytes","nodeType":"ElementaryTypeName","src":"1647:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3840,"initialValue":{"arguments":[{"id":3819,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"1683:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"hexValue":"307830","id":3822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1700:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1692:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3820,"name":"address","nodeType":"ElementaryTypeName","src":"1692:7:14","typeDescriptions":{}}},"id":3823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1692:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":3824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1706:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":3827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1729:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1732:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1738:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3825,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"1709:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"1709:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1709:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"arguments":[{"hexValue":"30","id":3834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1762:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1765:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1768:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1771:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3832,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"1742:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"1742:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1742:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3817,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1672:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1672:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1672:102:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1647:127:14"},{"expression":{"arguments":[{"id":3843,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"1815:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3846,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1836:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}],"id":3845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1828:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3844,"name":"address","nodeType":"ElementaryTypeName","src":"1828:7:14","typeDescriptions":{}}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1828:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3848,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3816,"src":"1843:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3849,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"1854:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3850,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3808,"src":"1863:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3841,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"1791:10:14","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":69,"src":"1791:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":3851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1791:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3814,"id":3852,"nodeType":"Return","src":"1784:94:14"}]},"functionSelector":"65d092d0","id":3854,"implemented":true,"kind":"function","modifiers":[],"name":"estimateSendUserBalance","nameLocation":"1498:23:14","nodeType":"FunctionDefinition","parameters":{"id":3809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3804,"mutability":"mutable","name":"_dstChainId","nameLocation":"1529:11:14","nodeType":"VariableDeclaration","scope":3854,"src":"1522:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3803,"name":"uint16","nodeType":"ElementaryTypeName","src":"1522:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3806,"mutability":"mutable","name":"_useZro","nameLocation":"1547:7:14","nodeType":"VariableDeclaration","scope":3854,"src":"1542:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3805,"name":"bool","nodeType":"ElementaryTypeName","src":"1542:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3808,"mutability":"mutable","name":"_adapterParams","nameLocation":"1571:14:14","nodeType":"VariableDeclaration","scope":3854,"src":"1556:29:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3807,"name":"bytes","nodeType":"ElementaryTypeName","src":"1556:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1521:65:14"},"returnParameters":{"id":3814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3811,"mutability":"mutable","name":"nativeFee","nameLocation":"1613:9:14","nodeType":"VariableDeclaration","scope":3854,"src":"1608:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3810,"name":"uint","nodeType":"ElementaryTypeName","src":"1608:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3813,"mutability":"mutable","name":"zroFee","nameLocation":"1629:6:14","nodeType":"VariableDeclaration","scope":3854,"src":"1624:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3812,"name":"uint","nodeType":"ElementaryTypeName","src":"1624:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1607:29:14"},"scope":4094,"src":"1489:396:14","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4440],"body":{"id":3893,"nodeType":"Block","src":"2039:196:14","statements":[{"assignments":[3868],"declarations":[{"constant":false,"id":3868,"mutability":"mutable","name":"lzPayload","nameLocation":"2062:9:14","nodeType":"VariableDeclaration","scope":3893,"src":"2049:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3867,"name":"bytes","nodeType":"ElementaryTypeName","src":"2049:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3880,"initialValue":{"arguments":[{"id":3871,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3731,"src":"2085:5:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"hexValue":"30","id":3874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2112:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2115:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2118:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2121:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3872,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2092:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2092:19:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},"id":3878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2092:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2074:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2074:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2074:50:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2049:75:14"},{"expression":{"arguments":[{"id":3883,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"2165:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3886,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2186:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmniVotingEscrow_$4094","typeString":"contract OmniVotingEscrow"}],"id":3885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2178:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3884,"name":"address","nodeType":"ElementaryTypeName","src":"2178:7:14","typeDescriptions":{}}},"id":3887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2178:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3888,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"2193:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3889,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"2204:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3890,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"2213:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3881,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"2141:10:14","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$144","typeString":"contract ILayerZeroEndpoint"}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":69,"src":"2141:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":3891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2141:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3866,"id":3892,"nodeType":"Return","src":"2134:94:14"}]},"functionSelector":"16334c8f","id":3894,"implemented":true,"kind":"function","modifiers":[],"name":"estimateSendTotalSupply","nameLocation":"1900:23:14","nodeType":"FunctionDefinition","parameters":{"id":3861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"_dstChainId","nameLocation":"1931:11:14","nodeType":"VariableDeclaration","scope":3894,"src":"1924:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3855,"name":"uint16","nodeType":"ElementaryTypeName","src":"1924:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3858,"mutability":"mutable","name":"_useZro","nameLocation":"1949:7:14","nodeType":"VariableDeclaration","scope":3894,"src":"1944:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3857,"name":"bool","nodeType":"ElementaryTypeName","src":"1944:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3860,"mutability":"mutable","name":"_adapterParams","nameLocation":"1973:14:14","nodeType":"VariableDeclaration","scope":3894,"src":"1958:29:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3859,"name":"bytes","nodeType":"ElementaryTypeName","src":"1958:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1923:65:14"},"returnParameters":{"id":3866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3863,"mutability":"mutable","name":"nativeFee","nameLocation":"2015:9:14","nodeType":"VariableDeclaration","scope":3894,"src":"2010:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3862,"name":"uint","nodeType":"ElementaryTypeName","src":"2010:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3865,"mutability":"mutable","name":"zroFee","nameLocation":"2031:6:14","nodeType":"VariableDeclaration","scope":3894,"src":"2026:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3864,"name":"uint","nodeType":"ElementaryTypeName","src":"2026:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2009:29:14"},"scope":4094,"src":"1891:344:14","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4453],"body":{"id":3997,"nodeType":"Block","src":"2410:917:14","statements":[{"assignments":[3908],"declarations":[{"constant":false,"id":3908,"mutability":"mutable","name":"userEpoch","nameLocation":"2425:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"2420:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3907,"name":"uint","nodeType":"ElementaryTypeName","src":"2420:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3913,"initialValue":{"arguments":[{"id":3911,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2467:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3909,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2437:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"user_point_epoch","nodeType":"MemberAccess","referencedDeclaration":4489,"src":"2437:29:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) external returns (uint256)"}},"id":3912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2437:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2420:58:14"},{"assignments":[3918],"declarations":[{"constant":false,"id":3918,"mutability":"mutable","name":"uPoint","nameLocation":"2515:6:14","nodeType":"VariableDeclaration","scope":3997,"src":"2488:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3917,"nodeType":"UserDefinedTypeName","pathNode":{"id":3916,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2488:19:14"},"referencedDeclaration":4477,"src":"2488:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":3924,"initialValue":{"arguments":[{"id":3921,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2556:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3922,"name":"userEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"2568:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3919,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2524:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"user_point_history","nodeType":"MemberAccess","referencedDeclaration":4499,"src":"2524:31:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (address,uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":3923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2524:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"2488:90:14"},{"assignments":[3926],"declarations":[{"constant":false,"id":3926,"mutability":"mutable","name":"lockedEnd","nameLocation":"2594:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"2589:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3925,"name":"uint","nodeType":"ElementaryTypeName","src":"2589:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3931,"initialValue":{"arguments":[{"id":3929,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2631:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3927,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2606:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"locked__end","nodeType":"MemberAccess","referencedDeclaration":4517,"src":"2606:24:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2606:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2589:53:14"},{"assignments":[3933],"declarations":[{"constant":false,"id":3933,"mutability":"mutable","name":"totalSupplyEpoch","nameLocation":"2719:16:14","nodeType":"VariableDeclaration","scope":3997,"src":"2714:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3932,"name":"uint","nodeType":"ElementaryTypeName","src":"2714:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3937,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3934,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2738:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"2738:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":3936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2738:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2714:44:14"},{"assignments":[3942],"declarations":[{"constant":false,"id":3942,"mutability":"mutable","name":"tsPoint","nameLocation":"2795:7:14","nodeType":"VariableDeclaration","scope":3997,"src":"2768:34:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":3941,"nodeType":"UserDefinedTypeName","pathNode":{"id":3940,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2768:19:14"},"referencedDeclaration":4477,"src":"2768:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":3947,"initialValue":{"arguments":[{"id":3945,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"2832:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3943,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"2805:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"2805:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2805:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"2768:81:14"},{"assignments":[3949],"declarations":[{"constant":false,"id":3949,"mutability":"mutable","name":"remappedAddress","nameLocation":"2868:15:14","nodeType":"VariableDeclaration","scope":3997,"src":"2860:23:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3948,"name":"address","nodeType":"ElementaryTypeName","src":"2860:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3955,"initialValue":{"arguments":[{"id":3952,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"2921:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3953,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"2933:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":3950,"name":"votingEscrowRemapper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"2886:20:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrowRemapper_$4540","typeString":"contract IVotingEscrowRemapper"}},"id":3951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRemoteUser","nodeType":"MemberAccess","referencedDeclaration":4539,"src":"2886:34:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint16_$returns$_t_address_$","typeString":"function (address,uint16) view external returns (address)"}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2886:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2860:85:14"},{"assignments":[3957],"declarations":[{"constant":false,"id":3957,"mutability":"mutable","name":"remoteUser","nameLocation":"2963:10:14","nodeType":"VariableDeclaration","scope":3997,"src":"2955:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3956,"name":"address","nodeType":"ElementaryTypeName","src":"2955:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3967,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3958,"name":"remappedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"2976:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:3:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2995:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3959,"name":"address","nodeType":"ElementaryTypeName","src":"2995:7:14","typeDescriptions":{}}},"id":3962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2995:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2976:31:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3965,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"3028:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2976:62:14","trueExpression":{"id":3964,"name":"remappedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"3010:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2955:83:14"},{"assignments":[3969],"declarations":[{"constant":false,"id":3969,"mutability":"mutable","name":"lzPayload","nameLocation":"3062:9:14","nodeType":"VariableDeclaration","scope":3997,"src":"3049:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3968,"name":"bytes","nodeType":"ElementaryTypeName","src":"3049:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3978,"initialValue":{"arguments":[{"id":3972,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"3085:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3973,"name":"remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3957,"src":"3094:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3974,"name":"lockedEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"3106:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3975,"name":"uPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3117:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":3976,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"3125:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":3970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3074:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3074:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3074:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3049:84:14"},{"expression":{"arguments":[{"id":3980,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"3151:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3981,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3969,"src":"3164:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3982,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3900,"src":"3175:14:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":3983,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"3191:18:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3984,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3211:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":3985,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3227:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3227:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3979,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"3143:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,address payable,address,bytes memory,uint256)"}},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3143:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3988,"nodeType":"ExpressionStatement","src":"3143:94:14"},{"eventCall":{"arguments":[{"id":3990,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"3267:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3991,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"3280:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3992,"name":"remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3957,"src":"3292:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3993,"name":"uPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"3304:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":3994,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"3312:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":3989,"name":"UserBalToChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3745,"src":"3252:14:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_address_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,address,address,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3252:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3996,"nodeType":"EmitStatement","src":"3247:73:14"}]},"functionSelector":"4a759489","id":3998,"implemented":true,"kind":"function","modifiers":[],"name":"sendUserBalance","nameLocation":"2250:15:14","nodeType":"FunctionDefinition","parameters":{"id":3905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3896,"mutability":"mutable","name":"_localUser","nameLocation":"2274:10:14","nodeType":"VariableDeclaration","scope":3998,"src":"2266:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3895,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3898,"mutability":"mutable","name":"_dstChainId","nameLocation":"2293:11:14","nodeType":"VariableDeclaration","scope":3998,"src":"2286:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3897,"name":"uint16","nodeType":"ElementaryTypeName","src":"2286:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3900,"mutability":"mutable","name":"_refundAddress","nameLocation":"2322:14:14","nodeType":"VariableDeclaration","scope":3998,"src":"2306:30:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3899,"name":"address","nodeType":"ElementaryTypeName","src":"2306:15:14","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":3902,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"2346:18:14","nodeType":"VariableDeclaration","scope":3998,"src":"2338:26:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3901,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3904,"mutability":"mutable","name":"_adapterParams","nameLocation":"2379:14:14","nodeType":"VariableDeclaration","scope":3998,"src":"2366:27:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3903,"name":"bytes","nodeType":"ElementaryTypeName","src":"2366:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2265:129:14"},"returnParameters":{"id":3906,"nodeType":"ParameterList","parameters":[],"src":"2410:0:14"},"scope":4094,"src":"2241:1086:14","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[4464],"body":{"id":4072,"nodeType":"Block","src":"3482:845:14","statements":[{"assignments":[4010],"declarations":[{"constant":false,"id":4010,"mutability":"mutable","name":"totalSupplyEpoch","nameLocation":"3497:16:14","nodeType":"VariableDeclaration","scope":4072,"src":"3492:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4009,"name":"uint","nodeType":"ElementaryTypeName","src":"3492:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4011,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3516:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"3516:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3516:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3492:44:14"},{"assignments":[4019],"declarations":[{"constant":false,"id":4019,"mutability":"mutable","name":"tsPoint","nameLocation":"3573:7:14","nodeType":"VariableDeclaration","scope":4072,"src":"3546:34:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4018,"nodeType":"UserDefinedTypeName","pathNode":{"id":4017,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3546:19:14"},"referencedDeclaration":4477,"src":"3546:19:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4024,"initialValue":{"arguments":[{"id":4022,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"3610:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4020,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3583:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"3583:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":4023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3583:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"3546:81:14"},{"condition":{"arguments":[{"expression":{"id":4026,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"3882:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":4474,"src":"3882:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4025,"name":"_hasLastCheckpointExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4093,"src":"3856:25:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3856:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4048,"nodeType":"IfStatement","src":"3852:248:14","trueBody":{"id":4047,"nodeType":"Block","src":"3895:205:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4029,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"3909:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"checkpoint","nodeType":"MemberAccess","referencedDeclaration":4510,"src":"3909:23:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3909:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4033,"nodeType":"ExpressionStatement","src":"3909:25:14"},{"expression":{"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4034,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"3982:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4035,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"4001:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":4482,"src":"4001:18:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4001:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3982:39:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4039,"nodeType":"ExpressionStatement","src":"3982:39:14"},{"expression":{"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4040,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4035:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4043,"name":"totalSupplyEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"4072:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4041,"name":"votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"4045:12:14","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"point_history","nodeType":"MemberAccess","referencedDeclaration":4507,"src":"4045:26:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_Point_$4477_memory_ptr_$","typeString":"function (uint256) external returns (struct IVotingEscrow.Point memory)"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4045:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"4035:54:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4046,"nodeType":"ExpressionStatement","src":"4035:54:14"}]}},{"assignments":[4050],"declarations":[{"constant":false,"id":4050,"mutability":"mutable","name":"lzPayload","nameLocation":"4123:9:14","nodeType":"VariableDeclaration","scope":4072,"src":"4110:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4049,"name":"bytes","nodeType":"ElementaryTypeName","src":"4110:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4056,"initialValue":{"arguments":[{"id":4053,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3731,"src":"4146:5:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4054,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4153:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"expression":{"id":4051,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4135:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4135:10:14","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4135:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4110:51:14"},{"expression":{"arguments":[{"id":4058,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"4179:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4059,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4050,"src":"4192:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4060,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"4203:14:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":4061,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4004,"src":"4219:18:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4062,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"4239:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4063,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4255:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"4255:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4057,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"4171:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,address payable,address,bytes memory,uint256)"}},"id":4065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4171:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4066,"nodeType":"ExpressionStatement","src":"4171:94:14"},{"eventCall":{"arguments":[{"id":4068,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"4299:11:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4069,"name":"tsPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"4312:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4067,"name":"TotalSupplyToChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3752,"src":"4280:18:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,struct IVotingEscrow.Point memory)"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4280:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4071,"nodeType":"EmitStatement","src":"4275:45:14"}]},"functionSelector":"416b154a","id":4073,"implemented":true,"kind":"function","modifiers":[],"name":"sendTotalSupply","nameLocation":"3342:15:14","nodeType":"FunctionDefinition","parameters":{"id":4007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4000,"mutability":"mutable","name":"_dstChainId","nameLocation":"3365:11:14","nodeType":"VariableDeclaration","scope":4073,"src":"3358:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3999,"name":"uint16","nodeType":"ElementaryTypeName","src":"3358:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4002,"mutability":"mutable","name":"_refundAddress","nameLocation":"3394:14:14","nodeType":"VariableDeclaration","scope":4073,"src":"3378:30:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4001,"name":"address","nodeType":"ElementaryTypeName","src":"3378:15:14","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4004,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"3418:18:14","nodeType":"VariableDeclaration","scope":4073,"src":"3410:26:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4003,"name":"address","nodeType":"ElementaryTypeName","src":"3410:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4006,"mutability":"mutable","name":"_adapterParams","nameLocation":"3451:14:14","nodeType":"VariableDeclaration","scope":4073,"src":"3438:27:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4005,"name":"bytes","nodeType":"ElementaryTypeName","src":"3438:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3357:109:14"},"returnParameters":{"id":4008,"nodeType":"ParameterList","parameters":[],"src":"3482:0:14"},"scope":4094,"src":"3333:994:14","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":4092,"nodeType":"Block","src":"4427:213:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4080,"name":"lastCheckpointTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"4561:23:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31","id":4081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4587:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4561:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4560:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":4084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4598:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4560:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4608:7:14","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"1"},"src":"4560:55:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4088,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4618:5:14","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4618:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4560:73:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4079,"id":4091,"nodeType":"Return","src":"4553:80:14"}]},"id":4093,"implemented":true,"kind":"function","modifiers":[],"name":"_hasLastCheckpointExpired","nameLocation":"4342:25:14","nodeType":"FunctionDefinition","parameters":{"id":4076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4075,"mutability":"mutable","name":"lastCheckpointTimestamp","nameLocation":"4373:23:14","nodeType":"VariableDeclaration","scope":4093,"src":"4368:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4074,"name":"uint","nodeType":"ElementaryTypeName","src":"4368:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4367:30:14"},"returnParameters":{"id":4079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4093,"src":"4421:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4077,"name":"bool","nodeType":"ElementaryTypeName","src":"4421:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4420:6:14"},"scope":4094,"src":"4333:307:14","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4095,"src":"299:4343:14","usedErrors":[]}],"src":"38:4605:14"},"id":14},"contracts/OmniVotingEscrowChild.sol":{"ast":{"absolutePath":"contracts/OmniVotingEscrowChild.sol","exportedSymbols":{"BytesLib":[2786],"Context":[3708],"ExcessivelySafeCall":[2883],"IL2LayerZeroDelegation":[4411],"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"IVotingEscrow":[4518],"LzApp":[917],"NonblockingLzApp":[1136],"OmniVotingEscrowChild":[4399],"Ownable":[2996]},"id":4400,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4096,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:15"},{"id":4097,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:15"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./interfaces/IVotingEscrow.sol","id":4098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":4519,"src":"83:40:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","file":"./interfaces/IL2LayerZeroDelegation.sol","id":4099,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":4412,"src":"124:49:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","id":4100,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4400,"sourceUnit":1137,"src":"174:79:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4101,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"289:16:15"},"id":4102,"nodeType":"InheritanceSpecifier","src":"289:16:15"}],"canonicalName":"OmniVotingEscrowChild","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4399,"linearizedBaseContracts":[4399,1136,917,189,158,2996,3708],"name":"OmniVotingEscrowChild","nameLocation":"264:21:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"adc63589","id":4106,"mutability":"mutable","name":"locked__end","nameLocation":"344:11:15","nodeType":"VariableDeclaration","scope":4399,"src":"312:43:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4105,"keyType":{"id":4103,"name":"address","nodeType":"ElementaryTypeName","src":"320:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"312:24:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":4104,"name":"uint","nodeType":"ElementaryTypeName","src":"331:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"f50ddbc7","id":4111,"mutability":"mutable","name":"userPoints","nameLocation":"433:10:15","nodeType":"VariableDeclaration","scope":4399,"src":"386:57:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point)"},"typeName":{"id":4110,"keyType":{"id":4107,"name":"address","nodeType":"ElementaryTypeName","src":"394:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"386:39:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point)"},"valueType":{"id":4109,"nodeType":"UserDefinedTypeName","pathNode":{"id":4108,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"405:19:15"},"referencedDeclaration":4477,"src":"405:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}}},"visibility":"public"},{"constant":false,"functionSelector":"f4182acb","id":4114,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"492:16:15","nodeType":"VariableDeclaration","scope":4399,"src":"465:43:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4113,"nodeType":"UserDefinedTypeName","pathNode":{"id":4112,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"465:19:15"},"referencedDeclaration":4477,"src":"465:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"public"},{"constant":false,"id":4117,"mutability":"mutable","name":"PT_USER","nameLocation":"578:7:15","nodeType":"VariableDeclaration","scope":4399,"src":"571:18:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4115,"name":"uint16","nodeType":"ElementaryTypeName","src":"571:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":4116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":false,"id":4120,"mutability":"mutable","name":"PT_TS","nameLocation":"642:5:15","nodeType":"VariableDeclaration","scope":4399,"src":"635:16:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4118,"name":"uint16","nodeType":"ElementaryTypeName","src":"635:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":4119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"650:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"functionSelector":"74d2495f","id":4123,"mutability":"immutable","name":"delegationHook","nameLocation":"721:14:15","nodeType":"VariableDeclaration","scope":4399,"src":"681:54:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"},"typeName":{"id":4122,"nodeType":"UserDefinedTypeName","pathNode":{"id":4121,"name":"IL2LayerZeroDelegation","nodeType":"IdentifierPath","referencedDeclaration":4411,"src":"681:22:15"},"referencedDeclaration":4411,"src":"681:22:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"visibility":"public"},{"anonymous":false,"id":4135,"name":"UserBalFromChain","nameLocation":"748:16:15","nodeType":"EventDefinition","parameters":{"id":4134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4125,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"772:10:15","nodeType":"VariableDeclaration","scope":4135,"src":"765:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4124,"name":"uint16","nodeType":"ElementaryTypeName","src":"765:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4127,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"792:4:15","nodeType":"VariableDeclaration","scope":4135,"src":"784:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4126,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4130,"indexed":false,"mutability":"mutable","name":"userPoint","nameLocation":"818:9:15","nodeType":"VariableDeclaration","scope":4135,"src":"798:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4129,"nodeType":"UserDefinedTypeName","pathNode":{"id":4128,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"798:19:15"},"referencedDeclaration":4477,"src":"798:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":4133,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"849:16:15","nodeType":"VariableDeclaration","scope":4135,"src":"829:36:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4132,"nodeType":"UserDefinedTypeName","pathNode":{"id":4131,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"829:19:15"},"referencedDeclaration":4477,"src":"829:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"764:102:15"},"src":"742:125:15"},{"anonymous":false,"id":4142,"name":"TotalSupplyFromChain","nameLocation":"878:20:15","nodeType":"EventDefinition","parameters":{"id":4141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4137,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"906:10:15","nodeType":"VariableDeclaration","scope":4142,"src":"899:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4136,"name":"uint16","nodeType":"ElementaryTypeName","src":"899:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4140,"indexed":false,"mutability":"mutable","name":"totalSupplyPoint","nameLocation":"938:16:15","nodeType":"VariableDeclaration","scope":4142,"src":"918:36:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4139,"nodeType":"UserDefinedTypeName","pathNode":{"id":4138,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"918:19:15"},"referencedDeclaration":4477,"src":"918:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"898:57:15"},"src":"872:84:15"},{"body":{"id":4168,"nodeType":"Block","src":"1050:179:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4153,"name":"_delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"1068:15:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":4156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:3:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1087:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4154,"name":"address","nodeType":"ElementaryTypeName","src":"1087:7:15","typeDescriptions":{}}},"id":4157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1087:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1068:31:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f6e20686f6f6b2063616e6e6f7420626520307830","id":4159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1101:54:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612","typeString":"literal_string \"OmniVotingEscrowChild: delegation hook cannot be 0x0\""},"value":"OmniVotingEscrowChild: delegation hook cannot be 0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612","typeString":"literal_string \"OmniVotingEscrowChild: delegation hook cannot be 0x0\""}],"id":4152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1060:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4161,"nodeType":"ExpressionStatement","src":"1060:96:15"},{"expression":{"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4162,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"1166:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4164,"name":"_delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"1206:15:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4163,"name":"IL2LayerZeroDelegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4411,"src":"1183:22:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IL2LayerZeroDelegation_$4411_$","typeString":"type(contract IL2LayerZeroDelegation)"}},"id":4165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"src":"1166:56:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4167,"nodeType":"ExpressionStatement","src":"1166:56:15"}]},"id":4169,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4149,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"1037:11:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4150,"kind":"baseConstructorSpecifier","modifierName":{"id":4148,"name":"NonblockingLzApp","nodeType":"IdentifierPath","referencedDeclaration":1136,"src":"1020:16:15"},"nodeType":"ModifierInvocation","src":"1020:29:15"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4144,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"982:11:15","nodeType":"VariableDeclaration","scope":4169,"src":"974:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4143,"name":"address","nodeType":"ElementaryTypeName","src":"974:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4146,"mutability":"mutable","name":"_delegationHook","nameLocation":"1003:15:15","nodeType":"VariableDeclaration","scope":4169,"src":"995:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4145,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"973:46:15"},"returnParameters":{"id":4151,"nodeType":"ParameterList","parameters":[],"src":"1050:0:15"},"scope":4399,"src":"962:267:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1067],"body":{"id":4210,"nodeType":"Block","src":"1422:422:15","statements":[{"assignments":[4182],"declarations":[{"constant":false,"id":4182,"mutability":"mutable","name":"packetType","nameLocation":"1439:10:15","nodeType":"VariableDeclaration","scope":4210,"src":"1432:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4181,"name":"uint16","nodeType":"ElementaryTypeName","src":"1432:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":4183,"nodeType":"VariableDeclarationStatement","src":"1432:17:15"},{"AST":{"nodeType":"YulBlock","src":"1468:62:15","statements":[{"nodeType":"YulAssignment","src":"1482:38:15","value":{"arguments":[{"arguments":[{"name":"_payload","nodeType":"YulIdentifier","src":"1506:8:15"},{"kind":"number","nodeType":"YulLiteral","src":"1516:2:15","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1502:3:15"},"nodeType":"YulFunctionCall","src":"1502:17:15"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1496:5:15"},"nodeType":"YulFunctionCall","src":"1496:24:15"},"variableNames":[{"name":"packetType","nodeType":"YulIdentifier","src":"1482:10:15"}]}]},"evmVersion":"london","externalReferences":[{"declaration":4177,"isOffset":false,"isSlot":false,"src":"1506:8:15","valueSize":1},{"declaration":4182,"isOffset":false,"isSlot":false,"src":"1482:10:15","valueSize":1}],"id":4184,"nodeType":"InlineAssembly","src":"1459:71:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4185,"name":"packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"1544:10:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4186,"name":"PT_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"1558:7:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1544:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4194,"name":"packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"1659:10:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4195,"name":"PT_TS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"1673:5:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1659:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4207,"nodeType":"Block","src":"1761:77:15","statements":[{"expression":{"arguments":[{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207061636b65742074797065","id":4204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1782:44:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219","typeString":"literal_string \"OmniVotingEscrowChild: unknown packet type\""},"value":"OmniVotingEscrowChild: unknown packet type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219","typeString":"literal_string \"OmniVotingEscrowChild: unknown packet type\""}],"id":4203,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1775:6:15","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1775:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4206,"nodeType":"ExpressionStatement","src":"1775:52:15"}]},"id":4208,"nodeType":"IfStatement","src":"1655:183:15","trueBody":{"id":4202,"nodeType":"Block","src":"1680:75:15","statements":[{"expression":{"arguments":[{"id":4198,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"1722:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4199,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"1735:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4197,"name":"_updateTotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4311,"src":"1694:27:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1694:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4201,"nodeType":"ExpressionStatement","src":"1694:50:15"}]}},"id":4209,"nodeType":"IfStatement","src":"1540:298:15","trueBody":{"id":4193,"nodeType":"Block","src":"1567:82:15","statements":[{"expression":{"arguments":[{"id":4189,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4171,"src":"1616:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4190,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"1629:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4188,"name":"_updateUserAndTotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4274,"src":"1581:34:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1581:57:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4192,"nodeType":"ExpressionStatement","src":"1581:57:15"}]}}]},"id":4211,"implemented":true,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"1244:21:15","nodeType":"FunctionDefinition","overrides":{"id":4179,"nodeType":"OverrideSpecifier","overrides":[],"src":"1413:8:15"},"parameters":{"id":4178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4171,"mutability":"mutable","name":"_srcChainId","nameLocation":"1282:11:15","nodeType":"VariableDeclaration","scope":4211,"src":"1275:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4170,"name":"uint16","nodeType":"ElementaryTypeName","src":"1275:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4211,"src":"1303:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4172,"name":"bytes","nodeType":"ElementaryTypeName","src":"1303:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4211,"src":"1341:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4174,"name":"uint64","nodeType":"ElementaryTypeName","src":"1341:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4177,"mutability":"mutable","name":"_payload","nameLocation":"1381:8:15","nodeType":"VariableDeclaration","scope":4211,"src":"1368:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4176,"name":"bytes","nodeType":"ElementaryTypeName","src":"1368:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1265:130:15"},"returnParameters":{"id":4180,"nodeType":"ParameterList","parameters":[],"src":"1422:0:15"},"scope":4399,"src":"1235:609:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4273,"nodeType":"Block","src":"1946:517:15","statements":[{"assignments":[null,4219,4221,4224,4227],"declarations":[null,{"constant":false,"id":4219,"mutability":"mutable","name":"_userAddress","nameLocation":"1967:12:15","nodeType":"VariableDeclaration","scope":4273,"src":"1959:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4218,"name":"address","nodeType":"ElementaryTypeName","src":"1959:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4221,"mutability":"mutable","name":"_lockedEnd","nameLocation":"1986:10:15","nodeType":"VariableDeclaration","scope":4273,"src":"1981:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4220,"name":"uint","nodeType":"ElementaryTypeName","src":"1981:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4224,"mutability":"mutable","name":"_userPoint","nameLocation":"2025:10:15","nodeType":"VariableDeclaration","scope":4273,"src":"1998:37:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4223,"nodeType":"UserDefinedTypeName","pathNode":{"id":4222,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"1998:19:15"},"referencedDeclaration":4477,"src":"1998:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"},{"constant":false,"id":4227,"mutability":"mutable","name":"_totalSupplyPoint","nameLocation":"2064:17:15","nodeType":"VariableDeclaration","scope":4273,"src":"2037:44:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4226,"nodeType":"UserDefinedTypeName","pathNode":{"id":4225,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2037:19:15"},"referencedDeclaration":4477,"src":"2037:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4243,"initialValue":{"arguments":[{"id":4230,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"2096:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2107:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":4231,"name":"uint16","nodeType":"ElementaryTypeName","src":"2107:6:15","typeDescriptions":{}}},{"id":4234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2115:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4233,"name":"address","nodeType":"ElementaryTypeName","src":"2115:7:15","typeDescriptions":{}}},{"id":4236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2124:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4235,"name":"uint","nodeType":"ElementaryTypeName","src":"2124:4:15","typeDescriptions":{}}},{"expression":{"id":4237,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2130:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2130:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}},{"expression":{"id":4239,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2151:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2151:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}}],"id":4241,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2106:65:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(address),type(uint256),type(struct IVotingEscrow.Point storage pointer),type(struct IVotingEscrow.Point storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(address),type(uint256),type(struct IVotingEscrow.Point storage pointer),type(struct IVotingEscrow.Point storage pointer))"}],"expression":{"id":4228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2085:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2085:10:15","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2085:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_address_payable_$_t_uint256_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$","typeString":"tuple(uint16,address payable,uint256,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"nodeType":"VariableDeclarationStatement","src":"1956:216:15"},{"expression":{"id":4248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4244,"name":"locked__end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"2182:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4246,"indexExpression":{"id":4245,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2194:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2182:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4247,"name":"_lockedEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"2210:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2182:38:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4249,"nodeType":"ExpressionStatement","src":"2182:38:15"},{"expression":{"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4250,"name":"userPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"2230:10:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point storage ref)"}},"id":4252,"indexExpression":{"id":4251,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2241:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2230:24:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4253,"name":"_userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"2257:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2230:37:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4255,"nodeType":"ExpressionStatement","src":"2230:37:15"},{"expression":{"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4256,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"2277:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4257,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2296:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2277:36:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4259,"nodeType":"ExpressionStatement","src":"2277:36:15"},{"expression":{"arguments":[{"id":4263,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2354:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4260,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"2324:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onVeBalBridged","nodeType":"MemberAccess","referencedDeclaration":4407,"src":"2324:29:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2324:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4265,"nodeType":"ExpressionStatement","src":"2324:43:15"},{"eventCall":{"arguments":[{"id":4267,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"2399:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4268,"name":"_userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"2412:12:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4269,"name":"_userPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"2426:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},{"id":4270,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2438:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4266,"name":"UserBalFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"2382:16:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_struct$_Point_$4477_memory_ptr_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,address,struct IVotingEscrow.Point memory,struct IVotingEscrow.Point memory)"}},"id":4271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2382:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4272,"nodeType":"EmitStatement","src":"2377:79:15"}]},"id":4274,"implemented":true,"kind":"function","modifiers":[],"name":"_updateUserAndTotalSupplyFromChain","nameLocation":"1859:34:15","nodeType":"FunctionDefinition","parameters":{"id":4216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4213,"mutability":"mutable","name":"_srcChainId","nameLocation":"1901:11:15","nodeType":"VariableDeclaration","scope":4274,"src":"1894:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4212,"name":"uint16","nodeType":"ElementaryTypeName","src":"1894:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4215,"mutability":"mutable","name":"_payload","nameLocation":"1927:8:15","nodeType":"VariableDeclaration","scope":4274,"src":"1914:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4214,"name":"bytes","nodeType":"ElementaryTypeName","src":"1914:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1893:43:15"},"returnParameters":{"id":4217,"nodeType":"ParameterList","parameters":[],"src":"1946:0:15"},"scope":4399,"src":"1850:613:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4310,"nodeType":"Block","src":"2558:279:15","statements":[{"assignments":[null,4285],"declarations":[null,{"constant":false,"id":4285,"mutability":"mutable","name":"_totalSupplyPoint","nameLocation":"2598:17:15","nodeType":"VariableDeclaration","scope":4310,"src":"2571:44:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4284,"nodeType":"UserDefinedTypeName","pathNode":{"id":4283,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"2571:19:15"},"referencedDeclaration":4477,"src":"2571:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4295,"initialValue":{"arguments":[{"id":4288,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"2630:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2641:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":4289,"name":"uint16","nodeType":"ElementaryTypeName","src":"2641:6:15","typeDescriptions":{}}},{"expression":{"id":4291,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"2649:13:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Point","nodeType":"MemberAccess","referencedDeclaration":4477,"src":"2649:19:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Point_$4477_storage_ptr_$","typeString":"type(struct IVotingEscrow.Point storage pointer)"}}],"id":4293,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2640:29:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(struct IVotingEscrow.Point storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint16_$_$_t_type$_t_struct$_Point_$4477_storage_ptr_$_$","typeString":"tuple(type(uint16),type(struct IVotingEscrow.Point storage pointer))"}],"expression":{"id":4286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2619:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2619:10:15","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2619:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$","typeString":"tuple(uint16,struct IVotingEscrow.Point memory)"}},"nodeType":"VariableDeclarationStatement","src":"2568:102:15"},{"expression":{"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4296,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"2680:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4297,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"2699:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"src":"2680:36:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}},"id":4299,"nodeType":"ExpressionStatement","src":"2680:36:15"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4300,"name":"delegationHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"2727:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_IL2LayerZeroDelegation_$4411","typeString":"contract IL2LayerZeroDelegation"}},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onVeBalSupplyUpdate","nodeType":"MemberAccess","referencedDeclaration":4410,"src":"2727:34:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2727:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4304,"nodeType":"ExpressionStatement","src":"2727:36:15"},{"eventCall":{"arguments":[{"id":4306,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4276,"src":"2799:11:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4307,"name":"_totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"2812:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4305,"name":"TotalSupplyFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4142,"src":"2778:20:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_struct$_Point_$4477_memory_ptr_$returns$__$","typeString":"function (uint16,struct IVotingEscrow.Point memory)"}},"id":4308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2778:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4309,"nodeType":"EmitStatement","src":"2773:57:15"}]},"id":4311,"implemented":true,"kind":"function","modifiers":[],"name":"_updateTotalSupplyFromChain","nameLocation":"2478:27:15","nodeType":"FunctionDefinition","parameters":{"id":4279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4276,"mutability":"mutable","name":"_srcChainId","nameLocation":"2513:11:15","nodeType":"VariableDeclaration","scope":4311,"src":"2506:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4275,"name":"uint16","nodeType":"ElementaryTypeName","src":"2506:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4278,"mutability":"mutable","name":"_payload","nameLocation":"2539:8:15","nodeType":"VariableDeclaration","scope":4311,"src":"2526:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4277,"name":"bytes","nodeType":"ElementaryTypeName","src":"2526:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2505:43:15"},"returnParameters":{"id":4280,"nodeType":"ParameterList","parameters":[],"src":"2558:0:15"},"scope":4399,"src":"2469:368:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4324,"nodeType":"Block","src":"2904:57:15","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4319,"name":"userPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"2936:10:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Point_$4477_storage_$","typeString":"mapping(address => struct IVotingEscrow.Point storage ref)"}},"id":4321,"indexExpression":{"id":4320,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4313,"src":"2947:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2936:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}],"id":4318,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"2921:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2921:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4317,"id":4323,"nodeType":"Return","src":"2914:40:15"}]},"functionSelector":"70a08231","id":4325,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2852:9:15","nodeType":"FunctionDefinition","parameters":{"id":4314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4313,"mutability":"mutable","name":"_user","nameLocation":"2870:5:15","nodeType":"VariableDeclaration","scope":4325,"src":"2862:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4312,"name":"address","nodeType":"ElementaryTypeName","src":"2862:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2861:15:15"},"returnParameters":{"id":4317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4325,"src":"2898:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4315,"name":"uint","nodeType":"ElementaryTypeName","src":"2898:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2897:6:15"},"scope":4399,"src":"2843:118:15","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4334,"nodeType":"Block","src":"3017:56:15","statements":[{"expression":{"arguments":[{"id":4331,"name":"totalSupplyPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"3049:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_storage","typeString":"struct IVotingEscrow.Point storage ref"}],"id":4330,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"3034:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3034:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4329,"id":4333,"nodeType":"Return","src":"3027:39:15"}]},"functionSelector":"18160ddd","id":4335,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"2976:11:15","nodeType":"FunctionDefinition","parameters":{"id":4326,"nodeType":"ParameterList","parameters":[],"src":"2987:2:15"},"returnParameters":{"id":4329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4335,"src":"3011:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4327,"name":"uint","nodeType":"ElementaryTypeName","src":"3011:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3010:6:15"},"scope":4399,"src":"2967:106:15","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4347,"nodeType":"Block","src":"3194:46:15","statements":[{"expression":{"arguments":[{"id":4344,"name":"_point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4338,"src":"3226:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}],"id":4343,"name":"_getPointValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4398,"src":"3211:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Point_$4477_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct IVotingEscrow.Point memory) view returns (uint256)"}},"id":4345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3211:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4342,"id":4346,"nodeType":"Return","src":"3204:29:15"}]},"functionSelector":"378ef708","id":4348,"implemented":true,"kind":"function","modifiers":[],"name":"getPointValue","nameLocation":"3116:13:15","nodeType":"FunctionDefinition","parameters":{"id":4339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4338,"mutability":"mutable","name":"_point","nameLocation":"3157:6:15","nodeType":"VariableDeclaration","scope":4348,"src":"3130:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4337,"nodeType":"UserDefinedTypeName","pathNode":{"id":4336,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3130:19:15"},"referencedDeclaration":4477,"src":"3130:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"3129:35:15"},"returnParameters":{"id":4342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4348,"src":"3188:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4340,"name":"uint","nodeType":"ElementaryTypeName","src":"3188:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3187:6:15"},"scope":4399,"src":"3107:133:15","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4397,"nodeType":"Block","src":"3334:190:15","statements":[{"assignments":[4360],"declarations":[{"constant":false,"id":4360,"mutability":"mutable","name":"p","nameLocation":"3371:1:15","nodeType":"VariableDeclaration","scope":4397,"src":"3344:28:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4359,"nodeType":"UserDefinedTypeName","pathNode":{"id":4358,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3344:19:15"},"referencedDeclaration":4477,"src":"3344:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"id":4362,"initialValue":{"id":4361,"name":"_point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"3375:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"nodeType":"VariableDeclarationStatement","src":"3344:37:15"},{"assignments":[4364],"declarations":[{"constant":false,"id":4364,"mutability":"mutable","name":"bias","nameLocation":"3399:4:15","nodeType":"VariableDeclaration","scope":4397,"src":"3392:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4363,"name":"int128","nodeType":"ElementaryTypeName","src":"3392:6:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":4383,"initialValue":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4365,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3406:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bias","nodeType":"MemberAccess","referencedDeclaration":4470,"src":"3406:6:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4367,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3416:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"slope","nodeType":"MemberAccess","referencedDeclaration":4472,"src":"3416:7:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4373,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3441:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3441:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":4375,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"3459:1:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point memory"}},"id":4376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":4474,"src":"3459:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3441:22:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3433:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4371,"name":"uint128","nodeType":"ElementaryTypeName","src":"3433:7:15","typeDescriptions":{}}},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3433:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":4370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3426:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":4369,"name":"int128","nodeType":"ElementaryTypeName","src":"3426:6:15","typeDescriptions":{}}},"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3426:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3416:49:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"id":4381,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3415:51:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3406:60:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"3392:74:15"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4384,"name":"bias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"3483:4:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":4385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3490:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3483:8:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":4392,"name":"bias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"3511:4:15","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":4391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3503:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4390,"name":"uint128","nodeType":"ElementaryTypeName","src":"3503:7:15","typeDescriptions":{}}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3503:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":4389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3498:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4388,"name":"uint","nodeType":"ElementaryTypeName","src":"3498:4:15","typeDescriptions":{}}},"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3498:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3483:34:15","trueExpression":{"hexValue":"30","id":4387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3494:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4355,"id":4396,"nodeType":"Return","src":"3476:41:15"}]},"id":4398,"implemented":true,"kind":"function","modifiers":[],"name":"_getPointValue","nameLocation":"3255:14:15","nodeType":"FunctionDefinition","parameters":{"id":4352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4351,"mutability":"mutable","name":"_point","nameLocation":"3297:6:15","nodeType":"VariableDeclaration","scope":4398,"src":"3270:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4350,"nodeType":"UserDefinedTypeName","pathNode":{"id":4349,"name":"IVotingEscrow.Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"3270:19:15"},"referencedDeclaration":4477,"src":"3270:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"3269:35:15"},"returnParameters":{"id":4355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4398,"src":"3328:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4353,"name":"uint","nodeType":"ElementaryTypeName","src":"3328:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3327:6:15"},"scope":4399,"src":"3246:278:15","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4400,"src":"255:3271:15","usedErrors":[]}],"src":"38:3489:15"},"id":15},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"ast":{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","exportedSymbols":{"IL2LayerZeroDelegation":[4411]},"id":4412,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4401,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:16"},{"abstract":false,"baseContracts":[],"canonicalName":"IL2LayerZeroDelegation","contractDependencies":[],"contractKind":"interface","documentation":{"id":4402,"nodeType":"StructuredDocumentation","src":"721:117:16","text":" @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain."},"fullyImplemented":false,"id":4411,"linearizedBaseContracts":[4411],"name":"IL2LayerZeroDelegation","nameLocation":"849:22:16","nodeType":"ContractDefinition","nodes":[{"functionSelector":"df130bfe","id":4407,"implemented":false,"kind":"function","modifiers":[],"name":"onVeBalBridged","nameLocation":"887:14:16","nodeType":"FunctionDefinition","parameters":{"id":4405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4404,"mutability":"mutable","name":"user","nameLocation":"910:4:16","nodeType":"VariableDeclaration","scope":4407,"src":"902:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4403,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:14:16"},"returnParameters":{"id":4406,"nodeType":"ParameterList","parameters":[],"src":"924:0:16"},"scope":4411,"src":"878:47:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"96345fb5","id":4410,"implemented":false,"kind":"function","modifiers":[],"name":"onVeBalSupplyUpdate","nameLocation":"940:19:16","nodeType":"FunctionDefinition","parameters":{"id":4408,"nodeType":"ParameterList","parameters":[],"src":"959:2:16"},"returnParameters":{"id":4409,"nodeType":"ParameterList","parameters":[],"src":"970:0:16"},"scope":4411,"src":"931:40:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4412,"src":"839:134:16","usedErrors":[]}],"src":"688:286:16"},"id":16},"contracts/interfaces/IOmniVotingEscrow.sol":{"ast":{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","exportedSymbols":{"IOmniVotingEscrow":[4465]},"id":4466,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4413,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:17"},{"abstract":false,"baseContracts":[],"canonicalName":"IOmniVotingEscrow","contractDependencies":[],"contractKind":"interface","documentation":{"id":4414,"nodeType":"StructuredDocumentation","src":"721:162:17","text":" @dev Partial voting escrow bridge interface.\n See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference."},"fullyImplemented":false,"id":4465,"linearizedBaseContracts":[4465],"name":"IOmniVotingEscrow","nameLocation":"894:17:17","nodeType":"ContractDefinition","nodes":[{"functionSelector":"65d092d0","id":4427,"implemented":false,"kind":"function","modifiers":[],"name":"estimateSendUserBalance","nameLocation":"927:23:17","nodeType":"FunctionDefinition","parameters":{"id":4421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4416,"mutability":"mutable","name":"_dstChainId","nameLocation":"958:11:17","nodeType":"VariableDeclaration","scope":4427,"src":"951:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4415,"name":"uint16","nodeType":"ElementaryTypeName","src":"951:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4418,"mutability":"mutable","name":"_useZro","nameLocation":"976:7:17","nodeType":"VariableDeclaration","scope":4427,"src":"971:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4417,"name":"bool","nodeType":"ElementaryTypeName","src":"971:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4420,"mutability":"mutable","name":"_adapterParams","nameLocation":"1000:14:17","nodeType":"VariableDeclaration","scope":4427,"src":"985:29:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4419,"name":"bytes","nodeType":"ElementaryTypeName","src":"985:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"950:65:17"},"returnParameters":{"id":4426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4423,"mutability":"mutable","name":"nativeFee","nameLocation":"1044:9:17","nodeType":"VariableDeclaration","scope":4427,"src":"1039:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4422,"name":"uint","nodeType":"ElementaryTypeName","src":"1039:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4425,"mutability":"mutable","name":"zroFee","nameLocation":"1060:6:17","nodeType":"VariableDeclaration","scope":4427,"src":"1055:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4424,"name":"uint","nodeType":"ElementaryTypeName","src":"1055:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1038:29:17"},"scope":4465,"src":"918:150:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16334c8f","id":4440,"implemented":false,"kind":"function","modifiers":[],"name":"estimateSendTotalSupply","nameLocation":"1083:23:17","nodeType":"FunctionDefinition","parameters":{"id":4434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4429,"mutability":"mutable","name":"_dstChainId","nameLocation":"1114:11:17","nodeType":"VariableDeclaration","scope":4440,"src":"1107:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4428,"name":"uint16","nodeType":"ElementaryTypeName","src":"1107:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4431,"mutability":"mutable","name":"_useZro","nameLocation":"1132:7:17","nodeType":"VariableDeclaration","scope":4440,"src":"1127:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4430,"name":"bool","nodeType":"ElementaryTypeName","src":"1127:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4433,"mutability":"mutable","name":"_adapterParams","nameLocation":"1156:14:17","nodeType":"VariableDeclaration","scope":4440,"src":"1141:29:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4432,"name":"bytes","nodeType":"ElementaryTypeName","src":"1141:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1106:65:17"},"returnParameters":{"id":4439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4436,"mutability":"mutable","name":"nativeFee","nameLocation":"1200:9:17","nodeType":"VariableDeclaration","scope":4440,"src":"1195:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4435,"name":"uint","nodeType":"ElementaryTypeName","src":"1195:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4438,"mutability":"mutable","name":"zroFee","nameLocation":"1216:6:17","nodeType":"VariableDeclaration","scope":4440,"src":"1211:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4437,"name":"uint","nodeType":"ElementaryTypeName","src":"1211:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1194:29:17"},"scope":4465,"src":"1074:150:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4a759489","id":4453,"implemented":false,"kind":"function","modifiers":[],"name":"sendUserBalance","nameLocation":"1239:15:17","nodeType":"FunctionDefinition","parameters":{"id":4451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4442,"mutability":"mutable","name":"_localUser","nameLocation":"1263:10:17","nodeType":"VariableDeclaration","scope":4453,"src":"1255:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4441,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4444,"mutability":"mutable","name":"_dstChainId","nameLocation":"1282:11:17","nodeType":"VariableDeclaration","scope":4453,"src":"1275:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4443,"name":"uint16","nodeType":"ElementaryTypeName","src":"1275:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4446,"mutability":"mutable","name":"_refundAddress","nameLocation":"1311:14:17","nodeType":"VariableDeclaration","scope":4453,"src":"1295:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4445,"name":"address","nodeType":"ElementaryTypeName","src":"1295:15:17","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4448,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1335:18:17","nodeType":"VariableDeclaration","scope":4453,"src":"1327:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4447,"name":"address","nodeType":"ElementaryTypeName","src":"1327:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4450,"mutability":"mutable","name":"_adapterParams","nameLocation":"1368:14:17","nodeType":"VariableDeclaration","scope":4453,"src":"1355:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4449,"name":"bytes","nodeType":"ElementaryTypeName","src":"1355:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1254:129:17"},"returnParameters":{"id":4452,"nodeType":"ParameterList","parameters":[],"src":"1400:0:17"},"scope":4465,"src":"1230:171:17","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"416b154a","id":4464,"implemented":false,"kind":"function","modifiers":[],"name":"sendTotalSupply","nameLocation":"1416:15:17","nodeType":"FunctionDefinition","parameters":{"id":4462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4455,"mutability":"mutable","name":"_dstChainId","nameLocation":"1439:11:17","nodeType":"VariableDeclaration","scope":4464,"src":"1432:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4454,"name":"uint16","nodeType":"ElementaryTypeName","src":"1432:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4457,"mutability":"mutable","name":"_refundAddress","nameLocation":"1468:14:17","nodeType":"VariableDeclaration","scope":4464,"src":"1452:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4456,"name":"address","nodeType":"ElementaryTypeName","src":"1452:15:17","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4459,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1492:18:17","nodeType":"VariableDeclaration","scope":4464,"src":"1484:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4458,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4461,"mutability":"mutable","name":"_adapterParams","nameLocation":"1525:14:17","nodeType":"VariableDeclaration","scope":4464,"src":"1512:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4460,"name":"bytes","nodeType":"ElementaryTypeName","src":"1512:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1431:109:17"},"returnParameters":{"id":4463,"nodeType":"ParameterList","parameters":[],"src":"1557:0:17"},"scope":4465,"src":"1407:151:17","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":4466,"src":"884:676:17","usedErrors":[]}],"src":"688:873:17"},"id":17},"contracts/interfaces/IVotingEscrow.sol":{"ast":{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","exportedSymbols":{"IVotingEscrow":[4518]},"id":4519,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4467,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:18"},{"id":4468,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:18"},{"abstract":false,"baseContracts":[],"canonicalName":"IVotingEscrow","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4518,"linearizedBaseContracts":[4518],"name":"IVotingEscrow","nameLocation":"93:13:18","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IVotingEscrow.Point","id":4477,"members":[{"constant":false,"id":4470,"mutability":"mutable","name":"bias","nameLocation":"143:4:18","nodeType":"VariableDeclaration","scope":4477,"src":"136:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4469,"name":"int128","nodeType":"ElementaryTypeName","src":"136:6:18","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":4472,"mutability":"mutable","name":"slope","nameLocation":"164:5:18","nodeType":"VariableDeclaration","scope":4477,"src":"157:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":4471,"name":"int128","nodeType":"ElementaryTypeName","src":"157:6:18","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":4474,"mutability":"mutable","name":"ts","nameLocation":"184:2:18","nodeType":"VariableDeclaration","scope":4477,"src":"179:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4473,"name":"uint","nodeType":"ElementaryTypeName","src":"179:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4476,"mutability":"mutable","name":"blk","nameLocation":"201:3:18","nodeType":"VariableDeclaration","scope":4477,"src":"196:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4475,"name":"uint","nodeType":"ElementaryTypeName","src":"196:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Point","nameLocation":"120:5:18","nodeType":"StructDefinition","scope":4518,"src":"113:122:18","visibility":"public"},{"functionSelector":"900cf0cf","id":4482,"implemented":false,"kind":"function","modifiers":[],"name":"epoch","nameLocation":"250:5:18","nodeType":"FunctionDefinition","parameters":{"id":4478,"nodeType":"ParameterList","parameters":[],"src":"255:2:18"},"returnParameters":{"id":4481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4482,"src":"281:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4479,"name":"uint","nodeType":"ElementaryTypeName","src":"281:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"280:6:18"},"scope":4518,"src":"241:46:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"010ae757","id":4489,"implemented":false,"kind":"function","modifiers":[],"name":"user_point_epoch","nameLocation":"302:16:18","nodeType":"FunctionDefinition","parameters":{"id":4485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4484,"mutability":"mutable","name":"_user","nameLocation":"327:5:18","nodeType":"VariableDeclaration","scope":4489,"src":"319:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4483,"name":"address","nodeType":"ElementaryTypeName","src":"319:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"318:15:18"},"returnParameters":{"id":4488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4489,"src":"352:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4486,"name":"uint","nodeType":"ElementaryTypeName","src":"352:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"351:6:18"},"scope":4518,"src":"293:65:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"28d09d47","id":4499,"implemented":false,"kind":"function","modifiers":[],"name":"user_point_history","nameLocation":"373:18:18","nodeType":"FunctionDefinition","parameters":{"id":4494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4491,"mutability":"mutable","name":"_user","nameLocation":"400:5:18","nodeType":"VariableDeclaration","scope":4499,"src":"392:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4490,"name":"address","nodeType":"ElementaryTypeName","src":"392:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4493,"mutability":"mutable","name":"_epoch","nameLocation":"412:6:18","nodeType":"VariableDeclaration","scope":4499,"src":"407:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4492,"name":"uint","nodeType":"ElementaryTypeName","src":"407:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"391:28:18"},"returnParameters":{"id":4498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4499,"src":"438:12:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4496,"nodeType":"UserDefinedTypeName","pathNode":{"id":4495,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"438:5:18"},"referencedDeclaration":4477,"src":"438:5:18","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"437:14:18"},"scope":4518,"src":"364:88:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d1febfb9","id":4507,"implemented":false,"kind":"function","modifiers":[],"name":"point_history","nameLocation":"467:13:18","nodeType":"FunctionDefinition","parameters":{"id":4502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4501,"mutability":"mutable","name":"_epoch","nameLocation":"486:6:18","nodeType":"VariableDeclaration","scope":4507,"src":"481:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4500,"name":"uint","nodeType":"ElementaryTypeName","src":"481:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:13:18"},"returnParameters":{"id":4506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4507,"src":"512:12:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_memory_ptr","typeString":"struct IVotingEscrow.Point"},"typeName":{"id":4504,"nodeType":"UserDefinedTypeName","pathNode":{"id":4503,"name":"Point","nodeType":"IdentifierPath","referencedDeclaration":4477,"src":"512:5:18"},"referencedDeclaration":4477,"src":"512:5:18","typeDescriptions":{"typeIdentifier":"t_struct$_Point_$4477_storage_ptr","typeString":"struct IVotingEscrow.Point"}},"visibility":"internal"}],"src":"511:14:18"},"scope":4518,"src":"458:68:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c2c4c5c1","id":4510,"implemented":false,"kind":"function","modifiers":[],"name":"checkpoint","nameLocation":"541:10:18","nodeType":"FunctionDefinition","parameters":{"id":4508,"nodeType":"ParameterList","parameters":[],"src":"551:2:18"},"returnParameters":{"id":4509,"nodeType":"ParameterList","parameters":[],"src":"562:0:18"},"scope":4518,"src":"532:31:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"adc63589","id":4517,"implemented":false,"kind":"function","modifiers":[],"name":"locked__end","nameLocation":"578:11:18","nodeType":"FunctionDefinition","parameters":{"id":4513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4512,"mutability":"mutable","name":"user","nameLocation":"598:4:18","nodeType":"VariableDeclaration","scope":4517,"src":"590:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4511,"name":"address","nodeType":"ElementaryTypeName","src":"590:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"589:14:18"},"returnParameters":{"id":4516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4517,"src":"627:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4514,"name":"uint","nodeType":"ElementaryTypeName","src":"627:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"626:6:18"},"scope":4518,"src":"569:64:18","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4519,"src":"83:552:18","usedErrors":[]}],"src":"38:598:18"},"id":18},"contracts/interfaces/IVotingEscrowRemapper.sol":{"ast":{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","exportedSymbols":{"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540]},"id":4541,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4520,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"688:31:19"},{"absolutePath":"contracts/interfaces/IVotingEscrow.sol","file":"./IVotingEscrow.sol","id":4521,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4541,"sourceUnit":4519,"src":"721:29:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/IOmniVotingEscrow.sol","file":"./IOmniVotingEscrow.sol","id":4522,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4541,"sourceUnit":4466,"src":"751:33:19","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IVotingEscrowRemapper","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4540,"linearizedBaseContracts":[4540],"name":"IVotingEscrowRemapper","nameLocation":"796:21:19","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4523,"nodeType":"StructuredDocumentation","src":"824:66:19","text":" @notice Returns Voting Escrow contract address."},"functionSelector":"08b0308a","id":4529,"implemented":false,"kind":"function","modifiers":[],"name":"getVotingEscrow","nameLocation":"904:15:19","nodeType":"FunctionDefinition","parameters":{"id":4524,"nodeType":"ParameterList","parameters":[],"src":"919:2:19"},"returnParameters":{"id":4528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4527,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4529,"src":"945:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":4526,"nodeType":"UserDefinedTypeName","pathNode":{"id":4525,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"945:13:19"},"referencedDeclaration":4518,"src":"945:13:19","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"internal"}],"src":"944:15:19"},"scope":4540,"src":"895:65:19","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4530,"nodeType":"StructuredDocumentation","src":"1919:378:19","text":" @notice Returns the remote user corresponding to an address on the local chain.\n @dev Returns `address(0)` if the remapping does not exist for the given local user.\n @param localUser - Address of the user on the local chain which are querying the remote address for.\n @param chainId - The chain ID of the network which the remote user is on."},"functionSelector":"bda75c38","id":4539,"implemented":false,"kind":"function","modifiers":[],"name":"getRemoteUser","nameLocation":"2311:13:19","nodeType":"FunctionDefinition","parameters":{"id":4535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4532,"mutability":"mutable","name":"localUser","nameLocation":"2333:9:19","nodeType":"VariableDeclaration","scope":4539,"src":"2325:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4531,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4534,"mutability":"mutable","name":"chainId","nameLocation":"2351:7:19","nodeType":"VariableDeclaration","scope":4539,"src":"2344:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4533,"name":"uint16","nodeType":"ElementaryTypeName","src":"2344:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2324:35:19"},"returnParameters":{"id":4538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4539,"src":"2383:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4536,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2382:9:19"},"scope":4540,"src":"2302:90:19","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4541,"src":"786:1608:19","usedErrors":[]}],"src":"688:1707:19"},"id":19},"contracts/mocks/ERC20Mock.sol":{"ast":{"absolutePath":"contracts/mocks/ERC20Mock.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"ERC20Mock":[4571],"IERC20":[3661],"IERC20Metadata":[3686]},"id":4572,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4542,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:20"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":4543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4572,"sourceUnit":3584,"src":"57:55:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4544,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"154:5:20"},"id":4545,"nodeType":"InheritanceSpecifier","src":"154:5:20"}],"canonicalName":"ERC20Mock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4571,"linearizedBaseContracts":[4571,3583,3686,3661,3708],"name":"ERC20Mock","nameLocation":"141:9:20","nodeType":"ContractDefinition","nodes":[{"body":{"id":4556,"nodeType":"Block","src":"244:2:20","statements":[]},"id":4557,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4552,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"228:5:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4553,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"235:7:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":4554,"kind":"baseConstructorSpecifier","modifierName":{"id":4551,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"222:5:20"},"nodeType":"ModifierInvocation","src":"222:21:20"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4547,"mutability":"mutable","name":"name_","nameLocation":"192:5:20","nodeType":"VariableDeclaration","scope":4557,"src":"178:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4546,"name":"string","nodeType":"ElementaryTypeName","src":"178:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4549,"mutability":"mutable","name":"symbol_","nameLocation":"213:7:20","nodeType":"VariableDeclaration","scope":4557,"src":"199:21:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4548,"name":"string","nodeType":"ElementaryTypeName","src":"199:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"177:44:20"},"returnParameters":{"id":4555,"nodeType":"ParameterList","parameters":[],"src":"244:0:20"},"scope":4571,"src":"166:80:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4569,"nodeType":"Block","src":"300:36:20","statements":[{"expression":{"arguments":[{"id":4565,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4559,"src":"316:3:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4566,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"321:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4564,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"310:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"310:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4568,"nodeType":"ExpressionStatement","src":"310:19:20"}]},"functionSelector":"40c10f19","id":4570,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"261:4:20","nodeType":"FunctionDefinition","parameters":{"id":4562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4559,"mutability":"mutable","name":"_to","nameLocation":"274:3:20","nodeType":"VariableDeclaration","scope":4570,"src":"266:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4558,"name":"address","nodeType":"ElementaryTypeName","src":"266:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4561,"mutability":"mutable","name":"_amount","nameLocation":"284:7:20","nodeType":"VariableDeclaration","scope":4570,"src":"279:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4560,"name":"uint","nodeType":"ElementaryTypeName","src":"279:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"265:27:20"},"returnParameters":{"id":4563,"nodeType":"ParameterList","parameters":[],"src":"300:0:20"},"scope":4571,"src":"252:84:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4572,"src":"132:206:20","usedErrors":[]}],"src":"32:307:20"},"id":20},"contracts/mocks/L2LayerZeroDelegation.sol":{"ast":{"absolutePath":"contracts/mocks/L2LayerZeroDelegation.sol","exportedSymbols":{"IL2LayerZeroDelegation":[4411],"L2LayerZeroDelegation":[4587]},"id":4588,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4573,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:21"},{"absolutePath":"contracts/interfaces/IL2LayerZeroDelegation.sol","file":"../interfaces/IL2LayerZeroDelegation.sol","id":4574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4588,"sourceUnit":4412,"src":"71:50:21","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4575,"name":"IL2LayerZeroDelegation","nodeType":"IdentifierPath","referencedDeclaration":4411,"src":"157:22:21"},"id":4576,"nodeType":"InheritanceSpecifier","src":"157:22:21"}],"canonicalName":"L2LayerZeroDelegation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4587,"linearizedBaseContracts":[4587,4411],"name":"L2LayerZeroDelegation","nameLocation":"132:21:21","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[4407],"body":{"id":4581,"nodeType":"Block","src":"233:2:21","statements":[]},"functionSelector":"df130bfe","id":4582,"implemented":true,"kind":"function","modifiers":[],"name":"onVeBalBridged","nameLocation":"195:14:21","nodeType":"FunctionDefinition","parameters":{"id":4579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4578,"mutability":"mutable","name":"user","nameLocation":"218:4:21","nodeType":"VariableDeclaration","scope":4582,"src":"210:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4577,"name":"address","nodeType":"ElementaryTypeName","src":"210:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"209:14:21"},"returnParameters":{"id":4580,"nodeType":"ParameterList","parameters":[],"src":"233:0:21"},"scope":4587,"src":"186:49:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4410],"body":{"id":4585,"nodeType":"Block","src":"281:2:21","statements":[]},"functionSelector":"96345fb5","id":4586,"implemented":true,"kind":"function","modifiers":[],"name":"onVeBalSupplyUpdate","nameLocation":"250:19:21","nodeType":"FunctionDefinition","parameters":{"id":4583,"nodeType":"ParameterList","parameters":[],"src":"269:2:21"},"returnParameters":{"id":4584,"nodeType":"ParameterList","parameters":[],"src":"281:0:21"},"scope":4587,"src":"241:42:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4588,"src":"123:162:21","usedErrors":[]}],"src":"46:240:21"},"id":21},"contracts/mocks/LZEndpointMock.sol":{"ast":{"absolutePath":"contracts/mocks/LZEndpointMock.sol","exportedSymbols":{"ILayerZeroEndpoint":[144],"ILayerZeroReceiver":[158],"ILayerZeroUserApplicationConfig":[189],"LZEndpointMock":[2453],"LZMock":[4603],"LzLib":[427]},"id":4604,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4589,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:22"},{"id":4590,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:22"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","file":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol","id":4591,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4604,"sourceUnit":2454,"src":"83:77:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4592,"name":"LZEndpointMock","nodeType":"IdentifierPath","referencedDeclaration":2453,"src":"787:14:22"},"id":4593,"nodeType":"InheritanceSpecifier","src":"787:14:22"}],"canonicalName":"LZMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4603,"linearizedBaseContracts":[4603,2453,144,189],"name":"LZMock","nameLocation":"777:6:22","nodeType":"ContractDefinition","nodes":[{"body":{"id":4601,"nodeType":"Block","src":"862:2:22","statements":[]},"id":4602,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4598,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4595,"src":"852:8:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":4599,"kind":"baseConstructorSpecifier","modifierName":{"id":4597,"name":"LZEndpointMock","nodeType":"IdentifierPath","referencedDeclaration":2453,"src":"837:14:22"},"nodeType":"ModifierInvocation","src":"837:24:22"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4595,"mutability":"mutable","name":"_chainId","nameLocation":"827:8:22","nodeType":"VariableDeclaration","scope":4602,"src":"820:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4594,"name":"uint16","nodeType":"ElementaryTypeName","src":"820:6:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"819:17:22"},"returnParameters":{"id":4600,"nodeType":"ParameterList","parameters":[],"src":"862:0:22"},"scope":4603,"src":"808:56:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4604,"src":"768:98:22","usedErrors":[]}],"src":"38:829:22"},"id":22},"contracts/mocks/MockToken.sol":{"ast":{"absolutePath":"contracts/mocks/MockToken.sol","exportedSymbols":{"Context":[3708],"ERC20":[3583],"IERC20":[3661],"IERC20Metadata":[3686],"MockToken":[4644]},"id":4645,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4605,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"33:23:23"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":4606,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4645,"sourceUnit":3584,"src":"58:55:23","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4607,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"155:5:23"},"id":4608,"nodeType":"InheritanceSpecifier","src":"155:5:23"}],"canonicalName":"MockToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4644,"linearizedBaseContracts":[4644,3583,3686,3661,3708],"name":"MockToken","nameLocation":"142:9:23","nodeType":"ContractDefinition","nodes":[{"body":{"id":4629,"nodeType":"Block","src":"267:84:23","statements":[{"expression":{"arguments":[{"expression":{"id":4620,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"283:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"283:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"},"id":4626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"315f3030305f3030305f303030","id":4622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295:13:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1_000_000_000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":4625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":4624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"315:2:23","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"311:6:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"295:22:23","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"}],"id":4619,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"277:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"277:41:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4628,"nodeType":"ExpressionStatement","src":"277:41:23"}]},"id":4630,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4615,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"251:5:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4616,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"258:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":4617,"kind":"baseConstructorSpecifier","modifierName":{"id":4614,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"245:5:23"},"nodeType":"ModifierInvocation","src":"245:21:23"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4610,"mutability":"mutable","name":"name_","nameLocation":"215:5:23","nodeType":"VariableDeclaration","scope":4630,"src":"201:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4609,"name":"string","nodeType":"ElementaryTypeName","src":"201:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4612,"mutability":"mutable","name":"symbol_","nameLocation":"236:7:23","nodeType":"VariableDeclaration","scope":4630,"src":"222:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4611,"name":"string","nodeType":"ElementaryTypeName","src":"222:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"200:44:23"},"returnParameters":{"id":4618,"nodeType":"ParameterList","parameters":[],"src":"267:0:23"},"scope":4644,"src":"189:162:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4642,"nodeType":"Block","src":"427:36:23","statements":[{"expression":{"arguments":[{"id":4638,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4632,"src":"443:3:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4639,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4634,"src":"448:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4637,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"437:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"437:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4641,"nodeType":"ExpressionStatement","src":"437:19:23"}]},"functionSelector":"40c10f19","id":4643,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"388:4:23","nodeType":"FunctionDefinition","parameters":{"id":4635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4632,"mutability":"mutable","name":"_to","nameLocation":"401:3:23","nodeType":"VariableDeclaration","scope":4643,"src":"393:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4631,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4634,"mutability":"mutable","name":"_amount","nameLocation":"411:7:23","nodeType":"VariableDeclaration","scope":4643,"src":"406:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4633,"name":"uint","nodeType":"ElementaryTypeName","src":"406:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:27:23"},"returnParameters":{"id":4636,"nodeType":"ParameterList","parameters":[],"src":"427:0:23"},"scope":4644,"src":"379:84:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4645,"src":"133:332:23","usedErrors":[]}],"src":"33:433:23"},"id":23},"contracts/mocks/VotingEscrowRemapperMock.sol":{"ast":{"absolutePath":"contracts/mocks/VotingEscrowRemapperMock.sol","exportedSymbols":{"IOmniVotingEscrow":[4465],"IVotingEscrow":[4518],"IVotingEscrowRemapper":[4540],"VotingEscrowRemapperMock":[4704]},"id":4705,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":4646,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:24"},{"absolutePath":"contracts/interfaces/IVotingEscrowRemapper.sol","file":"../interfaces/IVotingEscrowRemapper.sol","id":4647,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4705,"sourceUnit":4541,"src":"71:49:24","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4648,"name":"IVotingEscrowRemapper","nodeType":"IdentifierPath","referencedDeclaration":4540,"src":"159:21:24"},"id":4649,"nodeType":"InheritanceSpecifier","src":"159:21:24"}],"canonicalName":"VotingEscrowRemapperMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4704,"linearizedBaseContracts":[4704,4540],"name":"VotingEscrowRemapperMock","nameLocation":"131:24:24","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[4529],"constant":false,"functionSelector":"08b0308a","id":4652,"mutability":"mutable","name":"getVotingEscrow","nameLocation":"208:15:24","nodeType":"VariableDeclaration","scope":4704,"src":"187:36:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"},"typeName":{"id":4651,"nodeType":"UserDefinedTypeName","pathNode":{"id":4650,"name":"IVotingEscrow","nodeType":"IdentifierPath","referencedDeclaration":4518,"src":"187:13:24"},"referencedDeclaration":4518,"src":"187:13:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"visibility":"public"},{"constant":false,"functionSelector":"e996a306","id":4658,"mutability":"mutable","name":"_localToRemoteAddressMap","nameLocation":"284:24:24","nodeType":"VariableDeclaration","scope":4704,"src":"230:78:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"},"typeName":{"id":4657,"keyType":{"id":4653,"name":"uint16","nodeType":"ElementaryTypeName","src":"238:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"230:46:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"},"valueType":{"id":4656,"keyType":{"id":4654,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"248:27:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":4655,"name":"address","nodeType":"ElementaryTypeName","src":"267:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"public"},{"body":{"id":4669,"nodeType":"Block","src":"350:63:24","statements":[{"expression":{"id":4667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4663,"name":"getVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"360:15:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4665,"name":"_votingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"392:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4664,"name":"IVotingEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4518,"src":"378:13:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVotingEscrow_$4518_$","typeString":"type(contract IVotingEscrow)"}},"id":4666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"378:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"src":"360:46:24","typeDescriptions":{"typeIdentifier":"t_contract$_IVotingEscrow_$4518","typeString":"contract IVotingEscrow"}},"id":4668,"nodeType":"ExpressionStatement","src":"360:46:24"}]},"id":4670,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4660,"mutability":"mutable","name":"_votingEscrow","nameLocation":"335:13:24","nodeType":"VariableDeclaration","scope":4670,"src":"327:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4659,"name":"address","nodeType":"ElementaryTypeName","src":"327:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"326:23:24"},"returnParameters":{"id":4662,"nodeType":"ParameterList","parameters":[],"src":"350:0:24"},"scope":4704,"src":"315:98:24","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4539],"body":{"id":4685,"nodeType":"Block","src":"514:73:24","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":4679,"name":"_localToRemoteAddressMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"531:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"}},"id":4681,"indexExpression":{"id":4680,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4674,"src":"556:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"531:37:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4683,"indexExpression":{"id":4682,"name":"_localUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4672,"src":"569:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"531:49:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4678,"id":4684,"nodeType":"Return","src":"524:56:24"}]},"functionSelector":"bda75c38","id":4686,"implemented":true,"kind":"function","modifiers":[],"name":"getRemoteUser","nameLocation":"428:13:24","nodeType":"FunctionDefinition","parameters":{"id":4675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4672,"mutability":"mutable","name":"_localUser","nameLocation":"450:10:24","nodeType":"VariableDeclaration","scope":4686,"src":"442:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4671,"name":"address","nodeType":"ElementaryTypeName","src":"442:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4674,"mutability":"mutable","name":"_dstChainId","nameLocation":"469:11:24","nodeType":"VariableDeclaration","scope":4686,"src":"462:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4673,"name":"uint16","nodeType":"ElementaryTypeName","src":"462:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"441:40:24"},"returnParameters":{"id":4678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4686,"src":"505:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4676,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"504:9:24"},"scope":4704,"src":"419:168:24","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4702,"nodeType":"Block","src":"666:80:24","statements":[{"expression":{"id":4700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4693,"name":"_localToRemoteAddressMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"676:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_address_$_$","typeString":"mapping(uint16 => mapping(address => address))"}},"id":4697,"indexExpression":{"id":4694,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4690,"src":"701:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"676:37:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4698,"indexExpression":{"expression":{"id":4695,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"714:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"714:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"676:49:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4699,"name":"_remoteUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4688,"src":"728:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"676:63:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4701,"nodeType":"ExpressionStatement","src":"676:63:24"}]},"functionSelector":"d0ff58ba","id":4703,"implemented":true,"kind":"function","modifiers":[],"name":"setRemoteUser","nameLocation":"602:13:24","nodeType":"FunctionDefinition","parameters":{"id":4691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4688,"mutability":"mutable","name":"_remoteUser","nameLocation":"624:11:24","nodeType":"VariableDeclaration","scope":4703,"src":"616:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4687,"name":"address","nodeType":"ElementaryTypeName","src":"616:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4690,"mutability":"mutable","name":"_dstChainId","nameLocation":"644:11:24","nodeType":"VariableDeclaration","scope":4703,"src":"637:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4689,"name":"uint16","nodeType":"ElementaryTypeName","src":"637:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"615:41:24"},"returnParameters":{"id":4692,"nodeType":"ParameterList","parameters":[],"src":"666:0:24"},"scope":4704,"src":"593:153:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4705,"src":"122:626:24","usedErrors":[]}],"src":"46:703:24"},"id":24}},"contracts":{"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol":{"ILayerZeroEndpoint":{"abi":[{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParam","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_destination","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParam\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_destination\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":\"ILayerZeroEndpoint\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol":{"ILayerZeroReceiver":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"lzReceive(uint16,bytes,uint64,bytes)":"001d3567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol":{"ILayerZeroUserApplicationConfig":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"forceResumeReceive(uint16,bytes)":"42d65a8d","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":\"ILayerZeroUserApplicationConfig\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol":{"LzLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dd45bb7c68d1288aa6bf57d783daed5fa71495dee80aa29d6f8790585ee1534164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD GASLIMIT 0xBB PUSH29 0x68D1288AA6BF57D783DAED5FA71495DEE80AA29D6F8790585EE1534164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"98:3212:3:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;98:3212:3;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dd45bb7c68d1288aa6bf57d783daed5fa71495dee80aa29d6f8790585ee1534164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD GASLIMIT 0xBB PUSH29 0x68D1288AA6BF57D783DAED5FA71495DEE80AA29D6F8790585EE1534164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"98:3212:3:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addressToBytes32(address)":"infinite","buildAdapterParams(struct LzLib.AirdropParams memory,uint256)":"infinite","buildAirdropAdapterParams(uint256,struct LzLib.AirdropParams memory)":"infinite","buildDefaultAdapterParams(uint256)":"infinite","bytes32ToAddress(bytes32)":"infinite","decodeAdapterParams(bytes memory)":"infinite","getGasLimit(bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":\"LzLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"LzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":\"LzApp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"precrime","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"NonblockingLzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":\"NonblockingLzApp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol":{"LZEndpointMock":{"abi":[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ValueTransferFailed","type":"event"},{"inputs":[],"name":"blockNextMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdapterParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getLengthOfQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lzEndpointLookup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"msgsToDeliver","outputs":[{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMsgBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeConfig","outputs":[{"internalType":"uint256","name":"zroFee","type":"uint256"},{"internalType":"uint256","name":"nativeBP","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerFeeConfig","outputs":[{"internalType":"uint128","name":"dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"baseGas","type":"uint64"},{"internalType":"uint64","name":"gasPerByte","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"setDefaultAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destAddr","type":"address"},{"internalType":"address","name":"lzEndpointAddr","type":"address"}],"name":"setDestLzEndpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleFee","type":"uint256"}],"name":"setOracleFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"},{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"_dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"_dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"_baseGas","type":"uint64"},{"internalType":"uint64","name":"_gasPerByte","type":"uint64"}],"name":"setRelayerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1343":{"entryPoint":null,"id":1343,"parameterSlots":1,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":296,"id":258,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"extract_byte_array_length":{"entryPoint":548,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:958:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"94:196:25","statements":[{"body":{"nodeType":"YulBlock","src":"140:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"149:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"152:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"142:6:25"},"nodeType":"YulFunctionCall","src":"142:12:25"},"nodeType":"YulExpressionStatement","src":"142:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"115:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"124:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"111:3:25"},"nodeType":"YulFunctionCall","src":"111:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"136:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"107:3:25"},"nodeType":"YulFunctionCall","src":"107:32:25"},"nodeType":"YulIf","src":"104:52:25"},{"nodeType":"YulVariableDeclaration","src":"165:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"184:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"178:5:25"},"nodeType":"YulFunctionCall","src":"178:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"246:6:25"},"nodeType":"YulFunctionCall","src":"246:12:25"},"nodeType":"YulExpressionStatement","src":"246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"234:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"223:3:25"},"nodeType":"YulFunctionCall","src":"223:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"213:2:25"},"nodeType":"YulFunctionCall","src":"213:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"206:6:25"},"nodeType":"YulFunctionCall","src":"206:37:25"},"nodeType":"YulIf","src":"203:57:25"},{"nodeType":"YulAssignment","src":"269:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"279:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"269:6:25"}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"60:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"71:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"83:6:25","type":""}],"src":"14:276:25"},{"body":{"nodeType":"YulBlock","src":"440:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"457:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"475:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"488:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"493:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"484:3:25"},"nodeType":"YulFunctionCall","src":"484:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"462:3:25"},"nodeType":"YulFunctionCall","src":"462:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"450:6:25"},"nodeType":"YulFunctionCall","src":"450:51:25"},"nodeType":"YulExpressionStatement","src":"450:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"521:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"526:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"530:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"510:6:25"},"nodeType":"YulFunctionCall","src":"510:27:25"},"nodeType":"YulExpressionStatement","src":"510:27:25"},{"nodeType":"YulAssignment","src":"546:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"557:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"562:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"553:3:25"},"nodeType":"YulFunctionCall","src":"553:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"546:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"408:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"413:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"421:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"432:3:25","type":""}],"src":"295:276:25"},{"body":{"nodeType":"YulBlock","src":"631:325:25","statements":[{"nodeType":"YulAssignment","src":"641:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"655:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"658:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"651:3:25"},"nodeType":"YulFunctionCall","src":"651:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"641:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"672:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"702:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"698:3:25"},"nodeType":"YulFunctionCall","src":"698:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"676:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"749:31:25","statements":[{"nodeType":"YulAssignment","src":"751:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"765:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"773:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"751:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"729:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"722:6:25"},"nodeType":"YulFunctionCall","src":"722:26:25"},"nodeType":"YulIf","src":"719:61:25"},{"body":{"nodeType":"YulBlock","src":"839:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"860:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"867:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"872:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"863:3:25"},"nodeType":"YulFunctionCall","src":"863:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"853:6:25"},"nodeType":"YulFunctionCall","src":"853:31:25"},"nodeType":"YulExpressionStatement","src":"853:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"907:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"897:6:25"},"nodeType":"YulFunctionCall","src":"897:15:25"},"nodeType":"YulExpressionStatement","src":"897:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"932:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"925:6:25"},"nodeType":"YulFunctionCall","src":"925:15:25"},"nodeType":"YulExpressionStatement","src":"925:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"795:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"826:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"815:2:25"},"nodeType":"YulFunctionCall","src":"815:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"792:2:25"},"nodeType":"YulFunctionCall","src":"792:38:25"},"nodeType":"YulIf","src":"789:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"611:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"620:6:25","type":""}],"src":"576:380:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff19166101011790553480156200002057600080fd5b50604051620030b7380380620030b78339810160408190526200004391620001f7565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e8918301829052600455600555662386f26fc100006006556200010a9062030d409062000128811b62001c9d17901c565b8051620001209160079160209091019062000151565b505062000261565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b8280546200015f9062000224565b90600052602060002090601f016020900481019282620001835760008555620001ce565b82601f106200019e57805160ff1916838001178555620001ce565b82800160010185558215620001ce579182015b82811115620001ce578251825591602001919060010190620001b1565b50620001dc929150620001e0565b5090565b5b80821115620001dc5760008155600101620001e1565b6000602082840312156200020a57600080fd5b815161ffff811681146200021d57600080fd5b9392505050565b600181811c908216806200023957607f821691505b602082108114156200025b57634e487b7160e01b600052602260045260246000fd5b50919050565b612e4680620002716000396000f3fe60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220384edda9ae8a264ade4ab6af65ffc5d1d0b63daa1521cc15633806bc2a19631664736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x30B7 CODESIZE SUB DUP1 PUSH3 0x30B7 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x43 SWAP2 PUSH3 0x1F7 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP4 AND OR DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH5 0x2540BE400 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0x8AC7230489E80000 DUP3 DUP5 ADD MSTORE PUSH1 0x64 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH21 0x2540BE400000000000000000000000002540BE400 PUSH1 0x2 SSTORE PUSH25 0x1000000000000006400000000000000008AC7230489E80000 PUSH1 0x3 SSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH8 0xDE0B6B3A7640000 DUP1 DUP3 MSTORE PUSH2 0x3E8 SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x4 SSTORE PUSH1 0x5 SSTORE PUSH7 0x2386F26FC10000 PUSH1 0x6 SSTORE PUSH3 0x10A SWAP1 PUSH3 0x30D40 SWAP1 PUSH3 0x128 DUP2 SHL PUSH3 0x1C9D OR SWAP1 SHR JUMP JUMPDEST DUP1 MLOAD PUSH3 0x120 SWAP2 PUSH1 0x7 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x151 JUMP JUMPDEST POP POP PUSH3 0x261 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x15F SWAP1 PUSH3 0x224 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x183 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1CE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x19E JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1CE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1CE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1CE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B1 JUMP JUMPDEST POP PUSH3 0x1DC SWAP3 SWAP2 POP PUSH3 0x1E0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH3 0x21D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x239 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E46 DUP1 PUSH3 0x271 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x4E 0xDD 0xA9 0xAE DUP11 0x26 0x4A 0xDE 0x4A 0xB6 0xAF PUSH6 0xFFC5D1D0B63D 0xAA ISZERO 0x21 0xCC ISZERO PUSH4 0x3806BC2A NOT PUSH4 0x1664736F PUSH13 0x634300080A0033000000000000 ","sourceMap":"817:15467:6:-:0;;;1950:38;;;-1:-1:-1;;1994:41:6;;;;;3379:530;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3418:11;:22;;-1:-1:-1;;3418:22:6;;;;;;;3493:222;;;;;;;;3539:4;3493:222;;;;;;;;;;;3647:4;3493:222;;;;3674:3;3493:222;;;;;;;;;;;;3474:241;:16;:241;;;;3745:49;;;;;;;;3772:4;3745:49;;;3788:4;3745:49;;;;;;3725:17;:69;;;3826:4;3814:9;:16;3863:39;;3895:6;;3863:31;;;;;:39;;:::i;:::-;3840:62;;;;:20;;:62;;;;;;:::i;:::-;;3379:530;817:15467;;918:238:3;1114:35;;;-1:-1:-1;;;1114:35:3;;;450:51:25;517:11;;;;510:27;;;;1114:35:3;;;;;;;;;;553:12:25;;1114:35:3;;;918:238::o;817:15467:6:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:15467:6;;;-1:-1:-1;817:15467:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:276:25;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:6;227:5;223:18;216:5;213:29;203:57;;256:1;253;246:12;203:57;279:5;14:276;-1:-1:-1;;;14:276:25:o;576:380::-;655:1;651:12;;;;698;;;719:61;;773:4;765:6;761:17;751:27;;719:61;826:2;818:6;815:14;795:18;792:38;789:161;;;872:10;867:3;863:20;860:1;853:31;907:4;904:1;897:15;935:4;932:1;925:15;789:161;;576:380;;;:::o;:::-;817:15467:6;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_2326":{"entryPoint":7837,"id":2326,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_2356":{"entryPoint":7776,"id":2356,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_2452":{"entryPoint":7366,"id":2452,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_2175":{"entryPoint":null,"id":2175,"parameterSlots":0,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":7325,"id":258,"parameterSlots":1,"returnSlots":1},"@decodeAdapterParams_375":{"entryPoint":8340,"id":375,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_1168":{"entryPoint":2595,"id":1168,"parameterSlots":0,"returnSlots":0},"@estimateFees_1824":{"entryPoint":2737,"id":1824,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_2150":{"entryPoint":2992,"id":2150,"parameterSlots":3,"returnSlots":0},"@getChainId_1833":{"entryPoint":null,"id":1833,"parameterSlots":0,"returnSlots":1},"@getConfig_2029":{"entryPoint":null,"id":2029,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_1743":{"entryPoint":7256,"id":1743,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_2167":{"entryPoint":3319,"id":2167,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_1760":{"entryPoint":null,"id":1760,"parameterSlots":2,"returnSlots":1},"@getReceiveLibraryAddress_1990":{"entryPoint":null,"id":1990,"parameterSlots":1,"returnSlots":1},"@getReceiveVersion_2051":{"entryPoint":null,"id":2051,"parameterSlots":1,"returnSlots":1},"@getSendLibraryAddress_1976":{"entryPoint":null,"id":1976,"parameterSlots":1,"returnSlots":1},"@getSendVersion_2040":{"entryPoint":null,"id":2040,"parameterSlots":1,"returnSlots":1},"@hasStoredPayload_1962":{"entryPoint":2272,"id":1962,"parameterSlots":3,"returnSlots":1},"@inboundNonce_1174":{"entryPoint":null,"id":1174,"parameterSlots":0,"returnSlots":0},"@isReceivingPayload_2012":{"entryPoint":null,"id":2012,"parameterSlots":0,"returnSlots":1},"@isSendingPayload_2001":{"entryPoint":null,"id":2001,"parameterSlots":0,"returnSlots":1},"@lzEndpointLookup_1154":{"entryPoint":null,"id":1154,"parameterSlots":0,"returnSlots":0},"@mockChainId_1156":{"entryPoint":null,"id":1156,"parameterSlots":0,"returnSlots":0},"@msgsToDeliver_1195":{"entryPoint":2342,"id":1195,"parameterSlots":0,"returnSlots":0},"@nextMsgBlocked_1158":{"entryPoint":null,"id":1158,"parameterSlots":0,"returnSlots":0},"@oracleFee_1166":{"entryPoint":null,"id":1166,"parameterSlots":0,"returnSlots":0},"@outboundNonce_1180":{"entryPoint":null,"id":1180,"parameterSlots":0,"returnSlots":0},"@protocolFeeConfig_1164":{"entryPoint":null,"id":1164,"parameterSlots":0,"returnSlots":0},"@receivePayload_1726":{"entryPoint":3913,"id":1726,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_1161":{"entryPoint":null,"id":1161,"parameterSlots":0,"returnSlots":0},"@retryPayload_1934":{"entryPoint":3379,"id":1934,"parameterSlots":5,"returnSlots":0},"@send_1519":{"entryPoint":5798,"id":1519,"parameterSlots":7,"returnSlots":0},"@setConfig_2064":{"entryPoint":null,"id":2064,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_2273":{"entryPoint":7233,"id":2273,"parameterSlots":1,"returnSlots":0},"@setDestLzEndpoint_2189":{"entryPoint":null,"id":2189,"parameterSlots":2,"returnSlots":0},"@setOracleFee_2263":{"entryPoint":null,"id":2263,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_2253":{"entryPoint":null,"id":2253,"parameterSlots":2,"returnSlots":0},"@setReceiveVersion_2078":{"entryPoint":null,"id":2078,"parameterSlots":1,"returnSlots":0},"@setRelayerPrice_2233":{"entryPoint":null,"id":2233,"parameterSlots":5,"returnSlots":0},"@setSendVersion_2071":{"entryPoint":null,"id":2071,"parameterSlots":1,"returnSlots":0},"@storedPayload_1187":{"entryPoint":null,"id":1187,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":9058,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":9029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":10242,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":10826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":9696,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":8981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":10034,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":9797,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9130,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":10272,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":10089,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":9957,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":10447,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":9374,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10749,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":10646,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":10217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":9597,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint128":{"entryPoint":9650,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint16":{"entryPoint":8958,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":9673,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":11007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10886,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9537,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11048,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11339,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed":{"entryPoint":11155,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11078,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11695,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11453,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10983,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":11657,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11590,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":11610,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11267,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":10902,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":11312,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint64":{"entryPoint":11228,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10961,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11568,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":11770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11290,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9212,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9008,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:26605:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"143:119:25","statements":[{"nodeType":"YulAssignment","src":"153:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"165:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"176:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"161:3:25"},"nodeType":"YulFunctionCall","src":"161:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"153:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"206:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"188:6:25"},"nodeType":"YulFunctionCall","src":"188:25:25"},"nodeType":"YulExpressionStatement","src":"188:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"233:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"229:3:25"},"nodeType":"YulFunctionCall","src":"229:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"249:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"222:6:25"},"nodeType":"YulFunctionCall","src":"222:34:25"},"nodeType":"YulExpressionStatement","src":"222:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"115:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"123:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"134:4:25","type":""}],"src":"14:248:25"},{"body":{"nodeType":"YulBlock","src":"315:111:25","statements":[{"nodeType":"YulAssignment","src":"325:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"325:5:25"}]},{"body":{"nodeType":"YulBlock","src":"404:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"413:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"416:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"406:6:25"},"nodeType":"YulFunctionCall","src":"406:12:25"},"nodeType":"YulExpressionStatement","src":"406:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"376:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"387:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"394:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"383:3:25"},"nodeType":"YulFunctionCall","src":"383:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"373:2:25"},"nodeType":"YulFunctionCall","src":"373:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"366:6:25"},"nodeType":"YulFunctionCall","src":"366:37:25"},"nodeType":"YulIf","src":"363:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"294:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"305:5:25","type":""}],"src":"267:159:25"},{"body":{"nodeType":"YulBlock","src":"500:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"546:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"555:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"558:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"548:6:25"},"nodeType":"YulFunctionCall","src":"548:12:25"},"nodeType":"YulExpressionStatement","src":"548:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"521:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"530:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"542:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"513:3:25"},"nodeType":"YulFunctionCall","src":"513:32:25"},"nodeType":"YulIf","src":"510:52:25"},{"nodeType":"YulAssignment","src":"571:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"599:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"581:17:25"},"nodeType":"YulFunctionCall","src":"581:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"571:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"466:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"477:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"489:6:25","type":""}],"src":"431:184:25"},{"body":{"nodeType":"YulBlock","src":"665:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"729:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"738:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"741:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"731:6:25"},"nodeType":"YulFunctionCall","src":"731:12:25"},"nodeType":"YulExpressionStatement","src":"731:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"699:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"714:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"719:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"710:3:25"},"nodeType":"YulFunctionCall","src":"710:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"723:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"706:3:25"},"nodeType":"YulFunctionCall","src":"706:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"695:3:25"},"nodeType":"YulFunctionCall","src":"695:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"685:2:25"},"nodeType":"YulFunctionCall","src":"685:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:50:25"},"nodeType":"YulIf","src":"675:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"654:5:25","type":""}],"src":"620:131:25"},{"body":{"nodeType":"YulBlock","src":"826:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"872:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"881:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"884:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"874:6:25"},"nodeType":"YulFunctionCall","src":"874:12:25"},"nodeType":"YulExpressionStatement","src":"874:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"847:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"843:3:25"},"nodeType":"YulFunctionCall","src":"843:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"868:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"839:3:25"},"nodeType":"YulFunctionCall","src":"839:32:25"},"nodeType":"YulIf","src":"836:52:25"},{"nodeType":"YulVariableDeclaration","src":"897:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"910:12:25"},"nodeType":"YulFunctionCall","src":"910:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"901:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"967:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"942:24:25"},"nodeType":"YulFunctionCall","src":"942:31:25"},"nodeType":"YulExpressionStatement","src":"942:31:25"},{"nodeType":"YulAssignment","src":"982:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"992:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"792:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"803:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"815:6:25","type":""}],"src":"756:247:25"},{"body":{"nodeType":"YulBlock","src":"1107:89:25","statements":[{"nodeType":"YulAssignment","src":"1117:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1129:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1125:3:25"},"nodeType":"YulFunctionCall","src":"1125:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1117:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1159:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1174:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1182:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1170:3:25"},"nodeType":"YulFunctionCall","src":"1170:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1152:6:25"},"nodeType":"YulFunctionCall","src":"1152:38:25"},"nodeType":"YulExpressionStatement","src":"1152:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1076:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1087:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1098:4:25","type":""}],"src":"1008:188:25"},{"body":{"nodeType":"YulBlock","src":"1273:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"1322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1324:6:25"},"nodeType":"YulFunctionCall","src":"1324:12:25"},"nodeType":"YulExpressionStatement","src":"1324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1309:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1297:3:25"},"nodeType":"YulFunctionCall","src":"1297:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"1316:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1293:3:25"},"nodeType":"YulFunctionCall","src":"1293:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1286:6:25"},"nodeType":"YulFunctionCall","src":"1286:35:25"},"nodeType":"YulIf","src":"1283:55:25"},{"nodeType":"YulAssignment","src":"1347:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1357:12:25"},"nodeType":"YulFunctionCall","src":"1357:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1347:6:25"}]},{"body":{"nodeType":"YulBlock","src":"1420:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1429:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1432:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1422:6:25"},"nodeType":"YulFunctionCall","src":"1422:12:25"},"nodeType":"YulExpressionStatement","src":"1422:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1392:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1400:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:25"},"nodeType":"YulFunctionCall","src":"1389:30:25"},"nodeType":"YulIf","src":"1386:50:25"},{"nodeType":"YulAssignment","src":"1445:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1461:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1457:3:25"},"nodeType":"YulFunctionCall","src":"1457:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1445:8:25"}]},{"body":{"nodeType":"YulBlock","src":"1526:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1535:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1538:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1528:6:25"},"nodeType":"YulFunctionCall","src":"1528:12:25"},"nodeType":"YulExpressionStatement","src":"1528:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1497:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"1505:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"1514:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1489:3:25"},"nodeType":"YulFunctionCall","src":"1489:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"1521:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1486:2:25"},"nodeType":"YulFunctionCall","src":"1486:39:25"},"nodeType":"YulIf","src":"1483:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1236:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"1244:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1252:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"1262:6:25","type":""}],"src":"1201:347:25"},{"body":{"nodeType":"YulBlock","src":"1658:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"1704:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1713:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1706:6:25"},"nodeType":"YulFunctionCall","src":"1706:12:25"},"nodeType":"YulExpressionStatement","src":"1706:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1679:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1688:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1675:3:25"},"nodeType":"YulFunctionCall","src":"1675:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1700:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1671:3:25"},"nodeType":"YulFunctionCall","src":"1671:32:25"},"nodeType":"YulIf","src":"1668:52:25"},{"nodeType":"YulAssignment","src":"1729:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1757:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1739:17:25"},"nodeType":"YulFunctionCall","src":"1739:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1729:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1776:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1803:3:25"},"nodeType":"YulFunctionCall","src":"1803:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1790:12:25"},"nodeType":"YulFunctionCall","src":"1790:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1865:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1874:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1877:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1867:6:25"},"nodeType":"YulFunctionCall","src":"1867:12:25"},"nodeType":"YulExpressionStatement","src":"1867:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1837:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1845:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1834:2:25"},"nodeType":"YulFunctionCall","src":"1834:30:25"},"nodeType":"YulIf","src":"1831:50:25"},{"nodeType":"YulVariableDeclaration","src":"1890:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1946:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1957:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1942:3:25"},"nodeType":"YulFunctionCall","src":"1942:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1966:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1916:25:25"},"nodeType":"YulFunctionCall","src":"1916:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1894:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1904:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1983:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1993:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1983:6:25"}]},{"nodeType":"YulAssignment","src":"2010:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2020:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2010:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1639:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1553:481:25"},{"body":{"nodeType":"YulBlock","src":"2134:92:25","statements":[{"nodeType":"YulAssignment","src":"2144:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2156:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2167:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2152:3:25"},"nodeType":"YulFunctionCall","src":"2152:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2144:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2186:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2211:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2204:6:25"},"nodeType":"YulFunctionCall","src":"2204:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2197:6:25"},"nodeType":"YulFunctionCall","src":"2197:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:25"},"nodeType":"YulFunctionCall","src":"2179:41:25"},"nodeType":"YulExpressionStatement","src":"2179:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2103:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2114:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2125:4:25","type":""}],"src":"2039:187:25"},{"body":{"nodeType":"YulBlock","src":"2263:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2280:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2287:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2292:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2283:3:25"},"nodeType":"YulFunctionCall","src":"2283:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2273:6:25"},"nodeType":"YulFunctionCall","src":"2273:31:25"},"nodeType":"YulExpressionStatement","src":"2273:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2320:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2323:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2313:6:25"},"nodeType":"YulFunctionCall","src":"2313:15:25"},"nodeType":"YulExpressionStatement","src":"2313:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2344:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2347:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2337:6:25"},"nodeType":"YulFunctionCall","src":"2337:15:25"},"nodeType":"YulExpressionStatement","src":"2337:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2231:127:25"},{"body":{"nodeType":"YulBlock","src":"2415:666:25","statements":[{"body":{"nodeType":"YulBlock","src":"2464:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2473:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2476:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2466:6:25"},"nodeType":"YulFunctionCall","src":"2466:12:25"},"nodeType":"YulExpressionStatement","src":"2466:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2443:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2451:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2439:3:25"},"nodeType":"YulFunctionCall","src":"2439:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"2458:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2435:3:25"},"nodeType":"YulFunctionCall","src":"2435:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2428:6:25"},"nodeType":"YulFunctionCall","src":"2428:35:25"},"nodeType":"YulIf","src":"2425:55:25"},{"nodeType":"YulVariableDeclaration","src":"2489:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2512:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2499:12:25"},"nodeType":"YulFunctionCall","src":"2499:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2493:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2528:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"2538:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2532:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2579:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2581:16:25"},"nodeType":"YulFunctionCall","src":"2581:18:25"},"nodeType":"YulExpressionStatement","src":"2581:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2571:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2575:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2568:2:25"},"nodeType":"YulFunctionCall","src":"2568:10:25"},"nodeType":"YulIf","src":"2565:36:25"},{"nodeType":"YulVariableDeclaration","src":"2610:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2624:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2620:3:25"},"nodeType":"YulFunctionCall","src":"2620:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2614:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2636:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2656:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2650:5:25"},"nodeType":"YulFunctionCall","src":"2650:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2640:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2668:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2690:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2714:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"2718:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2710:3:25"},"nodeType":"YulFunctionCall","src":"2710:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2725:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2706:3:25"},"nodeType":"YulFunctionCall","src":"2706:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2702:3:25"},"nodeType":"YulFunctionCall","src":"2702:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2698:3:25"},"nodeType":"YulFunctionCall","src":"2698:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2686:3:25"},"nodeType":"YulFunctionCall","src":"2686:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2672:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2798:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2800:16:25"},"nodeType":"YulFunctionCall","src":"2800:18:25"},"nodeType":"YulExpressionStatement","src":"2800:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2757:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2769:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2754:2:25"},"nodeType":"YulFunctionCall","src":"2754:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2777:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2789:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2774:2:25"},"nodeType":"YulFunctionCall","src":"2774:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2751:2:25"},"nodeType":"YulFunctionCall","src":"2751:46:25"},"nodeType":"YulIf","src":"2748:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2836:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2840:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2829:6:25"},"nodeType":"YulFunctionCall","src":"2829:22:25"},"nodeType":"YulExpressionStatement","src":"2829:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2867:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2875:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2860:6:25"},"nodeType":"YulFunctionCall","src":"2860:18:25"},"nodeType":"YulExpressionStatement","src":"2860:18:25"},{"body":{"nodeType":"YulBlock","src":"2926:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2935:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2928:6:25"},"nodeType":"YulFunctionCall","src":"2928:12:25"},"nodeType":"YulExpressionStatement","src":"2928:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2901:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2909:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"2914:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2893:3:25"},"nodeType":"YulFunctionCall","src":"2893:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"2921:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2890:2:25"},"nodeType":"YulFunctionCall","src":"2890:35:25"},"nodeType":"YulIf","src":"2887:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2968:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2976:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2964:3:25"},"nodeType":"YulFunctionCall","src":"2964:17:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2983:3:25"},"nodeType":"YulFunctionCall","src":"2983:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3002:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2951:12:25"},"nodeType":"YulFunctionCall","src":"2951:54:25"},"nodeType":"YulExpressionStatement","src":"2951:54:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3029:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3037:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3025:3:25"},"nodeType":"YulFunctionCall","src":"3025:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"3042:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:25"},"nodeType":"YulFunctionCall","src":"3021:26:25"},{"kind":"number","nodeType":"YulLiteral","src":"3049:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3014:6:25"},"nodeType":"YulFunctionCall","src":"3014:37:25"},"nodeType":"YulExpressionStatement","src":"3014:37:25"},{"nodeType":"YulAssignment","src":"3060:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3069:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3060:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2389:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"2397:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2405:5:25","type":""}],"src":"2363:718:25"},{"body":{"nodeType":"YulBlock","src":"3198:348:25","statements":[{"body":{"nodeType":"YulBlock","src":"3244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3246:6:25"},"nodeType":"YulFunctionCall","src":"3246:12:25"},"nodeType":"YulExpressionStatement","src":"3246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3219:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3228:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3215:3:25"},"nodeType":"YulFunctionCall","src":"3215:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3240:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3211:3:25"},"nodeType":"YulFunctionCall","src":"3211:32:25"},"nodeType":"YulIf","src":"3208:52:25"},{"nodeType":"YulAssignment","src":"3269:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3297:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3279:17:25"},"nodeType":"YulFunctionCall","src":"3279:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3269:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3316:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3347:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3358:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3343:3:25"},"nodeType":"YulFunctionCall","src":"3343:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3330:12:25"},"nodeType":"YulFunctionCall","src":"3330:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3320:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3405:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3414:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3417:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3407:6:25"},"nodeType":"YulFunctionCall","src":"3407:12:25"},"nodeType":"YulExpressionStatement","src":"3407:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3377:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3385:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3374:2:25"},"nodeType":"YulFunctionCall","src":"3374:30:25"},"nodeType":"YulIf","src":"3371:50:25"},{"nodeType":"YulAssignment","src":"3430:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3461:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3472:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3457:3:25"},"nodeType":"YulFunctionCall","src":"3457:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3481:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3440:16:25"},"nodeType":"YulFunctionCall","src":"3440:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3430:6:25"}]},{"nodeType":"YulAssignment","src":"3498:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3536:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:25"},"nodeType":"YulFunctionCall","src":"3521:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3508:12:25"},"nodeType":"YulFunctionCall","src":"3508:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3498:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3148:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3159:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3171:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3179:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3187:6:25","type":""}],"src":"3086:460:25"},{"body":{"nodeType":"YulBlock","src":"3600:422:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3610:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3630:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3624:5:25"},"nodeType":"YulFunctionCall","src":"3624:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3614:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3652:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3657:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3645:6:25"},"nodeType":"YulFunctionCall","src":"3645:19:25"},"nodeType":"YulExpressionStatement","src":"3645:19:25"},{"nodeType":"YulVariableDeclaration","src":"3673:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3682:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3677:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3744:110:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3758:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3768:4:25","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3762:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3800:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"3805:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3796:3:25"},"nodeType":"YulFunctionCall","src":"3796:11:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3809:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:25"},"nodeType":"YulFunctionCall","src":"3792:20:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3828:5:25"},{"name":"i","nodeType":"YulIdentifier","src":"3835:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3824:3:25"},"nodeType":"YulFunctionCall","src":"3824:13:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3839:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3820:3:25"},"nodeType":"YulFunctionCall","src":"3820:22:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3814:5:25"},"nodeType":"YulFunctionCall","src":"3814:29:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3785:6:25"},"nodeType":"YulFunctionCall","src":"3785:59:25"},"nodeType":"YulExpressionStatement","src":"3785:59:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3703:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3706:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3700:2:25"},"nodeType":"YulFunctionCall","src":"3700:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3714:21:25","statements":[{"nodeType":"YulAssignment","src":"3716:17:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3725:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"3728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:25"},"nodeType":"YulFunctionCall","src":"3721:12:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3716:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"3696:3:25","statements":[]},"src":"3692:162:25"},{"body":{"nodeType":"YulBlock","src":"3888:62:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3917:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3922:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:25"},"nodeType":"YulFunctionCall","src":"3913:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"3931:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3909:3:25"},"nodeType":"YulFunctionCall","src":"3909:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"3938:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3902:6:25"},"nodeType":"YulFunctionCall","src":"3902:38:25"},"nodeType":"YulExpressionStatement","src":"3902:38:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3869:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3872:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3866:2:25"},"nodeType":"YulFunctionCall","src":"3866:13:25"},"nodeType":"YulIf","src":"3863:87:25"},{"nodeType":"YulAssignment","src":"3959:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3974:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3995:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:25"},"nodeType":"YulFunctionCall","src":"3983:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4004:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3979:3:25"},"nodeType":"YulFunctionCall","src":"3979:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3970:3:25"},"nodeType":"YulFunctionCall","src":"3970:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:25"},"nodeType":"YulFunctionCall","src":"3966:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3959:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3577:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3584:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3592:3:25","type":""}],"src":"3551:471:25"},{"body":{"nodeType":"YulBlock","src":"4200:235:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4232:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4253:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4240:3:25"},"nodeType":"YulFunctionCall","src":"4240:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4228:3:25"},"nodeType":"YulFunctionCall","src":"4228:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4210:6:25"},"nodeType":"YulFunctionCall","src":"4210:51:25"},"nodeType":"YulExpressionStatement","src":"4210:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4281:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4292:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4277:3:25"},"nodeType":"YulFunctionCall","src":"4277:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4297:3:25"},"nodeType":"YulFunctionCall","src":"4297:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:25"},"nodeType":"YulFunctionCall","src":"4270:59:25"},"nodeType":"YulExpressionStatement","src":"4270:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4349:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:25"},"nodeType":"YulFunctionCall","src":"4345:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:25","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4338:6:25"},"nodeType":"YulFunctionCall","src":"4338:30:25"},"nodeType":"YulExpressionStatement","src":"4338:30:25"},{"nodeType":"YulAssignment","src":"4377:52:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4402:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4414:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4425:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:25"},"nodeType":"YulFunctionCall","src":"4410:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4385:16:25"},"nodeType":"YulFunctionCall","src":"4385:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4377:4:25"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4153:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4164:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4172:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4180:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4191:4:25","type":""}],"src":"4027:408:25"},{"body":{"nodeType":"YulBlock","src":"4527:161:25","statements":[{"body":{"nodeType":"YulBlock","src":"4573:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4582:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4585:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4575:6:25"},"nodeType":"YulFunctionCall","src":"4575:12:25"},"nodeType":"YulExpressionStatement","src":"4575:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4548:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4557:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4544:3:25"},"nodeType":"YulFunctionCall","src":"4544:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4569:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4540:3:25"},"nodeType":"YulFunctionCall","src":"4540:32:25"},"nodeType":"YulIf","src":"4537:52:25"},{"nodeType":"YulAssignment","src":"4598:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4608:12:25"},"nodeType":"YulFunctionCall","src":"4608:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4598:6:25"}]},{"nodeType":"YulAssignment","src":"4640:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4663:3:25"},"nodeType":"YulFunctionCall","src":"4663:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4650:12:25"},"nodeType":"YulFunctionCall","src":"4650:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4640:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4485:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4496:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4508:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4516:6:25","type":""}],"src":"4440:248:25"},{"body":{"nodeType":"YulBlock","src":"4812:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4840:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4822:6:25"},"nodeType":"YulFunctionCall","src":"4822:21:25"},"nodeType":"YulExpressionStatement","src":"4822:21:25"},{"nodeType":"YulAssignment","src":"4852:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:25"},"nodeType":"YulFunctionCall","src":"4885:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4860:16:25"},"nodeType":"YulFunctionCall","src":"4860:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4852:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4781:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4792:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4803:4:25","type":""}],"src":"4693:217:25"},{"body":{"nodeType":"YulBlock","src":"4964:139:25","statements":[{"nodeType":"YulAssignment","src":"4974:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4996:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4983:12:25"},"nodeType":"YulFunctionCall","src":"4983:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4974:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5081:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5090:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5093:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5083:6:25"},"nodeType":"YulFunctionCall","src":"5083:12:25"},"nodeType":"YulExpressionStatement","src":"5083:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5025:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5036:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5043:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5032:3:25"},"nodeType":"YulFunctionCall","src":"5032:46:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5022:2:25"},"nodeType":"YulFunctionCall","src":"5022:57:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5015:6:25"},"nodeType":"YulFunctionCall","src":"5015:65:25"},"nodeType":"YulIf","src":"5012:85:25"}]},"name":"abi_decode_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4943:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4954:5:25","type":""}],"src":"4915:188:25"},{"body":{"nodeType":"YulBlock","src":"5156:123:25","statements":[{"nodeType":"YulAssignment","src":"5166:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5188:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5175:12:25"},"nodeType":"YulFunctionCall","src":"5175:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5166:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5259:6:25"},"nodeType":"YulFunctionCall","src":"5259:12:25"},"nodeType":"YulExpressionStatement","src":"5259:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5228:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5235:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5224:3:25"},"nodeType":"YulFunctionCall","src":"5224:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5214:2:25"},"nodeType":"YulFunctionCall","src":"5214:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5207:6:25"},"nodeType":"YulFunctionCall","src":"5207:49:25"},"nodeType":"YulIf","src":"5204:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5135:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5146:5:25","type":""}],"src":"5108:171:25"},{"body":{"nodeType":"YulBlock","src":"5420:344:25","statements":[{"body":{"nodeType":"YulBlock","src":"5467:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5476:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5479:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:25"},"nodeType":"YulFunctionCall","src":"5469:12:25"},"nodeType":"YulExpressionStatement","src":"5469:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5441:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5450:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5437:3:25"},"nodeType":"YulFunctionCall","src":"5437:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5462:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5433:3:25"},"nodeType":"YulFunctionCall","src":"5433:33:25"},"nodeType":"YulIf","src":"5430:53:25"},{"nodeType":"YulAssignment","src":"5492:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5521:9:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5502:18:25"},"nodeType":"YulFunctionCall","src":"5502:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5492:6:25"}]},{"nodeType":"YulAssignment","src":"5540:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5573:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5584:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5569:3:25"},"nodeType":"YulFunctionCall","src":"5569:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5550:18:25"},"nodeType":"YulFunctionCall","src":"5550:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5540:6:25"}]},{"nodeType":"YulAssignment","src":"5597:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5630:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5641:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5626:3:25"},"nodeType":"YulFunctionCall","src":"5626:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5607:18:25"},"nodeType":"YulFunctionCall","src":"5607:38:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5597:6:25"}]},{"nodeType":"YulAssignment","src":"5654:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5686:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5697:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5682:3:25"},"nodeType":"YulFunctionCall","src":"5682:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5664:17:25"},"nodeType":"YulFunctionCall","src":"5664:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5654:6:25"}]},{"nodeType":"YulAssignment","src":"5710:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5753:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:25"},"nodeType":"YulFunctionCall","src":"5738:19:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5720:17:25"},"nodeType":"YulFunctionCall","src":"5720:38:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5710:6:25"}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5354:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5365:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5377:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5385:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5393:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5401:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5409:6:25","type":""}],"src":"5284:480:25"},{"body":{"nodeType":"YulBlock","src":"5921:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"5968:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5977:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5980:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5970:6:25"},"nodeType":"YulFunctionCall","src":"5970:12:25"},"nodeType":"YulExpressionStatement","src":"5970:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5938:3:25"},"nodeType":"YulFunctionCall","src":"5938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5963:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5934:3:25"},"nodeType":"YulFunctionCall","src":"5934:33:25"},"nodeType":"YulIf","src":"5931:53:25"},{"nodeType":"YulAssignment","src":"5993:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6021:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6003:17:25"},"nodeType":"YulFunctionCall","src":"6003:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5993:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6040:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6070:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6081:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6066:3:25"},"nodeType":"YulFunctionCall","src":"6066:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6053:12:25"},"nodeType":"YulFunctionCall","src":"6053:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6044:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6119:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6094:24:25"},"nodeType":"YulFunctionCall","src":"6094:31:25"},"nodeType":"YulExpressionStatement","src":"6094:31:25"},{"nodeType":"YulAssignment","src":"6134:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6144:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6134:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6158:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6185:3:25"},"nodeType":"YulFunctionCall","src":"6185:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6172:12:25"},"nodeType":"YulFunctionCall","src":"6172:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6162:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6213:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6217:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6268:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6280:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6270:6:25"},"nodeType":"YulFunctionCall","src":"6270:12:25"},"nodeType":"YulExpressionStatement","src":"6270:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6256:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6264:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6253:2:25"},"nodeType":"YulFunctionCall","src":"6253:14:25"},"nodeType":"YulIf","src":"6250:34:25"},{"nodeType":"YulAssignment","src":"6293:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6324:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6335:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6320:3:25"},"nodeType":"YulFunctionCall","src":"6320:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6344:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6303:16:25"},"nodeType":"YulFunctionCall","src":"6303:49:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6293:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6361:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6393:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6404:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6389:3:25"},"nodeType":"YulFunctionCall","src":"6389:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6376:12:25"},"nodeType":"YulFunctionCall","src":"6376:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6365:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6465:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6474:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6477:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6467:6:25"},"nodeType":"YulFunctionCall","src":"6467:12:25"},"nodeType":"YulExpressionStatement","src":"6467:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6430:7:25"},{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6453:7:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6446:6:25"},"nodeType":"YulFunctionCall","src":"6446:15:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6439:6:25"},"nodeType":"YulFunctionCall","src":"6439:23:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6427:2:25"},"nodeType":"YulFunctionCall","src":"6427:36:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6420:6:25"},"nodeType":"YulFunctionCall","src":"6420:44:25"},"nodeType":"YulIf","src":"6417:64:25"},{"nodeType":"YulAssignment","src":"6490:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6500:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6490:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6516:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6549:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6560:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6545:3:25"},"nodeType":"YulFunctionCall","src":"6545:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6532:12:25"},"nodeType":"YulFunctionCall","src":"6532:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6520:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6594:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6603:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6606:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6596:6:25"},"nodeType":"YulFunctionCall","src":"6596:12:25"},"nodeType":"YulExpressionStatement","src":"6596:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6580:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6590:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6577:2:25"},"nodeType":"YulFunctionCall","src":"6577:16:25"},"nodeType":"YulIf","src":"6574:36:25"},{"nodeType":"YulAssignment","src":"6619:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6650:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6661:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6646:3:25"},"nodeType":"YulFunctionCall","src":"6646:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6672:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6629:16:25"},"nodeType":"YulFunctionCall","src":"6629:51:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6619:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5855:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5866:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5878:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5886:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5894:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5902:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5910:6:25","type":""}],"src":"5769:917:25"},{"body":{"nodeType":"YulBlock","src":"6792:102:25","statements":[{"nodeType":"YulAssignment","src":"6802:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6814:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6825:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6810:3:25"},"nodeType":"YulFunctionCall","src":"6810:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6802:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6844:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6859:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6875:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6880:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6871:3:25"},"nodeType":"YulFunctionCall","src":"6871:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6884:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6867:3:25"},"nodeType":"YulFunctionCall","src":"6867:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6855:3:25"},"nodeType":"YulFunctionCall","src":"6855:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6837:6:25"},"nodeType":"YulFunctionCall","src":"6837:51:25"},"nodeType":"YulExpressionStatement","src":"6837:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6761:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6772:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6783:4:25","type":""}],"src":"6691:203:25"},{"body":{"nodeType":"YulBlock","src":"6994:297:25","statements":[{"body":{"nodeType":"YulBlock","src":"7040:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7049:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7052:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7042:6:25"},"nodeType":"YulFunctionCall","src":"7042:12:25"},"nodeType":"YulExpressionStatement","src":"7042:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7015:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7011:3:25"},"nodeType":"YulFunctionCall","src":"7011:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7036:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:32:25"},"nodeType":"YulIf","src":"7004:52:25"},{"nodeType":"YulAssignment","src":"7065:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7093:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7075:17:25"},"nodeType":"YulFunctionCall","src":"7075:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7065:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7112:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7143:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7154:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7139:3:25"},"nodeType":"YulFunctionCall","src":"7139:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7126:12:25"},"nodeType":"YulFunctionCall","src":"7126:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7116:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7201:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7210:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7213:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7203:6:25"},"nodeType":"YulFunctionCall","src":"7203:12:25"},"nodeType":"YulExpressionStatement","src":"7203:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7173:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7181:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7170:2:25"},"nodeType":"YulFunctionCall","src":"7170:30:25"},"nodeType":"YulIf","src":"7167:50:25"},{"nodeType":"YulAssignment","src":"7226:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7257:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"7268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:25"},"nodeType":"YulFunctionCall","src":"7253:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7277:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7236:16:25"},"nodeType":"YulFunctionCall","src":"7236:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7226:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6952:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6963:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6975:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6983:6:25","type":""}],"src":"6899:392:25"},{"body":{"nodeType":"YulBlock","src":"7451:213:25","statements":[{"nodeType":"YulAssignment","src":"7461:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7473:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7484:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7469:3:25"},"nodeType":"YulFunctionCall","src":"7469:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7461:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7503:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7518:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7526:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7514:3:25"},"nodeType":"YulFunctionCall","src":"7514:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7496:6:25"},"nodeType":"YulFunctionCall","src":"7496:50:25"},"nodeType":"YulExpressionStatement","src":"7496:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7566:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7577:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7562:3:25"},"nodeType":"YulFunctionCall","src":"7562:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7586:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7602:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7607:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7598:3:25"},"nodeType":"YulFunctionCall","src":"7598:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7611:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7594:3:25"},"nodeType":"YulFunctionCall","src":"7594:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7582:3:25"},"nodeType":"YulFunctionCall","src":"7582:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7555:6:25"},"nodeType":"YulFunctionCall","src":"7555:60:25"},"nodeType":"YulExpressionStatement","src":"7555:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7635:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7646:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7631:3:25"},"nodeType":"YulFunctionCall","src":"7631:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"7651:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7624:6:25"},"nodeType":"YulFunctionCall","src":"7624:34:25"},"nodeType":"YulExpressionStatement","src":"7624:34:25"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7404:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7415:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7423:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7431:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7442:4:25","type":""}],"src":"7296:368:25"},{"body":{"nodeType":"YulBlock","src":"7755:233:25","statements":[{"body":{"nodeType":"YulBlock","src":"7801:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7810:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7813:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7803:6:25"},"nodeType":"YulFunctionCall","src":"7803:12:25"},"nodeType":"YulExpressionStatement","src":"7803:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7776:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7785:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7772:3:25"},"nodeType":"YulFunctionCall","src":"7772:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7797:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7768:3:25"},"nodeType":"YulFunctionCall","src":"7768:32:25"},"nodeType":"YulIf","src":"7765:52:25"},{"nodeType":"YulAssignment","src":"7826:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7854:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7836:17:25"},"nodeType":"YulFunctionCall","src":"7836:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7826:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7873:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7903:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7914:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7899:3:25"},"nodeType":"YulFunctionCall","src":"7899:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7886:12:25"},"nodeType":"YulFunctionCall","src":"7886:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7877:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7952:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7927:24:25"},"nodeType":"YulFunctionCall","src":"7927:31:25"},"nodeType":"YulExpressionStatement","src":"7927:31:25"},{"nodeType":"YulAssignment","src":"7967:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7977:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7967:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7713:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7724:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7736:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7744:6:25","type":""}],"src":"7669:319:25"},{"body":{"nodeType":"YulBlock","src":"8092:101:25","statements":[{"nodeType":"YulAssignment","src":"8102:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8125:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8110:3:25"},"nodeType":"YulFunctionCall","src":"8110:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8102:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8159:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8167:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8155:3:25"},"nodeType":"YulFunctionCall","src":"8155:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8137:6:25"},"nodeType":"YulFunctionCall","src":"8137:50:25"},"nodeType":"YulExpressionStatement","src":"8137:50:25"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8061:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8072:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8083:4:25","type":""}],"src":"7993:200:25"},{"body":{"nodeType":"YulBlock","src":"8299:76:25","statements":[{"nodeType":"YulAssignment","src":"8309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8317:3:25"},"nodeType":"YulFunctionCall","src":"8317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8351:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8362:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8344:6:25"},"nodeType":"YulFunctionCall","src":"8344:25:25"},"nodeType":"YulExpressionStatement","src":"8344:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8290:4:25","type":""}],"src":"8198:177:25"},{"body":{"nodeType":"YulBlock","src":"8589:385:25","statements":[{"nodeType":"YulAssignment","src":"8599:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8611:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8622:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8607:3:25"},"nodeType":"YulFunctionCall","src":"8607:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8599:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"8635:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8645:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8639:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8695:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8710:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8718:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8706:3:25"},"nodeType":"YulFunctionCall","src":"8706:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8688:6:25"},"nodeType":"YulFunctionCall","src":"8688:34:25"},"nodeType":"YulExpressionStatement","src":"8688:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8738:3:25"},"nodeType":"YulFunctionCall","src":"8738:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8762:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8770:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8758:3:25"},"nodeType":"YulFunctionCall","src":"8758:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8731:6:25"},"nodeType":"YulFunctionCall","src":"8731:43:25"},"nodeType":"YulExpressionStatement","src":"8731:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8805:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8790:3:25"},"nodeType":"YulFunctionCall","src":"8790:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8814:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8822:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8810:3:25"},"nodeType":"YulFunctionCall","src":"8810:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8783:6:25"},"nodeType":"YulFunctionCall","src":"8783:43:25"},"nodeType":"YulExpressionStatement","src":"8783:43:25"},{"nodeType":"YulVariableDeclaration","src":"8835:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8845:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8839:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8894:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8879:3:25"},"nodeType":"YulFunctionCall","src":"8879:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8903:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8911:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8899:3:25"},"nodeType":"YulFunctionCall","src":"8899:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8872:6:25"},"nodeType":"YulFunctionCall","src":"8872:43:25"},"nodeType":"YulExpressionStatement","src":"8872:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8935:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8946:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8931:3:25"},"nodeType":"YulFunctionCall","src":"8931:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8956:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8952:3:25"},"nodeType":"YulFunctionCall","src":"8952:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8924:6:25"},"nodeType":"YulFunctionCall","src":"8924:44:25"},"nodeType":"YulExpressionStatement","src":"8924:44:25"}]},"name":"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8526:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8537:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8545:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8553:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8561:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8569:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8580:4:25","type":""}],"src":"8380:594:25"},{"body":{"nodeType":"YulBlock","src":"9120:648:25","statements":[{"body":{"nodeType":"YulBlock","src":"9166:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9175:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9178:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9168:6:25"},"nodeType":"YulFunctionCall","src":"9168:12:25"},"nodeType":"YulExpressionStatement","src":"9168:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9141:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9137:3:25"},"nodeType":"YulFunctionCall","src":"9137:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9162:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9133:3:25"},"nodeType":"YulFunctionCall","src":"9133:32:25"},"nodeType":"YulIf","src":"9130:52:25"},{"nodeType":"YulAssignment","src":"9191:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9219:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9201:17:25"},"nodeType":"YulFunctionCall","src":"9201:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9191:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9238:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:25"},"nodeType":"YulFunctionCall","src":"9265:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9252:12:25"},"nodeType":"YulFunctionCall","src":"9252:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9242:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9293:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"9303:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9297:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9348:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9357:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9360:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9350:6:25"},"nodeType":"YulFunctionCall","src":"9350:12:25"},"nodeType":"YulExpressionStatement","src":"9350:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9336:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9344:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9333:2:25"},"nodeType":"YulFunctionCall","src":"9333:14:25"},"nodeType":"YulIf","src":"9330:34:25"},{"nodeType":"YulVariableDeclaration","src":"9373:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9429:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9425:3:25"},"nodeType":"YulFunctionCall","src":"9425:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9449:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9399:25:25"},"nodeType":"YulFunctionCall","src":"9399:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"9377:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"9387:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9466:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"9476:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9466:6:25"}]},{"nodeType":"YulAssignment","src":"9493:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"9503:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9493:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9520:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9553:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9564:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9549:3:25"},"nodeType":"YulFunctionCall","src":"9549:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9536:12:25"},"nodeType":"YulFunctionCall","src":"9536:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9524:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9597:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9606:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9609:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9599:6:25"},"nodeType":"YulFunctionCall","src":"9599:12:25"},"nodeType":"YulExpressionStatement","src":"9599:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9583:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9593:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9580:2:25"},"nodeType":"YulFunctionCall","src":"9580:16:25"},"nodeType":"YulIf","src":"9577:36:25"},{"nodeType":"YulVariableDeclaration","src":"9622:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9678:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9689:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9674:3:25"},"nodeType":"YulFunctionCall","src":"9674:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9700:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9648:25:25"},"nodeType":"YulFunctionCall","src":"9648:60:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9626:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9636:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9717:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9727:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9717:6:25"}]},{"nodeType":"YulAssignment","src":"9744:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9754:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9744:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9054:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9065:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9077:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9085:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9093:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9101:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9109:6:25","type":""}],"src":"8979:789:25"},{"body":{"nodeType":"YulBlock","src":"9843:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"9889:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9901:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9891:6:25"},"nodeType":"YulFunctionCall","src":"9891:12:25"},"nodeType":"YulExpressionStatement","src":"9891:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9864:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9873:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9860:3:25"},"nodeType":"YulFunctionCall","src":"9860:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9885:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9856:3:25"},"nodeType":"YulFunctionCall","src":"9856:32:25"},"nodeType":"YulIf","src":"9853:52:25"},{"nodeType":"YulAssignment","src":"9914:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9937:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9924:12:25"},"nodeType":"YulFunctionCall","src":"9924:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9914:6:25"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9809:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9820:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9832:6:25","type":""}],"src":"9773:180:25"},{"body":{"nodeType":"YulBlock","src":"10045:301:25","statements":[{"body":{"nodeType":"YulBlock","src":"10091:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10100:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10103:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10093:6:25"},"nodeType":"YulFunctionCall","src":"10093:12:25"},"nodeType":"YulExpressionStatement","src":"10093:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10066:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10075:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10062:3:25"},"nodeType":"YulFunctionCall","src":"10062:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10058:3:25"},"nodeType":"YulFunctionCall","src":"10058:32:25"},"nodeType":"YulIf","src":"10055:52:25"},{"nodeType":"YulVariableDeclaration","src":"10116:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10142:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10129:12:25"},"nodeType":"YulFunctionCall","src":"10129:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10120:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10161:24:25"},"nodeType":"YulFunctionCall","src":"10161:31:25"},"nodeType":"YulExpressionStatement","src":"10161:31:25"},{"nodeType":"YulAssignment","src":"10201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10201:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10225:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10257:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10268:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10253:3:25"},"nodeType":"YulFunctionCall","src":"10253:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10240:12:25"},"nodeType":"YulFunctionCall","src":"10240:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10229:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10306:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10281:24:25"},"nodeType":"YulFunctionCall","src":"10281:33:25"},"nodeType":"YulExpressionStatement","src":"10281:33:25"},{"nodeType":"YulAssignment","src":"10323:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10333:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10323:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10003:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10014:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10026:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10034:6:25","type":""}],"src":"9958:388:25"},{"body":{"nodeType":"YulBlock","src":"10542:876:25","statements":[{"body":{"nodeType":"YulBlock","src":"10589:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10598:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10601:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10591:6:25"},"nodeType":"YulFunctionCall","src":"10591:12:25"},"nodeType":"YulExpressionStatement","src":"10591:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10563:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10572:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10559:3:25"},"nodeType":"YulFunctionCall","src":"10559:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10584:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10555:3:25"},"nodeType":"YulFunctionCall","src":"10555:33:25"},"nodeType":"YulIf","src":"10552:53:25"},{"nodeType":"YulAssignment","src":"10614:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10642:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10624:17:25"},"nodeType":"YulFunctionCall","src":"10624:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10614:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10661:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10703:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10688:3:25"},"nodeType":"YulFunctionCall","src":"10688:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10675:12:25"},"nodeType":"YulFunctionCall","src":"10675:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10665:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10716:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"10726:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10771:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10780:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10783:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10773:6:25"},"nodeType":"YulFunctionCall","src":"10773:12:25"},"nodeType":"YulExpressionStatement","src":"10773:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10759:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"10767:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10756:2:25"},"nodeType":"YulFunctionCall","src":"10756:14:25"},"nodeType":"YulIf","src":"10753:34:25"},{"nodeType":"YulVariableDeclaration","src":"10796:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10852:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"10863:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10848:3:25"},"nodeType":"YulFunctionCall","src":"10848:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10872:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10822:25:25"},"nodeType":"YulFunctionCall","src":"10822:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"10800:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"10810:8:25","type":""}]},{"nodeType":"YulAssignment","src":"10889:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"10899:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10889:6:25"}]},{"nodeType":"YulAssignment","src":"10916:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"10926:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10943:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10973:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10984:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:25"},"nodeType":"YulFunctionCall","src":"10969:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10956:12:25"},"nodeType":"YulFunctionCall","src":"10956:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10947:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11022:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10997:24:25"},"nodeType":"YulFunctionCall","src":"10997:31:25"},"nodeType":"YulExpressionStatement","src":"10997:31:25"},{"nodeType":"YulAssignment","src":"11037:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"11047:5:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11037:6:25"}]},{"nodeType":"YulAssignment","src":"11061:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11093:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11104:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11089:3:25"},"nodeType":"YulFunctionCall","src":"11089:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"11071:17:25"},"nodeType":"YulFunctionCall","src":"11071:37:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11061:6:25"}]},{"nodeType":"YulAssignment","src":"11117:43:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11155:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11140:3:25"},"nodeType":"YulFunctionCall","src":"11140:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11127:12:25"},"nodeType":"YulFunctionCall","src":"11127:33:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"11117:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11169:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11213:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11198:3:25"},"nodeType":"YulFunctionCall","src":"11198:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11185:12:25"},"nodeType":"YulFunctionCall","src":"11185:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11173:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11247:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11256:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11259:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11249:6:25"},"nodeType":"YulFunctionCall","src":"11249:12:25"},"nodeType":"YulExpressionStatement","src":"11249:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"11233:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11243:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11230:2:25"},"nodeType":"YulFunctionCall","src":"11230:16:25"},"nodeType":"YulIf","src":"11227:36:25"},{"nodeType":"YulVariableDeclaration","src":"11272:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11328:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"11339:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11324:3:25"},"nodeType":"YulFunctionCall","src":"11324:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11350:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"11298:25:25"},"nodeType":"YulFunctionCall","src":"11298:60:25"},"variables":[{"name":"value6_1","nodeType":"YulTypedName","src":"11276:8:25","type":""},{"name":"value7_1","nodeType":"YulTypedName","src":"11286:8:25","type":""}]},{"nodeType":"YulAssignment","src":"11367:18:25","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"11377:8:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"11367:6:25"}]},{"nodeType":"YulAssignment","src":"11394:18:25","value":{"name":"value7_1","nodeType":"YulIdentifier","src":"11404:8:25"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"11394:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10452:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10463:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10475:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10483:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10491:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10499:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10507:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10515:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"10523:6:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"10531:6:25","type":""}],"src":"10351:1067:25"},{"body":{"nodeType":"YulBlock","src":"11622:986:25","statements":[{"body":{"nodeType":"YulBlock","src":"11669:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11678:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11681:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11671:6:25"},"nodeType":"YulFunctionCall","src":"11671:12:25"},"nodeType":"YulExpressionStatement","src":"11671:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11643:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11639:3:25"},"nodeType":"YulFunctionCall","src":"11639:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"11664:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11635:3:25"},"nodeType":"YulFunctionCall","src":"11635:33:25"},"nodeType":"YulIf","src":"11632:53:25"},{"nodeType":"YulAssignment","src":"11694:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11722:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"11704:17:25"},"nodeType":"YulFunctionCall","src":"11704:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11694:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11741:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11772:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11783:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11768:3:25"},"nodeType":"YulFunctionCall","src":"11768:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11755:12:25"},"nodeType":"YulFunctionCall","src":"11755:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11745:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11796:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"11806:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11800:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11851:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11860:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11863:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11853:6:25"},"nodeType":"YulFunctionCall","src":"11853:12:25"},"nodeType":"YulExpressionStatement","src":"11853:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11839:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11847:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11836:2:25"},"nodeType":"YulFunctionCall","src":"11836:14:25"},"nodeType":"YulIf","src":"11833:34:25"},{"nodeType":"YulAssignment","src":"11876:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11907:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"11918:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11903:3:25"},"nodeType":"YulFunctionCall","src":"11903:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11927:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"11886:16:25"},"nodeType":"YulFunctionCall","src":"11886:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11876:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11944:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11973:3:25"},"nodeType":"YulFunctionCall","src":"11973:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11960:12:25"},"nodeType":"YulFunctionCall","src":"11960:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11948:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12021:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12030:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12033:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12023:6:25"},"nodeType":"YulFunctionCall","src":"12023:12:25"},"nodeType":"YulExpressionStatement","src":"12023:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12007:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12017:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12004:2:25"},"nodeType":"YulFunctionCall","src":"12004:16:25"},"nodeType":"YulIf","src":"12001:36:25"},{"nodeType":"YulVariableDeclaration","src":"12046:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12102:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"12113:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12098:3:25"},"nodeType":"YulFunctionCall","src":"12098:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12124:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"12072:25:25"},"nodeType":"YulFunctionCall","src":"12072:60:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"12050:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"12060:8:25","type":""}]},{"nodeType":"YulAssignment","src":"12141:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"12151:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12141:6:25"}]},{"nodeType":"YulAssignment","src":"12168:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"12178:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12168:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12195:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12221:3:25"},"nodeType":"YulFunctionCall","src":"12221:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12208:12:25"},"nodeType":"YulFunctionCall","src":"12208:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12199:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12274:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12249:24:25"},"nodeType":"YulFunctionCall","src":"12249:31:25"},"nodeType":"YulExpressionStatement","src":"12249:31:25"},{"nodeType":"YulAssignment","src":"12289:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"12299:5:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"12289:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12313:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12345:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12356:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12341:3:25"},"nodeType":"YulFunctionCall","src":"12341:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12328:12:25"},"nodeType":"YulFunctionCall","src":"12328:33:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"12317:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"12395:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12370:24:25"},"nodeType":"YulFunctionCall","src":"12370:33:25"},"nodeType":"YulExpressionStatement","src":"12370:33:25"},{"nodeType":"YulAssignment","src":"12412:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"12422:7:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"12412:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12438:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12471:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12482:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12467:3:25"},"nodeType":"YulFunctionCall","src":"12467:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12454:12:25"},"nodeType":"YulFunctionCall","src":"12454:33:25"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"12442:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12516:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12525:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12528:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12518:6:25"},"nodeType":"YulFunctionCall","src":"12518:12:25"},"nodeType":"YulExpressionStatement","src":"12518:12:25"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"12502:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12512:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12499:2:25"},"nodeType":"YulFunctionCall","src":"12499:16:25"},"nodeType":"YulIf","src":"12496:36:25"},{"nodeType":"YulAssignment","src":"12541:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12572:9:25"},{"name":"offset_2","nodeType":"YulIdentifier","src":"12583:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12568:3:25"},"nodeType":"YulFunctionCall","src":"12568:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12594:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"12551:16:25"},"nodeType":"YulFunctionCall","src":"12551:51:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"12541:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11540:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11551:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11563:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11571:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11579:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11587:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11595:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"11603:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"11611:6:25","type":""}],"src":"11423:1185:25"},{"body":{"nodeType":"YulBlock","src":"12741:405:25","statements":[{"body":{"nodeType":"YulBlock","src":"12788:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12797:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12800:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12790:6:25"},"nodeType":"YulFunctionCall","src":"12790:12:25"},"nodeType":"YulExpressionStatement","src":"12790:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12762:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"12771:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12758:3:25"},"nodeType":"YulFunctionCall","src":"12758:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"12783:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12754:3:25"},"nodeType":"YulFunctionCall","src":"12754:33:25"},"nodeType":"YulIf","src":"12751:53:25"},{"nodeType":"YulAssignment","src":"12813:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12841:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12823:17:25"},"nodeType":"YulFunctionCall","src":"12823:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12813:6:25"}]},{"nodeType":"YulAssignment","src":"12860:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12888:3:25"},"nodeType":"YulFunctionCall","src":"12888:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12870:17:25"},"nodeType":"YulFunctionCall","src":"12870:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12860:6:25"}]},{"nodeType":"YulAssignment","src":"12916:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12943:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12954:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12939:3:25"},"nodeType":"YulFunctionCall","src":"12939:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12926:12:25"},"nodeType":"YulFunctionCall","src":"12926:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12967:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13009:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12994:3:25"},"nodeType":"YulFunctionCall","src":"12994:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12981:12:25"},"nodeType":"YulFunctionCall","src":"12981:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12971:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13056:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13065:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13068:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13058:6:25"},"nodeType":"YulFunctionCall","src":"13058:12:25"},"nodeType":"YulExpressionStatement","src":"13058:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13028:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13036:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13025:2:25"},"nodeType":"YulFunctionCall","src":"13025:30:25"},"nodeType":"YulIf","src":"13022:50:25"},{"nodeType":"YulAssignment","src":"13081:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13112:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13123:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13108:3:25"},"nodeType":"YulFunctionCall","src":"13108:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13132:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13091:16:25"},"nodeType":"YulFunctionCall","src":"13091:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13081:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12683:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12694:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12706:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12714:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12722:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12730:6:25","type":""}],"src":"12613:533:25"},{"body":{"nodeType":"YulBlock","src":"13270:341:25","statements":[{"body":{"nodeType":"YulBlock","src":"13317:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13326:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13329:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13319:6:25"},"nodeType":"YulFunctionCall","src":"13319:12:25"},"nodeType":"YulExpressionStatement","src":"13319:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13291:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13300:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13287:3:25"},"nodeType":"YulFunctionCall","src":"13287:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13312:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13283:3:25"},"nodeType":"YulFunctionCall","src":"13283:33:25"},"nodeType":"YulIf","src":"13280:53:25"},{"nodeType":"YulAssignment","src":"13342:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13370:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13352:17:25"},"nodeType":"YulFunctionCall","src":"13352:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13342:6:25"}]},{"nodeType":"YulAssignment","src":"13389:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13421:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13432:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13417:3:25"},"nodeType":"YulFunctionCall","src":"13417:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13399:17:25"},"nodeType":"YulFunctionCall","src":"13399:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13389:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"13445:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13475:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13486:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13471:3:25"},"nodeType":"YulFunctionCall","src":"13471:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13458:12:25"},"nodeType":"YulFunctionCall","src":"13458:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13449:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13524:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"13499:24:25"},"nodeType":"YulFunctionCall","src":"13499:31:25"},"nodeType":"YulExpressionStatement","src":"13499:31:25"},{"nodeType":"YulAssignment","src":"13539:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"13549:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13539:6:25"}]},{"nodeType":"YulAssignment","src":"13563:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13590:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13601:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13586:3:25"},"nodeType":"YulFunctionCall","src":"13586:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13573:12:25"},"nodeType":"YulFunctionCall","src":"13573:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13212:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13223:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13235:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13243:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13251:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13259:6:25","type":""}],"src":"13151:460:25"},{"body":{"nodeType":"YulBlock","src":"13695:241:25","statements":[{"body":{"nodeType":"YulBlock","src":"13741:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13750:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13753:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13743:6:25"},"nodeType":"YulFunctionCall","src":"13743:12:25"},"nodeType":"YulExpressionStatement","src":"13743:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13716:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13725:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13712:3:25"},"nodeType":"YulFunctionCall","src":"13712:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13737:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13708:3:25"},"nodeType":"YulFunctionCall","src":"13708:32:25"},"nodeType":"YulIf","src":"13705:52:25"},{"nodeType":"YulVariableDeclaration","src":"13766:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13793:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13780:12:25"},"nodeType":"YulFunctionCall","src":"13780:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13770:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13846:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13855:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13858:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13848:6:25"},"nodeType":"YulFunctionCall","src":"13848:12:25"},"nodeType":"YulExpressionStatement","src":"13848:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13826:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13815:2:25"},"nodeType":"YulFunctionCall","src":"13815:30:25"},"nodeType":"YulIf","src":"13812:50:25"},{"nodeType":"YulAssignment","src":"13871:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13902:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13913:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13898:3:25"},"nodeType":"YulFunctionCall","src":"13898:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13922:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13881:16:25"},"nodeType":"YulFunctionCall","src":"13881:49:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13871:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13661:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13672:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13684:6:25","type":""}],"src":"13616:320:25"},{"body":{"nodeType":"YulBlock","src":"14088:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14111:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"14116:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14124:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"14098:12:25"},"nodeType":"YulFunctionCall","src":"14098:33:25"},"nodeType":"YulExpressionStatement","src":"14098:33:25"},{"nodeType":"YulVariableDeclaration","src":"14140:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14154:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14159:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14150:3:25"},"nodeType":"YulFunctionCall","src":"14150:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14144:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14182:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"14186:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14175:6:25"},"nodeType":"YulFunctionCall","src":"14175:13:25"},"nodeType":"YulExpressionStatement","src":"14175:13:25"},{"nodeType":"YulAssignment","src":"14197:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"14204:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14197:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14056:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14061:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14069:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14080:3:25","type":""}],"src":"13941:271:25"},{"body":{"nodeType":"YulBlock","src":"14272:325:25","statements":[{"nodeType":"YulAssignment","src":"14282:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"14299:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14292:3:25"},"nodeType":"YulFunctionCall","src":"14292:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14282:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"14313:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14343:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"14349:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14339:3:25"},"nodeType":"YulFunctionCall","src":"14339:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14317:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14390:31:25","statements":[{"nodeType":"YulAssignment","src":"14392:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14406:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14414:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14402:3:25"},"nodeType":"YulFunctionCall","src":"14402:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14392:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14370:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14363:6:25"},"nodeType":"YulFunctionCall","src":"14363:26:25"},"nodeType":"YulIf","src":"14360:61:25"},{"body":{"nodeType":"YulBlock","src":"14480:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14501:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14508:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14513:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14504:3:25"},"nodeType":"YulFunctionCall","src":"14504:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14494:6:25"},"nodeType":"YulFunctionCall","src":"14494:31:25"},"nodeType":"YulExpressionStatement","src":"14494:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14545:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14548:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14538:6:25"},"nodeType":"YulFunctionCall","src":"14538:15:25"},"nodeType":"YulExpressionStatement","src":"14538:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14576:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14566:6:25"},"nodeType":"YulFunctionCall","src":"14566:15:25"},"nodeType":"YulExpressionStatement","src":"14566:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14436:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14459:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14467:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14456:2:25"},"nodeType":"YulFunctionCall","src":"14456:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14433:2:25"},"nodeType":"YulFunctionCall","src":"14433:38:25"},"nodeType":"YulIf","src":"14430:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14252:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14261:6:25","type":""}],"src":"14217:380:25"},{"body":{"nodeType":"YulBlock","src":"14634:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14651:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14658:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14663:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14654:3:25"},"nodeType":"YulFunctionCall","src":"14654:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14644:6:25"},"nodeType":"YulFunctionCall","src":"14644:31:25"},"nodeType":"YulExpressionStatement","src":"14644:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14694:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:15:25"},"nodeType":"YulExpressionStatement","src":"14684:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14715:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14718:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14708:6:25"},"nodeType":"YulFunctionCall","src":"14708:15:25"},"nodeType":"YulExpressionStatement","src":"14708:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14602:127:25"},{"body":{"nodeType":"YulBlock","src":"14782:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"14809:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14811:16:25"},"nodeType":"YulFunctionCall","src":"14811:18:25"},"nodeType":"YulExpressionStatement","src":"14811:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14798:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14805:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14801:3:25"},"nodeType":"YulFunctionCall","src":"14801:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14795:2:25"},"nodeType":"YulFunctionCall","src":"14795:13:25"},"nodeType":"YulIf","src":"14792:39:25"},{"nodeType":"YulAssignment","src":"14840:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"14854:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14847:3:25"},"nodeType":"YulFunctionCall","src":"14847:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"14840:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14765:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"14768:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"14774:3:25","type":""}],"src":"14734:128:25"},{"body":{"nodeType":"YulBlock","src":"15041:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15051:6:25"},"nodeType":"YulFunctionCall","src":"15051:21:25"},"nodeType":"YulExpressionStatement","src":"15051:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15092:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15103:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15088:3:25"},"nodeType":"YulFunctionCall","src":"15088:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15108:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15081:6:25"},"nodeType":"YulFunctionCall","src":"15081:30:25"},"nodeType":"YulExpressionStatement","src":"15081:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15131:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15127:3:25"},"nodeType":"YulFunctionCall","src":"15127:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"15147:34:25","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15120:6:25"},"nodeType":"YulFunctionCall","src":"15120:62:25"},"nodeType":"YulExpressionStatement","src":"15120:62:25"},{"nodeType":"YulAssignment","src":"15191:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15203:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15214:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15199:3:25"},"nodeType":"YulFunctionCall","src":"15199:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15191:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15018:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15032:4:25","type":""}],"src":"14867:356:25"},{"body":{"nodeType":"YulBlock","src":"15402:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15419:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15430:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15412:6:25"},"nodeType":"YulFunctionCall","src":"15412:21:25"},"nodeType":"YulExpressionStatement","src":"15412:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15449:3:25"},"nodeType":"YulFunctionCall","src":"15449:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15469:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15442:6:25"},"nodeType":"YulFunctionCall","src":"15442:30:25"},"nodeType":"YulExpressionStatement","src":"15442:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15492:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15503:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15488:3:25"},"nodeType":"YulFunctionCall","src":"15488:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"15508:31:25","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15481:6:25"},"nodeType":"YulFunctionCall","src":"15481:59:25"},"nodeType":"YulExpressionStatement","src":"15481:59:25"},{"nodeType":"YulAssignment","src":"15549:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15572:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15557:3:25"},"nodeType":"YulFunctionCall","src":"15557:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15549:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15379:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15393:4:25","type":""}],"src":"15228:353:25"},{"body":{"nodeType":"YulBlock","src":"15652:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15669:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15674:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15662:6:25"},"nodeType":"YulFunctionCall","src":"15662:19:25"},"nodeType":"YulExpressionStatement","src":"15662:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15707:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"15712:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15703:3:25"},"nodeType":"YulFunctionCall","src":"15703:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"15719:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"15726:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"15690:12:25"},"nodeType":"YulFunctionCall","src":"15690:43:25"},"nodeType":"YulExpressionStatement","src":"15690:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15757:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15762:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15753:3:25"},"nodeType":"YulFunctionCall","src":"15753:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"15771:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15749:3:25"},"nodeType":"YulFunctionCall","src":"15749:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"15778:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15742:6:25"},"nodeType":"YulFunctionCall","src":"15742:38:25"},"nodeType":"YulExpressionStatement","src":"15742:38:25"},{"nodeType":"YulAssignment","src":"15789:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15804:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15817:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15825:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15813:3:25"},"nodeType":"YulFunctionCall","src":"15813:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15834:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15830:3:25"},"nodeType":"YulFunctionCall","src":"15830:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15809:3:25"},"nodeType":"YulFunctionCall","src":"15809:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15800:3:25"},"nodeType":"YulFunctionCall","src":"15800:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"15841:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15796:3:25"},"nodeType":"YulFunctionCall","src":"15796:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15789:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"15621:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"15628:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15636:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15644:3:25","type":""}],"src":"15586:266:25"},{"body":{"nodeType":"YulBlock","src":"16012:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16029:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16044:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16052:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16040:3:25"},"nodeType":"YulFunctionCall","src":"16040:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16022:6:25"},"nodeType":"YulFunctionCall","src":"16022:38:25"},"nodeType":"YulExpressionStatement","src":"16022:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16080:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16091:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16076:3:25"},"nodeType":"YulFunctionCall","src":"16076:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16096:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16069:6:25"},"nodeType":"YulFunctionCall","src":"16069:30:25"},"nodeType":"YulExpressionStatement","src":"16069:30:25"},{"nodeType":"YulAssignment","src":"16108:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16142:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16150:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16162:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16173:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16158:3:25"},"nodeType":"YulFunctionCall","src":"16158:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16116:25:25"},"nodeType":"YulFunctionCall","src":"16116:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16108:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15965:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15976:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15984:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15992:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16003:4:25","type":""}],"src":"15857:326:25"},{"body":{"nodeType":"YulBlock","src":"16362:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16390:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16372:6:25"},"nodeType":"YulFunctionCall","src":"16372:21:25"},"nodeType":"YulExpressionStatement","src":"16372:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16413:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16424:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16409:3:25"},"nodeType":"YulFunctionCall","src":"16409:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16429:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16402:6:25"},"nodeType":"YulFunctionCall","src":"16402:30:25"},"nodeType":"YulExpressionStatement","src":"16402:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:25"},"nodeType":"YulFunctionCall","src":"16448:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"16468:32:25","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:25"},"nodeType":"YulFunctionCall","src":"16441:60:25"},"nodeType":"YulExpressionStatement","src":"16441:60:25"},{"nodeType":"YulAssignment","src":"16510:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16533:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16518:3:25"},"nodeType":"YulFunctionCall","src":"16518:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16510:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16339:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16353:4:25","type":""}],"src":"16188:354:25"},{"body":{"nodeType":"YulBlock","src":"16784:372:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16801:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16816:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16824:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16812:3:25"},"nodeType":"YulFunctionCall","src":"16812:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16794:6:25"},"nodeType":"YulFunctionCall","src":"16794:38:25"},"nodeType":"YulExpressionStatement","src":"16794:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16852:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16863:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16848:3:25"},"nodeType":"YulFunctionCall","src":"16848:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16868:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16841:6:25"},"nodeType":"YulFunctionCall","src":"16841:31:25"},"nodeType":"YulExpressionStatement","src":"16841:31:25"},{"nodeType":"YulVariableDeclaration","src":"16881:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16921:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16929:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16937:3:25"},"nodeType":"YulFunctionCall","src":"16937:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16895:25:25"},"nodeType":"YulFunctionCall","src":"16895:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16885:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16973:3:25"},"nodeType":"YulFunctionCall","src":"16973:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16997:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17005:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16993:3:25"},"nodeType":"YulFunctionCall","src":"16993:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16966:6:25"},"nodeType":"YulFunctionCall","src":"16966:59:25"},"nodeType":"YulExpressionStatement","src":"16966:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17045:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17056:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17041:3:25"},"nodeType":"YulFunctionCall","src":"17041:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17065:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17073:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17061:3:25"},"nodeType":"YulFunctionCall","src":"17061:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17034:6:25"},"nodeType":"YulFunctionCall","src":"17034:50:25"},"nodeType":"YulExpressionStatement","src":"17034:50:25"},{"nodeType":"YulAssignment","src":"17093:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17127:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"17135:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17143:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17101:25:25"},"nodeType":"YulFunctionCall","src":"17101:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17093:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16713:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16724:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16732:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16740:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16748:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16756:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16764:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16775:4:25","type":""}],"src":"16547:609:25"},{"body":{"nodeType":"YulBlock","src":"17370:310:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17387:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17402:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17410:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17398:3:25"},"nodeType":"YulFunctionCall","src":"17398:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17380:6:25"},"nodeType":"YulFunctionCall","src":"17380:38:25"},"nodeType":"YulExpressionStatement","src":"17380:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17438:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17449:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17434:3:25"},"nodeType":"YulFunctionCall","src":"17434:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17454:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17427:6:25"},"nodeType":"YulFunctionCall","src":"17427:31:25"},"nodeType":"YulExpressionStatement","src":"17427:31:25"},{"nodeType":"YulAssignment","src":"17467:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17501:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"17509:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17521:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17532:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17517:3:25"},"nodeType":"YulFunctionCall","src":"17517:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17475:25:25"},"nodeType":"YulFunctionCall","src":"17475:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17467:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17568:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17553:3:25"},"nodeType":"YulFunctionCall","src":"17553:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17577:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17585:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17573:3:25"},"nodeType":"YulFunctionCall","src":"17573:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17546:6:25"},"nodeType":"YulFunctionCall","src":"17546:59:25"},"nodeType":"YulExpressionStatement","src":"17546:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17625:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17636:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17621:3:25"},"nodeType":"YulFunctionCall","src":"17621:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17645:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17661:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17666:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17657:3:25"},"nodeType":"YulFunctionCall","src":"17657:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17670:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17653:3:25"},"nodeType":"YulFunctionCall","src":"17653:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17641:3:25"},"nodeType":"YulFunctionCall","src":"17641:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17614:6:25"},"nodeType":"YulFunctionCall","src":"17614:60:25"},"nodeType":"YulExpressionStatement","src":"17614:60:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17307:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17318:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17326:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17334:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17342:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17350:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17361:4:25","type":""}],"src":"17161:519:25"},{"body":{"nodeType":"YulBlock","src":"17859:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17876:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17887:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17869:6:25"},"nodeType":"YulFunctionCall","src":"17869:21:25"},"nodeType":"YulExpressionStatement","src":"17869:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17910:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17921:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17906:3:25"},"nodeType":"YulFunctionCall","src":"17906:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17926:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17899:6:25"},"nodeType":"YulFunctionCall","src":"17899:30:25"},"nodeType":"YulExpressionStatement","src":"17899:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17949:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17960:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17945:3:25"},"nodeType":"YulFunctionCall","src":"17945:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nodeType":"YulLiteral","src":"17965:34:25","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17938:6:25"},"nodeType":"YulFunctionCall","src":"17938:62:25"},"nodeType":"YulExpressionStatement","src":"17938:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18020:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18031:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18016:3:25"},"nodeType":"YulFunctionCall","src":"18016:18:25"},{"hexValue":"616e6379","kind":"string","nodeType":"YulLiteral","src":"18036:6:25","type":"","value":"ancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18009:6:25"},"nodeType":"YulFunctionCall","src":"18009:34:25"},"nodeType":"YulExpressionStatement","src":"18009:34:25"},{"nodeType":"YulAssignment","src":"18052:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18064:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18075:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18060:3:25"},"nodeType":"YulFunctionCall","src":"18060:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18052:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17836:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17850:4:25","type":""}],"src":"17685:400:25"},{"body":{"nodeType":"YulBlock","src":"18136:163:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18146:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"18156:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18150:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18183:29:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18202:5:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18209:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18198:3:25"},"nodeType":"YulFunctionCall","src":"18198:14:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"18187:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"18240:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18242:16:25"},"nodeType":"YulFunctionCall","src":"18242:18:25"},"nodeType":"YulExpressionStatement","src":"18242:18:25"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18227:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18236:2:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18224:2:25"},"nodeType":"YulFunctionCall","src":"18224:15:25"},"nodeType":"YulIf","src":"18221:41:25"},{"nodeType":"YulAssignment","src":"18271:22:25","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18282:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"18291:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18278:3:25"},"nodeType":"YulFunctionCall","src":"18278:15:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18271:3:25"}]}]},"name":"increment_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18118:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18128:3:25","type":""}],"src":"18090:209:25"},{"body":{"nodeType":"YulBlock","src":"18478:176:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18506:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18488:6:25"},"nodeType":"YulFunctionCall","src":"18488:21:25"},"nodeType":"YulExpressionStatement","src":"18488:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18540:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18525:3:25"},"nodeType":"YulFunctionCall","src":"18525:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18545:2:25","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18518:6:25"},"nodeType":"YulFunctionCall","src":"18518:30:25"},"nodeType":"YulExpressionStatement","src":"18518:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18568:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18579:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18564:3:25"},"nodeType":"YulFunctionCall","src":"18564:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nodeType":"YulLiteral","src":"18584:28:25","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18557:6:25"},"nodeType":"YulFunctionCall","src":"18557:56:25"},"nodeType":"YulExpressionStatement","src":"18557:56:25"},{"nodeType":"YulAssignment","src":"18622:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18630:3:25"},"nodeType":"YulFunctionCall","src":"18630:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18622:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18455:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18469:4:25","type":""}],"src":"18304:350:25"},{"body":{"nodeType":"YulBlock","src":"18708:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"18730:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18732:16:25"},"nodeType":"YulFunctionCall","src":"18732:18:25"},"nodeType":"YulExpressionStatement","src":"18732:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18724:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18727:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18721:2:25"},"nodeType":"YulFunctionCall","src":"18721:8:25"},"nodeType":"YulIf","src":"18718:34:25"},{"nodeType":"YulAssignment","src":"18761:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18773:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18776:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18769:3:25"},"nodeType":"YulFunctionCall","src":"18769:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"18761:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18690:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"18693:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"18699:4:25","type":""}],"src":"18659:125:25"},{"body":{"nodeType":"YulBlock","src":"18821:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18838:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18845:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18850:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18841:3:25"},"nodeType":"YulFunctionCall","src":"18841:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18831:6:25"},"nodeType":"YulFunctionCall","src":"18831:31:25"},"nodeType":"YulExpressionStatement","src":"18831:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18878:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18881:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18871:6:25"},"nodeType":"YulFunctionCall","src":"18871:15:25"},"nodeType":"YulExpressionStatement","src":"18871:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18902:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18905:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18895:6:25"},"nodeType":"YulFunctionCall","src":"18895:15:25"},"nodeType":"YulExpressionStatement","src":"18895:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"18789:127:25"},{"body":{"nodeType":"YulBlock","src":"18968:88:25","statements":[{"body":{"nodeType":"YulBlock","src":"18999:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19001:16:25"},"nodeType":"YulFunctionCall","src":"19001:18:25"},"nodeType":"YulExpressionStatement","src":"19001:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18984:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18995:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18991:3:25"},"nodeType":"YulFunctionCall","src":"18991:6:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18981:2:25"},"nodeType":"YulFunctionCall","src":"18981:17:25"},"nodeType":"YulIf","src":"18978:43:25"},{"nodeType":"YulAssignment","src":"19030:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19041:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"19048:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19037:3:25"},"nodeType":"YulFunctionCall","src":"19037:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19030:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18950:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18960:3:25","type":""}],"src":"18921:135:25"},{"body":{"nodeType":"YulBlock","src":"19372:557:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19389:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19404:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19412:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19400:3:25"},"nodeType":"YulFunctionCall","src":"19400:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19382:6:25"},"nodeType":"YulFunctionCall","src":"19382:38:25"},"nodeType":"YulExpressionStatement","src":"19382:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19440:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19451:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19456:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19429:6:25"},"nodeType":"YulFunctionCall","src":"19429:31:25"},"nodeType":"YulExpressionStatement","src":"19429:31:25"},{"nodeType":"YulVariableDeclaration","src":"19469:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19509:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19517:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19540:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19525:3:25"},"nodeType":"YulFunctionCall","src":"19525:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19483:25:25"},"nodeType":"YulFunctionCall","src":"19483:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19473:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19565:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19576:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19561:3:25"},"nodeType":"YulFunctionCall","src":"19561:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19585:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19601:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19606:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19597:3:25"},"nodeType":"YulFunctionCall","src":"19597:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"19610:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19593:3:25"},"nodeType":"YulFunctionCall","src":"19593:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19581:3:25"},"nodeType":"YulFunctionCall","src":"19581:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19554:6:25"},"nodeType":"YulFunctionCall","src":"19554:60:25"},"nodeType":"YulExpressionStatement","src":"19554:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:25"},"nodeType":"YulFunctionCall","src":"19630:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"19654:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19662:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19650:3:25"},"nodeType":"YulFunctionCall","src":"19650:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19623:6:25"},"nodeType":"YulFunctionCall","src":"19623:59:25"},"nodeType":"YulExpressionStatement","src":"19623:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19702:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19713:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19698:3:25"},"nodeType":"YulFunctionCall","src":"19698:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19723:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19731:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19719:3:25"},"nodeType":"YulFunctionCall","src":"19719:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19691:6:25"},"nodeType":"YulFunctionCall","src":"19691:51:25"},"nodeType":"YulExpressionStatement","src":"19691:51:25"},{"nodeType":"YulVariableDeclaration","src":"19751:63:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"19791:6:25"},{"name":"value6","nodeType":"YulIdentifier","src":"19799:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"19807:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19765:25:25"},"nodeType":"YulFunctionCall","src":"19765:49:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"19755:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19834:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19845:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19830:3:25"},"nodeType":"YulFunctionCall","src":"19830:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"19855:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19863:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19851:3:25"},"nodeType":"YulFunctionCall","src":"19851:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19823:6:25"},"nodeType":"YulFunctionCall","src":"19823:51:25"},"nodeType":"YulExpressionStatement","src":"19823:51:25"},{"nodeType":"YulAssignment","src":"19883:40:25","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"19908:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"19916:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19891:16:25"},"nodeType":"YulFunctionCall","src":"19891:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19883:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19285:9:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"19296:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"19304:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"19312:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19320:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19328:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19336:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19344:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19352:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19363:4:25","type":""}],"src":"19061:868:25"},{"body":{"nodeType":"YulBlock","src":"20108:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20136:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20118:6:25"},"nodeType":"YulFunctionCall","src":"20118:21:25"},"nodeType":"YulExpressionStatement","src":"20118:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20155:3:25"},"nodeType":"YulFunctionCall","src":"20155:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20175:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20148:6:25"},"nodeType":"YulFunctionCall","src":"20148:30:25"},"nodeType":"YulExpressionStatement","src":"20148:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20209:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20194:3:25"},"nodeType":"YulFunctionCall","src":"20194:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nodeType":"YulLiteral","src":"20214:34:25","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20187:6:25"},"nodeType":"YulFunctionCall","src":"20187:62:25"},"nodeType":"YulExpressionStatement","src":"20187:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20280:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20265:3:25"},"nodeType":"YulFunctionCall","src":"20265:18:25"},{"hexValue":"79","kind":"string","nodeType":"YulLiteral","src":"20285:3:25","type":"","value":"y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20258:6:25"},"nodeType":"YulFunctionCall","src":"20258:31:25"},"nodeType":"YulExpressionStatement","src":"20258:31:25"},{"nodeType":"YulAssignment","src":"20298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20306:3:25"},"nodeType":"YulFunctionCall","src":"20306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20085:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"19934:397:25"},{"body":{"nodeType":"YulBlock","src":"20510:234:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20527:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20538:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20520:6:25"},"nodeType":"YulFunctionCall","src":"20520:21:25"},"nodeType":"YulExpressionStatement","src":"20520:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20572:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20557:3:25"},"nodeType":"YulFunctionCall","src":"20557:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20577:2:25","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20550:6:25"},"nodeType":"YulFunctionCall","src":"20550:30:25"},"nodeType":"YulExpressionStatement","src":"20550:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20600:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20611:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20596:3:25"},"nodeType":"YulFunctionCall","src":"20596:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nodeType":"YulLiteral","src":"20616:34:25","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20589:6:25"},"nodeType":"YulFunctionCall","src":"20589:62:25"},"nodeType":"YulExpressionStatement","src":"20589:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20667:3:25"},"nodeType":"YulFunctionCall","src":"20667:18:25"},{"hexValue":"616464726573732073697a65","kind":"string","nodeType":"YulLiteral","src":"20687:14:25","type":"","value":"address size"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20660:6:25"},"nodeType":"YulFunctionCall","src":"20660:42:25"},"nodeType":"YulExpressionStatement","src":"20660:42:25"},{"nodeType":"YulAssignment","src":"20711:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20723:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20734:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20719:3:25"},"nodeType":"YulFunctionCall","src":"20719:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20711:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20487:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20501:4:25","type":""}],"src":"20336:408:25"},{"body":{"nodeType":"YulBlock","src":"20923:245:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20951:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20933:6:25"},"nodeType":"YulFunctionCall","src":"20933:21:25"},"nodeType":"YulExpressionStatement","src":"20933:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20974:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20985:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20970:3:25"},"nodeType":"YulFunctionCall","src":"20970:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20990:2:25","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20963:6:25"},"nodeType":"YulFunctionCall","src":"20963:30:25"},"nodeType":"YulExpressionStatement","src":"20963:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21024:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21009:3:25"},"nodeType":"YulFunctionCall","src":"21009:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nodeType":"YulLiteral","src":"21029:34:25","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21002:6:25"},"nodeType":"YulFunctionCall","src":"21002:62:25"},"nodeType":"YulExpressionStatement","src":"21002:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21084:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21095:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21080:3:25"},"nodeType":"YulFunctionCall","src":"21080:18:25"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nodeType":"YulLiteral","src":"21100:25:25","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21073:6:25"},"nodeType":"YulFunctionCall","src":"21073:53:25"},"nodeType":"YulExpressionStatement","src":"21073:53:25"},{"nodeType":"YulAssignment","src":"21135:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21158:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21143:3:25"},"nodeType":"YulFunctionCall","src":"21143:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21135:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20900:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20914:4:25","type":""}],"src":"20749:419:25"},{"body":{"nodeType":"YulBlock","src":"21347:231:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21364:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21375:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21357:6:25"},"nodeType":"YulFunctionCall","src":"21357:21:25"},"nodeType":"YulExpressionStatement","src":"21357:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21398:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21409:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21394:3:25"},"nodeType":"YulFunctionCall","src":"21394:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21414:2:25","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21387:6:25"},"nodeType":"YulFunctionCall","src":"21387:30:25"},"nodeType":"YulExpressionStatement","src":"21387:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21437:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21448:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21433:3:25"},"nodeType":"YulFunctionCall","src":"21433:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nodeType":"YulLiteral","src":"21453:34:25","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21426:6:25"},"nodeType":"YulFunctionCall","src":"21426:62:25"},"nodeType":"YulExpressionStatement","src":"21426:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21508:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21519:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21504:3:25"},"nodeType":"YulFunctionCall","src":"21504:18:25"},{"hexValue":"20666f722066656573","kind":"string","nodeType":"YulLiteral","src":"21524:11:25","type":"","value":" for fees"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21497:6:25"},"nodeType":"YulFunctionCall","src":"21497:39:25"},"nodeType":"YulExpressionStatement","src":"21497:39:25"},{"nodeType":"YulAssignment","src":"21545:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21568:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21553:3:25"},"nodeType":"YulFunctionCall","src":"21553:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21545:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21324:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21338:4:25","type":""}],"src":"21173:405:25"},{"body":{"nodeType":"YulBlock","src":"21774:14:25","statements":[{"nodeType":"YulAssignment","src":"21776:10:25","value":{"name":"pos","nodeType":"YulIdentifier","src":"21783:3:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21776:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21758:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21766:3:25","type":""}],"src":"21583:205:25"},{"body":{"nodeType":"YulBlock","src":"21967:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21977:6:25"},"nodeType":"YulFunctionCall","src":"21977:21:25"},"nodeType":"YulExpressionStatement","src":"21977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22014:3:25"},"nodeType":"YulFunctionCall","src":"22014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22034:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22007:6:25"},"nodeType":"YulFunctionCall","src":"22007:30:25"},"nodeType":"YulExpressionStatement","src":"22007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22053:3:25"},"nodeType":"YulFunctionCall","src":"22053:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nodeType":"YulLiteral","src":"22073:33:25","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22046:6:25"},"nodeType":"YulFunctionCall","src":"22046:61:25"},"nodeType":"YulExpressionStatement","src":"22046:61:25"},{"nodeType":"YulAssignment","src":"22116:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22124:3:25"},"nodeType":"YulFunctionCall","src":"22124:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22116:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21958:4:25","type":""}],"src":"21793:355:25"},{"body":{"nodeType":"YulBlock","src":"22300:186:25","statements":[{"nodeType":"YulVariableDeclaration","src":"22310:41:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22324:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22320:3:25"},"nodeType":"YulFunctionCall","src":"22320:31:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22314:2:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22367:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22380:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"22384:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22393:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22372:3:25"},"nodeType":"YulFunctionCall","src":"22372:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22360:6:25"},"nodeType":"YulFunctionCall","src":"22360:37:25"},"nodeType":"YulExpressionStatement","src":"22360:37:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22417:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22422:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22413:3:25"},"nodeType":"YulFunctionCall","src":"22413:12:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22435:2:25","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"22439:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22431:3:25"},"nodeType":"YulFunctionCall","src":"22431:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22448:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22427:3:25"},"nodeType":"YulFunctionCall","src":"22427:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22406:6:25"},"nodeType":"YulFunctionCall","src":"22406:46:25"},"nodeType":"YulExpressionStatement","src":"22406:46:25"},{"nodeType":"YulAssignment","src":"22461:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22472:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22477:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22468:3:25"},"nodeType":"YulFunctionCall","src":"22468:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22461:3:25"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22268:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22273:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22281:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22292:3:25","type":""}],"src":"22153:333:25"},{"body":{"nodeType":"YulBlock","src":"22764:452:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22781:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22796:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22804:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22792:3:25"},"nodeType":"YulFunctionCall","src":"22792:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22774:6:25"},"nodeType":"YulFunctionCall","src":"22774:38:25"},"nodeType":"YulExpressionStatement","src":"22774:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22832:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22843:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22828:3:25"},"nodeType":"YulFunctionCall","src":"22828:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22848:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22821:6:25"},"nodeType":"YulFunctionCall","src":"22821:31:25"},"nodeType":"YulExpressionStatement","src":"22821:31:25"},{"nodeType":"YulVariableDeclaration","src":"22861:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22892:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22904:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22915:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22900:3:25"},"nodeType":"YulFunctionCall","src":"22900:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"22875:16:25"},"nodeType":"YulFunctionCall","src":"22875:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22865:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22951:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22936:3:25"},"nodeType":"YulFunctionCall","src":"22936:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22960:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22976:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22981:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22972:3:25"},"nodeType":"YulFunctionCall","src":"22972:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22985:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22968:3:25"},"nodeType":"YulFunctionCall","src":"22968:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22956:3:25"},"nodeType":"YulFunctionCall","src":"22956:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22929:6:25"},"nodeType":"YulFunctionCall","src":"22929:60:25"},"nodeType":"YulExpressionStatement","src":"22929:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23009:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23020:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23005:3:25"},"nodeType":"YulFunctionCall","src":"23005:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23029:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23037:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23025:3:25"},"nodeType":"YulFunctionCall","src":"23025:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22998:6:25"},"nodeType":"YulFunctionCall","src":"22998:59:25"},"nodeType":"YulExpressionStatement","src":"22998:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23077:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23088:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23073:3:25"},"nodeType":"YulFunctionCall","src":"23073:19:25"},{"name":"value4","nodeType":"YulIdentifier","src":"23094:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23066:6:25"},"nodeType":"YulFunctionCall","src":"23066:35:25"},"nodeType":"YulExpressionStatement","src":"23066:35:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23121:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23132:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23117:3:25"},"nodeType":"YulFunctionCall","src":"23117:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"23142:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23138:3:25"},"nodeType":"YulFunctionCall","src":"23138:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23110:6:25"},"nodeType":"YulFunctionCall","src":"23110:51:25"},"nodeType":"YulExpressionStatement","src":"23110:51:25"},{"nodeType":"YulAssignment","src":"23170:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"23195:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"23203:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23178:16:25"},"nodeType":"YulFunctionCall","src":"23178:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23170:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22693:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"22704:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22712:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22720:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22728:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22736:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22744:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22755:4:25","type":""}],"src":"22491:725:25"},{"body":{"nodeType":"YulBlock","src":"23366:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23383:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23396:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"23401:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23392:3:25"},"nodeType":"YulFunctionCall","src":"23392:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23414:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"23419:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23388:3:25"},"nodeType":"YulFunctionCall","src":"23388:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23376:6:25"},"nodeType":"YulFunctionCall","src":"23376:51:25"},"nodeType":"YulExpressionStatement","src":"23376:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23447:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23452:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23443:3:25"},"nodeType":"YulFunctionCall","src":"23443:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"23456:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23436:6:25"},"nodeType":"YulFunctionCall","src":"23436:27:25"},"nodeType":"YulExpressionStatement","src":"23436:27:25"},{"nodeType":"YulAssignment","src":"23472:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23483:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23488:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23479:3:25"},"nodeType":"YulFunctionCall","src":"23479:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23472:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23334:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23339:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23347:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23358:3:25","type":""}],"src":"23221:276:25"},{"body":{"nodeType":"YulBlock","src":"23676:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23693:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23704:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23686:6:25"},"nodeType":"YulFunctionCall","src":"23686:21:25"},"nodeType":"YulExpressionStatement","src":"23686:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23738:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23723:3:25"},"nodeType":"YulFunctionCall","src":"23723:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23743:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23716:6:25"},"nodeType":"YulFunctionCall","src":"23716:30:25"},"nodeType":"YulExpressionStatement","src":"23716:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23777:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23762:3:25"},"nodeType":"YulFunctionCall","src":"23762:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nodeType":"YulLiteral","src":"23782:34:25","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23755:6:25"},"nodeType":"YulFunctionCall","src":"23755:62:25"},"nodeType":"YulExpressionStatement","src":"23755:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23837:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23848:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23833:3:25"},"nodeType":"YulFunctionCall","src":"23833:18:25"},{"hexValue":"6c6172676520","kind":"string","nodeType":"YulLiteral","src":"23853:8:25","type":"","value":"large "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23826:6:25"},"nodeType":"YulFunctionCall","src":"23826:36:25"},"nodeType":"YulExpressionStatement","src":"23826:36:25"},{"nodeType":"YulAssignment","src":"23871:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23894:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23879:3:25"},"nodeType":"YulFunctionCall","src":"23879:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23871:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23653:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23667:4:25","type":""}],"src":"23502:402:25"},{"body":{"nodeType":"YulBlock","src":"23961:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"24020:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24022:16:25"},"nodeType":"YulFunctionCall","src":"24022:18:25"},"nodeType":"YulExpressionStatement","src":"24022:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23992:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23985:6:25"},"nodeType":"YulFunctionCall","src":"23985:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23978:6:25"},"nodeType":"YulFunctionCall","src":"23978:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24000:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24011:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24007:3:25"},"nodeType":"YulFunctionCall","src":"24007:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"24015:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24003:3:25"},"nodeType":"YulFunctionCall","src":"24003:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23997:2:25"},"nodeType":"YulFunctionCall","src":"23997:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23974:3:25"},"nodeType":"YulFunctionCall","src":"23974:45:25"},"nodeType":"YulIf","src":"23971:71:25"},{"nodeType":"YulAssignment","src":"24051:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24066:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24069:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24062:3:25"},"nodeType":"YulFunctionCall","src":"24062:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24051:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23940:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"23943:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23949:7:25","type":""}],"src":"23909:168:25"},{"body":{"nodeType":"YulBlock","src":"24114:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24131:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24138:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24143:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24134:3:25"},"nodeType":"YulFunctionCall","src":"24134:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24124:6:25"},"nodeType":"YulFunctionCall","src":"24124:31:25"},"nodeType":"YulExpressionStatement","src":"24124:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24171:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24174:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24164:6:25"},"nodeType":"YulFunctionCall","src":"24164:15:25"},"nodeType":"YulExpressionStatement","src":"24164:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24195:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24198:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24188:6:25"},"nodeType":"YulFunctionCall","src":"24188:15:25"},"nodeType":"YulExpressionStatement","src":"24188:15:25"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"24082:127:25"},{"body":{"nodeType":"YulBlock","src":"24260:74:25","statements":[{"body":{"nodeType":"YulBlock","src":"24283:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24285:16:25"},"nodeType":"YulFunctionCall","src":"24285:18:25"},"nodeType":"YulExpressionStatement","src":"24285:18:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24280:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24273:6:25"},"nodeType":"YulFunctionCall","src":"24273:9:25"},"nodeType":"YulIf","src":"24270:35:25"},{"nodeType":"YulAssignment","src":"24314:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24323:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24326:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24319:3:25"},"nodeType":"YulFunctionCall","src":"24319:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24314:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24245:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24248:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24254:1:25","type":""}],"src":"24214:120:25"},{"body":{"nodeType":"YulBlock","src":"24391:235:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24401:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24411:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24405:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24454:21:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24469:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24472:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24465:3:25"},"nodeType":"YulFunctionCall","src":"24465:10:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"24458:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24484:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24499:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24502:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24495:3:25"},"nodeType":"YulFunctionCall","src":"24495:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24488:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24565:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24567:16:25"},"nodeType":"YulFunctionCall","src":"24567:18:25"},"nodeType":"YulExpressionStatement","src":"24567:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24535:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24528:6:25"},"nodeType":"YulFunctionCall","src":"24528:11:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24521:6:25"},"nodeType":"YulFunctionCall","src":"24521:19:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24545:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24554:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"24558:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24550:3:25"},"nodeType":"YulFunctionCall","src":"24550:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24542:2:25"},"nodeType":"YulFunctionCall","src":"24542:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24517:3:25"},"nodeType":"YulFunctionCall","src":"24517:47:25"},"nodeType":"YulIf","src":"24514:73:25"},{"nodeType":"YulAssignment","src":"24596:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24611:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24616:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24607:3:25"},"nodeType":"YulFunctionCall","src":"24607:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24596:7:25"}]}]},"name":"checked_mul_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24370:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24373:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"24379:7:25","type":""}],"src":"24339:287:25"},{"body":{"nodeType":"YulBlock","src":"24677:170:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24687:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24697:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24691:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24740:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24755:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24758:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24751:3:25"},"nodeType":"YulFunctionCall","src":"24751:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24744:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24785:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24787:16:25"},"nodeType":"YulFunctionCall","src":"24787:18:25"},"nodeType":"YulExpressionStatement","src":"24787:18:25"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24780:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24773:6:25"},"nodeType":"YulFunctionCall","src":"24773:11:25"},"nodeType":"YulIf","src":"24770:37:25"},{"nodeType":"YulAssignment","src":"24816:25:25","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24829:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24832:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:10:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24837:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24821:3:25"},"nodeType":"YulFunctionCall","src":"24821:20:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24816:1:25"}]}]},"name":"checked_div_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24662:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24665:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24671:1:25","type":""}],"src":"24631:216:25"},{"body":{"nodeType":"YulBlock","src":"25079:355:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25096:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25111:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25119:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25107:3:25"},"nodeType":"YulFunctionCall","src":"25107:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25089:6:25"},"nodeType":"YulFunctionCall","src":"25089:38:25"},"nodeType":"YulExpressionStatement","src":"25089:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25158:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25143:3:25"},"nodeType":"YulFunctionCall","src":"25143:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25163:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25136:6:25"},"nodeType":"YulFunctionCall","src":"25136:31:25"},"nodeType":"YulExpressionStatement","src":"25136:31:25"},{"nodeType":"YulVariableDeclaration","src":"25176:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25216:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"25224:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25236:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25247:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25232:3:25"},"nodeType":"YulFunctionCall","src":"25232:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"25190:25:25"},"nodeType":"YulFunctionCall","src":"25190:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"25180:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25272:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25283:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25268:3:25"},"nodeType":"YulFunctionCall","src":"25268:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"25292:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25300:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25288:3:25"},"nodeType":"YulFunctionCall","src":"25288:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25261:6:25"},"nodeType":"YulFunctionCall","src":"25261:59:25"},"nodeType":"YulExpressionStatement","src":"25261:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25340:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25351:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25336:3:25"},"nodeType":"YulFunctionCall","src":"25336:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"25360:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25368:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25356:3:25"},"nodeType":"YulFunctionCall","src":"25356:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25329:6:25"},"nodeType":"YulFunctionCall","src":"25329:50:25"},"nodeType":"YulExpressionStatement","src":"25329:50:25"},{"nodeType":"YulAssignment","src":"25388:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25413:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"25421:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25396:16:25"},"nodeType":"YulFunctionCall","src":"25396:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25388:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25016:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25027:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25035:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25043:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25051:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25059:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25070:4:25","type":""}],"src":"24852:582:25"},{"body":{"nodeType":"YulBlock","src":"25471:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25488:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25495:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25500:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25491:3:25"},"nodeType":"YulFunctionCall","src":"25491:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25481:6:25"},"nodeType":"YulFunctionCall","src":"25481:31:25"},"nodeType":"YulExpressionStatement","src":"25481:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25528:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25531:4:25","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25521:6:25"},"nodeType":"YulFunctionCall","src":"25521:15:25"},"nodeType":"YulExpressionStatement","src":"25521:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25552:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25555:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25545:6:25"},"nodeType":"YulFunctionCall","src":"25545:15:25"},"nodeType":"YulExpressionStatement","src":"25545:15:25"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"25439:127:25"},{"body":{"nodeType":"YulBlock","src":"25745:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25762:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25773:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25755:6:25"},"nodeType":"YulFunctionCall","src":"25755:21:25"},"nodeType":"YulExpressionStatement","src":"25755:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25796:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25807:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25812:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25785:6:25"},"nodeType":"YulFunctionCall","src":"25785:30:25"},"nodeType":"YulExpressionStatement","src":"25785:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25835:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25846:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25831:3:25"},"nodeType":"YulFunctionCall","src":"25831:18:25"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nodeType":"YulLiteral","src":"25851:23:25","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25824:6:25"},"nodeType":"YulFunctionCall","src":"25824:51:25"},"nodeType":"YulExpressionStatement","src":"25824:51:25"},{"nodeType":"YulAssignment","src":"25884:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25907:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25892:3:25"},"nodeType":"YulFunctionCall","src":"25892:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25884:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25722:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25736:4:25","type":""}],"src":"25571:345:25"},{"body":{"nodeType":"YulBlock","src":"26095:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26112:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26123:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26105:6:25"},"nodeType":"YulFunctionCall","src":"26105:21:25"},"nodeType":"YulExpressionStatement","src":"26105:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26146:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26157:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26142:3:25"},"nodeType":"YulFunctionCall","src":"26142:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26162:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26135:6:25"},"nodeType":"YulFunctionCall","src":"26135:30:25"},"nodeType":"YulExpressionStatement","src":"26135:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26185:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26196:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26181:3:25"},"nodeType":"YulFunctionCall","src":"26181:18:25"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nodeType":"YulLiteral","src":"26201:20:25","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26174:6:25"},"nodeType":"YulFunctionCall","src":"26174:48:25"},"nodeType":"YulExpressionStatement","src":"26174:48:25"},{"nodeType":"YulAssignment","src":"26231:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26243:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26254:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26239:3:25"},"nodeType":"YulFunctionCall","src":"26239:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26231:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26072:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26086:4:25","type":""}],"src":"25921:342:25"},{"body":{"nodeType":"YulBlock","src":"26442:161:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26470:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26452:6:25"},"nodeType":"YulFunctionCall","src":"26452:21:25"},"nodeType":"YulExpressionStatement","src":"26452:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26493:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26504:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26489:3:25"},"nodeType":"YulFunctionCall","src":"26489:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26509:2:25","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26482:6:25"},"nodeType":"YulFunctionCall","src":"26482:30:25"},"nodeType":"YulExpressionStatement","src":"26482:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26543:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26528:3:25"},"nodeType":"YulFunctionCall","src":"26528:18:25"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nodeType":"YulLiteral","src":"26548:13:25","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26521:6:25"},"nodeType":"YulFunctionCall","src":"26521:41:25"},"nodeType":"YulExpressionStatement","src":"26521:41:25"},{"nodeType":"YulAssignment","src":"26571:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26583:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26594:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26579:3:25"},"nodeType":"YulFunctionCall","src":"26579:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26571:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26419:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26433:4:25","type":""}],"src":"26268:335:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), 0)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_uint128(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint128(headStart)\n value1 := abi_decode_uint128(add(headStart, 32))\n value2 := abi_decode_uint128(add(headStart, 64))\n value3 := abi_decode_uint64(add(headStart, 96))\n value4 := abi_decode_uint64(add(headStart, 128))\n }\n function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let value_1 := calldataload(add(headStart, 96))\n if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n value3 := value_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n let _1 := 0xffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n let _2 := 0xffffffffffffffff\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, _2))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value3 := value\n value4 := abi_decode_uint64(add(headStart, 96))\n value5 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value4 := value\n let value_1 := calldataload(add(headStart, 128))\n validator_revert_address(value_1)\n value5 := value_1\n let offset_2 := calldataload(add(headStart, 160))\n if gt(offset_2, _1) { revert(0, 0) }\n value6 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"LayerZeroMock: no stored payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), and(value4, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"LayerZeroMock: no receive reentr\")\n mstore(add(headStart, 96), \"ancy\")\n tail := add(headStart, 128)\n }\n function increment_t_uint64(value) -> ret\n {\n let _1 := 0xffffffffffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"LayerZeroMock: wrong nonce\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 192))\n mstore(add(headStart, 64), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value4, 0xffffffffffffffff))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes_calldata(value5, value6, tail_1)\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value7, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"LayerZeroMock: no send reentranc\")\n mstore(add(headStart, 96), \"y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"LayerZeroMock: incorrect remote \")\n mstore(add(headStart, 96), \"address size\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 55)\n mstore(add(headStart, 64), \"LayerZeroMock: destination Layer\")\n mstore(add(headStart, 96), \"Zero Endpoint not found\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"LayerZeroMock: not enough native\")\n mstore(add(headStart, 96), \" for fees\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"LayerZeroMock: failed to refund\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let _1 := not(0xffffffffffffffffffffffff)\n mstore(pos, and(shl(96, value0), _1))\n mstore(add(pos, 20), and(shl(96, value1), _1))\n end := add(pos, 40)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), sub(tail_1, headStart))\n tail := abi_encode_bytes(value5, tail_1)\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LayerZeroMock: dstNativeAmt too \")\n mstore(add(headStart, 96), \"large \")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_mul_t_uint128(x, y) -> product\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_div_t_uint128(x, y) -> r\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Invalid adapterParams\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unsupported txType\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 11)\n mstore(add(headStart, 64), \"Gas too low\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220384edda9ae8a264ade4ab6af65ffc5d1d0b63daa1521cc15633806bc2a19631664736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE 0x4E 0xDD 0xA9 0xAE DUP11 0x26 0x4A 0xDE 0x4A 0xB6 0xAF PUSH6 0xFFC5D1D0B63D 0xAA ISZERO 0x21 0xCC ISZERO PUSH4 0x3806BC2A NOT PUSH4 0x1664736F PUSH13 0x634300080A0033000000000000 ","sourceMap":"817:15467:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:42;;;;;;;;;;-1:-1:-1;1144:42:6;;;;;;;;;;;;;188:25:25;;;244:2;229:18;;222:34;;;;161:18;1144:42:6;;;;;;;;11660:78;;;;;;;;;;-1:-1:-1;11660:78:6;;;;;:::i;:::-;;;;;11206:133;;;;;;;;;;-1:-1:-1;11206:133:6;;;;;:::i;:::-;-1:-1:-1;11331:1:6;;11206:133;;;;1182:6:25;1170:19;;;1152:38;;1140:2;1125:18;11206:133:6;1008:188:25;10246:228:6;;;;;;;;;;-1:-1:-1;10246:228:6;;;;;:::i;:::-;;:::i;:::-;;;2204:14:25;;2197:22;2179:41;;2167:2;2152:18;10246:228:6;2039:187:25;1846:73:6;;;;;;;;;;-1:-1:-1;1846:73:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13583:162::-;;;;;;;;;;-1:-1:-1;13583:162:6;;;;;:::i;:::-;13656:17;:34;;;;13700:26;:38;13583:162;1219:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13145:432::-;;;;;;;;;;-1:-1:-1;13145:432:6;;;;;:::i;:::-;-1:-1:-1;;;;;13303:47:6;;;-1:-1:-1;;;13360:53:6;;;;;;13303:16;13360:53;13423:32;:51;;;;;;-1:-1:-1;;;;;;13484:35:6;;;;;;;-1:-1:-1;;;;;13484:35:6;;;;;;;;;;-1:-1:-1;;;;;13529:41:6;-1:-1:-1;;;13529:41:6;;;;;;;;13145:432;9344:97;;;;;;;;;;-1:-1:-1;9423:11:6;;;;9344:97;;1047:26;;;;;;;;;;-1:-1:-1;1047:26:6;;;;;;;;;;;8645:693;;;;;;;;;;-1:-1:-1;8645:693:6;;;;;:::i;:::-;;:::i;11831:720::-;;;;;;;;;;-1:-1:-1;11831:720:6;;;;;:::i;:::-;;:::i;10604:121::-;;;;;;;;;;-1:-1:-1;10604:121:6;;;;;:::i;:::-;-1:-1:-1;10713:4:6;;10604:121;;;;-1:-1:-1;;;;;6855:32:25;;;6837:51;;6825:2;6810:18;10604:121:6;6691:203:25;1728:71:6;;;;;;;;;;-1:-1:-1;1728:71:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1728:71:6;;;-1:-1:-1;;;1728:71:6;;-1:-1:-1;;;;;1728:71:6;;;;;;;;-1:-1:-1;;;;;7514:31:25;;;7496:50;;-1:-1:-1;;;;;7582:32:25;;;7577:2;7562:18;;7555:60;7631:18;;;7624:34;7484:2;7469:18;1728:71:6;7296:368:25;8475:164:6;;;;;;;;;;-1:-1:-1;8475:164:6;;;;;:::i;:::-;8596:23;;;8571:6;8596:23;;;:13;:23;;;;;;;;-1:-1:-1;;;;;8596:36:6;;;;;;;;;;-1:-1:-1;;;;;8596:36:6;8475:164;;;;;;;;-1:-1:-1;;;;;8155:31:25;;;8137:50;;8125:2;8110:18;8475:164:6;7993:200:25;12679:173:6;;;;;;;;;;-1:-1:-1;12679:173:6;;;;;:::i;:::-;;:::i;:::-;;;8344:25:25;;;8332:2;8317:18;12679:173:6;8198:177:25;1098:40:6;;;;;;;;;;-1:-1:-1;1098:40:6;;;;;;-1:-1:-1;;;;;1098:40:6;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;;;-1:-1:-1;;;;;1098:40:6;;;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;-1:-1:-1;;;;;8706:15:25;;;8688:34;;8758:15;;;8753:2;8738:18;;8731:43;8810:15;;;;8790:18;;;8783:43;;;;-1:-1:-1;;;;;8899:15:25;;;8894:2;8879:18;;8872:43;8952:15;;;8946:3;8931:19;;8924:44;8622:3;8607:19;1098:40:6;8380:594:25;1345:63:6;;;;;;;;;;-1:-1:-1;1345:63:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1345:63:6;;;9447:793;;;;;;;;;;-1:-1:-1;9447:793:6;;;;;:::i;:::-;;:::i;1489:66::-;;;;;;;;;;-1:-1:-1;1489:66:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1489:66:6;;;13751:87;;;;;;;;;;-1:-1:-1;13751:87:6;;;;;:::i;:::-;13809:9;:22;13751:87;13001:138;;;;;;;;;;-1:-1:-1;13001:138:6;;;;;:::i;:::-;-1:-1:-1;;;;;13089:26:6;;;:16;:26;;;;;;;;;;:43;;-1:-1:-1;;;;;;13089:43:6;;;;;;;;13001:138;6031:2275;;;;;;;;;;-1:-1:-1;6031:2275:6;;;;;:::i;:::-;;:::i;4013:2012::-;;;;;;:::i;:::-;;:::i;958:51::-;;;;;;;;;;-1:-1:-1;958:51:6;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;958:51:6;;;10858:126;;;;;;;;;;;;10943:22;;;;;:34;:22;950:1;10943:34;;10858:126;11487:167;;;;;;;;;;-1:-1:-1;11487:167:6;;;;;:::i;:::-;11919:632;11831:720;;;;12924:71;;;;;;;;;;;;12984:4;12967:21;;-1:-1:-1;;12967:21:6;;;;;12924:71;1016:25;;;;;;;;;;-1:-1:-1;1016:25:6;;;;;;;;10731:121;;;;;;;;;;;;10814:19;;:31;:19;950:1;10814:31;;10731:121;10990:210;;;;;;;;;;-1:-1:-1;10990:210:6;;;;;:::i;:::-;11184:9;;;;;;;;;-1:-1:-1;11184:9:6;;10990:210;;;;;;;1192:21;;;;;;;;;;;;;;;;13844:125;;;;;;;;;;-1:-1:-1;13844:125:6;;;;;:::i;:::-;;:::i;8312:157::-;;;;;;;;;;-1:-1:-1;8312:157:6;;;;;:::i;:::-;;:::i;10246:228::-;10389:26;;;10346:4;10389:26;;;:13;:26;;;;;;:33;;10346:4;;10389:26;:33;;10416:5;;;;10389:33;:::i;:::-;;;;;;;;;;;;;;10439:14;;;:28;;;-1:-1:-1;;10246:228:6;;;;;;:::o;1846:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1846:73:6;;;-1:-1:-1;;;;1846:73:6;;;-1:-1:-1;;;;;1846:73:6;;-1:-1:-1;1846:73:6;;-1:-1:-1;1846:73:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1219:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8645:693::-;8802:14;8818:11;8841:26;8894:1;8870:14;:21;:25;:65;;8915:20;8870:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8898:14;8870:65;8841:94;;8969:15;8987:80;9002:11;9015:1;9018:16;9036:8;:15;9053:13;8987:14;:80::i;:::-;8969:98;;9103:16;9122:50;9139:9;9150:10;9162:9;;9122:16;:50::i;:::-;9103:69;;9182:9;:58;;9229:11;9217:23;;;9182:58;;;9203:11;9194:20;;;9182:58;-1:-1:-1;9322:9:6;;9297:22;9309:10;9297:9;:22;:::i;:::-;:34;;;;:::i;:::-;9285:46;;8831:507;;;8645:693;;;;;;;;:::o;11831:720::-;11956:26;;;11929:24;11956:26;;;:13;:26;;;;;;:33;;;;11983:5;;;;11956:33;:::i;:::-;;;;;;;;;;;;;;12085:14;;;;11956:33;;-1:-1:-1;12077:73:6;;;;-1:-1:-1;;;12077:73:6;;15069:2:25;12077:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;12077:73:6;;;;;;;;;12168:13;;-1:-1:-1;;;12168:13:6;;-1:-1:-1;;;;;12168:13:6;12185:10;12168:27;12160:69;;;;-1:-1:-1;;;12160:69:6;;15430:2:25;12160:69:6;;;15412:21:25;15469:2;15449:18;;;15442:30;15508:31;15488:18;;;15481:59;15557:18;;12160:69:6;15228:353:25;12160:69:6;12275:20;;-1:-1:-1;;;;;;12305:26:6;;;12294:1;12275:20;12341:14;;:27;12384:40;;;;;;12405:11;;12418:5;;;;12384:40;:::i;:::-;;;;;;;;12512:32;12525:11;12538:5;;12512:12;:32::i;12679:173::-;12799:26;;;12776:4;12799:26;;;:13;:26;;;;;;:39;;;;12826:11;;;;12799:39;:::i;:::-;;;;;;;;;;;;;;:46;;-1:-1:-1;12679:173:6;;;;;:::o;9447:793::-;9591:26;;;9564:24;9591:26;;;:13;:26;;;;;;:33;;;;9618:5;;;;9591:33;:::i;:::-;;;;;;;;;;;;;;9642:14;;;;9591:33;;-1:-1:-1;9634:73:6;;;;-1:-1:-1;;;9634:73:6;;15069:2:25;9634:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;9634:73:6;14867:356:25;9634:73:6;9744:16;;-1:-1:-1;;;;;9744:16:6;9725:35;;:76;;;;;9787:2;:14;;;9774:8;;9764:19;;;;;;;:::i;:::-;;;;;;;;:37;9725:76;9717:119;;;;-1:-1:-1;;;9717:119:6;;16390:2:25;9717:119:6;;;16372:21:25;16429:2;16409:18;;;16402:30;16468:32;16448:18;;;16441:60;16518:18;;9717:119:6;16188:354:25;9717:119:6;9868:13;;-1:-1:-1;;;;;;9956:26:6;;;;-1:-1:-1;;9992:14:6;;:27;;;10045:25;;;;;9868:13;10045:25;;;;;;:32;;-1:-1:-1;;;9868:13:6;;;-1:-1:-1;;;;;9868:13:6;;10045:32;;10071:5;;;;10045:32;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;10088:77:6;;-1:-1:-1;;;;;10045:32:6;;-1:-1:-1;;;;;;10088:40:6;;;;;:77;;10129:11;;10142:5;;;;10045:32;;10156:8;;;;10088:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10180:53;10195:11;10208:5;;10215;10222:10;10180:53;;;;;;;;;;:::i;:::-;;;;;;;;9554:686;;;9447:793;;;;;:::o;6031:2275::-;2823:22;;;;;:38;:22;908:1;2823:38;2815:87;;;;-1:-1:-1;;;2815:87:6;;17887:2:25;2815:87:6;;;17869:21:25;17926:2;17906:18;;;17899:30;17965:34;17945:18;;;17938:62;-1:-1:-1;;;18016:18:25;;;18009:34;18060:19;;2815:87:6;17685:400:25;2815:87:6;2912:22;:33;;-1:-1:-1;;2912:33:6;;;;;6249:26:::1;::::0;::::1;-1:-1:-1::0;6249:26:6;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6276:5;;;;6249:33:::1;:::i;:::-;;;;;;;;;;;;;6222:60;;6377:12;:25;6390:11;6377:25;;;;;;;;;;;;;;;6403:5;;6377:32;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;6375:34;;6377:32:::1;::::0;6375:34:::1;::::0;-1:-1:-1;;;;;6375:34:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6365:44:6::1;:6;-1:-1:-1::0;;;;;6365:44:6::1;;6357:83;;;::::0;-1:-1:-1;;;6357:83:6;;18506:2:25;6357:83:6::1;::::0;::::1;18488:21:25::0;18545:2;18525:18;;;18518:30;18584:28;18564:18;;;18557:56;18630:18;;6357:83:6::1;18304:350:25::0;6357:83:6::1;6578:14;::::0;::::1;::::0;:28;6574:1726:::1;;6653:26;::::0;::::1;6622:28;6653:26:::0;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6680:5;;;;6653:33:::1;:::i;:::-;;;;;;;;;;;;;6622:64;;6700:27;6730:44;;;;;;;;6744:11;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6757:6;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6765:8;;6730:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6730:44:6;;-1:-1:-1;6980:11:6;;6700:74;;-1:-1:-1;6980:15:6;6976:436:::1;;7051:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7051:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7051:17:6::1;-1:-1:-1::0;;;7051:17:6::1;-1:-1:-1::0;;;;;;7051:17:6;;;-1:-1:-1;;;;;7051:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7061:6;;7051:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;7146:6;7141:105;7162:11:::0;;:15:::1;::::0;7176:1:::1;::::0;7162:15:::1;:::i;:::-;7158:1;:19;7141:105;;;7220:4;7225:1;7220:7;;;;;;;;:::i;:::-;;;;;;;;;;;7206:4;7211:1;7215;7211:5;;;;:::i;:::-;7206:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21;;:11:::1;::::0;;::::1;;:21:::0;;-1:-1:-1;;;;;7206:21:6;;::::1;-1:-1:-1::0;;;;;;7206:21:6;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;7206:21:6;;;;-1:-1:-1;;;7206:21:6;;;::::1;-1:-1:-1::0;;;;;7206:21:6::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7206:21:6;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;:::i;:::-;;;;;7179:3;;;;;:::i;:::-;;;;7141:105;;;;7335:6;7325:4;7330:1;7325:7;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:16;;:7:::1;::::0;;::::1;;:16:::0;;;;::::1;::::0;-1:-1:-1;;;;;7325:16:6::1;-1:-1:-1::0;;;7325:16:6::1;-1:-1:-1::0;;;;;;7325:16:6;;;-1:-1:-1;;;;;7325:16:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:7;;:16:::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;;;;6976:436;;;7380:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7380:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7380:17:6::1;-1:-1:-1::0;;;7380:17:6::1;-1:-1:-1::0;;;;;;7380:17:6;;;-1:-1:-1;;;;;7380:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7390:6;;7380:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;6976:436;6608:814;;6574:1726;;;7432:14;::::0;;;::::1;;;7428:872;;;7498:72;;;;;;;;7519:8;;:15;;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7537:11;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7560:8;;7550:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7498:72;;;7462:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7489:5;;;;7462:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7462:108:6::1;-1:-1:-1::0;;;7462:108:6::1;-1:-1:-1::0;;;;;;7462:108:6;;;-1:-1:-1;;;;;7462:108:6;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;7654:9;;::::1;::::0;;7462:108:::1;7654:9:::0;;7589:75;;::::1;::::0;::::1;::::0;7603:11;;7616:5;;;;7623:11;;7636:6;;7644:8;;;;7462:33;7589:75:::1;:::i;:::-;;;;;;;;7752:14;:22:::0;;-1:-1:-1;;7752:22:6::1;::::0;;7428:872:::1;;;7809:95;::::0;-1:-1:-1;;;7809:95:6;;-1:-1:-1;;;;;7809:41:6;::::1;::::0;::::1;::::0;7856:9;;7809:95:::1;::::0;7867:11;;7880:5;;;;7887:6;;7895:8;;;;7809:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;7805:485;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:72;;;;;;;;8011:8;;:15;;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8029:11;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8052:8;;8042:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7990:72;;;7954:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7981:5;;;;7954:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7954:108:6::1;-1:-1:-1::0;;;7954:108:6::1;-1:-1:-1::0;;;;;;7954:108:6;;;-1:-1:-1;;;;;7954:108:6;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;8085:72:::1;::::0;::::1;::::0;8099:11;;8112:5;;;;8119:11;;8132:6;;8140:8;;;;8150:6;;8085:72:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;8253:14:6::1;:22:::0;;-1:-1:-1;;8253:22:6::1;::::0;;7805:485:::1;-1:-1:-1::0;;2966:22:6;:37;;-1:-1:-1;;2966:37:6;;;;;-1:-1:-1;;;;;;;6031:2275:6:o;4013:2012::-;2593:19;;:35;:19;908:1;2593:35;2585:81;;;;-1:-1:-1;;;2585:81:6;;20136:2:25;2585:81:6;;;20118:21:25;20175:2;20155:18;;;20148:30;20214:34;20194:18;;;20187:62;-1:-1:-1;;;20265:18:25;;;20258:31;20306:19;;2585:81:6;19934:397:25;2585:81:6;2676:19;:30;;-1:-1:-1;;2676:30:6;950:1;2676:30;;;4239:12;;4255:2:::1;4239:18;4231:75;;;::::0;-1:-1:-1;;;4231:75:6;;20538:2:25;4231:75:6::1;::::0;::::1;20520:21:25::0;20577:2;20557:18;;;20550:30;20616:34;20596:18;;;20589:62;-1:-1:-1;;;20667:18:25;;;20660:42;20719:19;;4231:75:6::1;20336:408:25::0;4231:75:6::1;4420:2;4409:14:::0;::::1;4403:21:::0;-1:-1:-1;;;;;4465:25:6;;::::1;4344:15;4465:25:::0;;;::::1;::::0;;;;;;;::::1;4508:24:::0;4500:92:::1;;;::::0;-1:-1:-1;;;4500:92:6;;20951:2:25;4500:92:6::1;::::0;::::1;20933:21:25::0;20990:2;20970:18;;;20963:30;21029:34;21009:18;;;21002:62;21100:25;21080:18;;;21073:53;21143:19;;4500:92:6::1;20749:419:25::0;4500:92:6::1;4635:26;4688:1:::0;4664:14:::1;:21;:25;:65;;4709:20;4664:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:14;4664:65;4635:94;;4740:14;4760:95;4773:8;4783:10;4795:8;;4760:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;4805:34:6;::::1;::::0;::::1;4841:13:::0;4760:12:::1;:95::i;:::-;4739:116;;;4886:9;4873;:22;;4865:76;;;::::0;-1:-1:-1;;;4865:76:6;;21375:2:25;4865:76:6::1;::::0;::::1;21357:21:25::0;21414:2;21394:18;;;21387:30;21453:34;21433:18;;;21426:62;-1:-1:-1;;;21504:18:25;;;21497:39;21553:19;;4865:76:6::1;21173:405:25::0;4865:76:6::1;4969:23;::::0;::::1;4952:12;4969:23:::0;;;:13:::1;:23;::::0;;;;;;;4993:10:::1;4969:35:::0;;;;;;;4967:37;;4952:12;;4967:37:::1;::::0;-1:-1:-1;;;;;4967:37:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;4952:52;;5055:11;5081:9;5069;:21;;;;:::i;:::-;5055:35:::0;-1:-1:-1;5104:10:6;;5100:163:::1;;5131:12;5149:14;-1:-1:-1::0;;;;;5149:19:6::1;5176:6;5149:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5130:57;;;5209:7;5201:51;;;::::0;-1:-1:-1;;;5201:51:6;;21995:2:25;5201:51:6::1;::::0;::::1;21977:21:25::0;22034:2;22014:18;;;22007:30;22073:33;22053:18;;;22046:61;22124:18;;5201:51:6::1;21793:355:25::0;5201:51:6::1;5116:147;5100:163;5420:13;5435:17:::0;5454:29:::1;5487:40;5513:13;5487:25;:40::i;:::-;5417:110:::0;;-1:-1:-1;5417:110:6;-1:-1:-1;5417:110:6;-1:-1:-1;;5541:16:6;;5537:222:::1;;5574:12;5592:13;-1:-1:-1::0;;;;;5592:18:6::1;5618:12;5592:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:62;;;5654:7;5649:100;;5686:48;::::0;5721:12;;-1:-1:-1;;;;;5686:48:6;::::1;::::0;::::1;::::0;;;::::1;5649:100;5559:200;5537:222;5797:37;::::0;-1:-1:-1;;5814:10:6::1;22380:2:25::0;22376:15;;;22372:24;;5797:37:6::1;::::0;::::1;22360::25::0;22431:15;;;22427:24;22413:12;;;22406:46;5769:25:6::1;::::0;22468:12:25;;5797:37:6::1;;;;;;;;;;;;5769:65;;5874:20;5897:8;;5874:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5930:10;-1:-1:-1::0;;;;;5915:41:6::1;;5957:11;;;;;;;;;;;5970:12;5984:7;5993:5;6000:8;6010:7;5915:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2727:19:6;:34;;-1:-1:-1;;2727:34:6;908:1;2727:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4013:2012:6:o;13844:125::-;13925:37;;;;:20;;:37;;;;;:::i;:::-;;13844:125;:::o;8312:157::-;8433:22;;;8408:6;8433:22;;;:12;:22;;;;;;:29;;;;8456:5;;;;8433:29;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;8433:29:6;;-1:-1:-1;8312:157:6;;;;;:::o;918:238:3:-;1114:35;;;-1:-1:-1;;;1114:35:3;;;23376:51:25;23443:11;;;;23436:27;;;;1114:35:3;;;;;;;;;;23479:12:25;;1114:35:3;;;918:238::o;14960:1322:6:-;15192:4;15209:13;15224;15239:17;15262:41;15288:14;15262:25;:41::i;:::-;15208:95;;;;;;;15313:21;15395:6;:11;;15405:1;15395:11;15391:187;;;15430:32;;-1:-1:-1;;;;;15430:32:6;:48;-1:-1:-1;15430:48:6;15422:99;;;;-1:-1:-1;;;15422:99:6;;23704:2:25;15422:99:6;;;23686:21:25;23743:2;23723:18;;;23716:30;23782:34;23762:18;;;23755:62;-1:-1:-1;;;23833:18:25;;;23826:36;23879:19;;15422:99:6;23502:402:25;15422:99:6;15535:32;15555:12;15535:32;;:::i;:::-;;;15391:187;15714:24;;15655:19;;15714:35;;15741:8;;-1:-1:-1;;;15714:24:6;;-1:-1:-1;;;;;15714:24:6;:35;:::i;:::-;15677:16;:33;:73;;;-1:-1:-1;;;15677:33:6;;-1:-1:-1;;;;;15677:33:6;:73;:::i;:::-;15655:95;-1:-1:-1;15760:34:6;15655:95;15760:34;;:::i;:::-;15959:16;:30;15760:34;;-1:-1:-1;15922:14:6;;15993:6;;15940:49;;-1:-1:-1;;;;;15959:30:6;15760:34;15940:49;:::i;:::-;15939:60;;;;:::i;:::-;16178:16;:30;16148:27;;15922:77;;-1:-1:-1;16091:17:6;;16212:6;;-1:-1:-1;;;;;16178:30:6;;;;16112:63;;-1:-1:-1;;;16148:27:6;;;-1:-1:-1;;;;;16148:27:6;;-1:-1:-1;;;16112:33:6;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16111:107;;;;:::i;:::-;-1:-1:-1;;;;;16091:127:6;;-1:-1:-1;16248:27:6;16091:127;16248:12;:27;:::i;:::-;16236:39;;:9;:39;:::i;:::-;16229:46;14960:1322;-1:-1:-1;;;;;;;;;;;;;14960:1322:6:o;14658:296::-;14758:4;14778:9;14774:174;;;-1:-1:-1;14810:17:6;:24;14803:31;;14774:174;14902:26;;14932:5;;14874:24;14888:10;14874:11;:24;:::i;:::-;14873:55;;;;:::i;:::-;14872:65;;;;:::i;:::-;14865:72;;;;14154:498;14268:26;;;14237:28;14268:26;;;:13;:26;;;;;;:33;;;;14295:5;;;;14268:33;:::i;:::-;;;;;;;;;;;;;14237:64;;14407:239;14414:11;;:15;14407:239;;14481:11;;14445:28;;14476:4;;14481:15;;14495:1;;14481:15;:::i;:::-;14476:21;;;;;;;;:::i;:::-;;;;;;;;;;14445:52;;;;;;;;14476:21;;;;;;;14445:52;;-1:-1:-1;;;;;14445:52:6;;;;-1:-1:-1;;;;;;;;14445:52:6;;;;;;;;;;;;;;;;;;14476:21;14445:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14530:7;:18;;;-1:-1:-1;;;;;14511:48:6;;14560:11;14573:5;;14580:7;:13;;;14595:7;:15;;;14511:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14625:4;:10;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;14625:10:6;;;;;;;;;-1:-1:-1;;;;;;14625:10:6;;;;;;;;;;:::i;:::-;;;;;14431:215;14407:239;;2036:715:3;2117:13;2132:10;2144:18;2164:30;2214:14;:21;2239:2;2214:27;:57;;;;2269:2;2245:14;:21;:26;2214:57;2206:91;;;;-1:-1:-1;;;2206:91:3;;25773:2:25;2206:91:3;;;25755:21:25;25812:2;25792:18;;;25785:30;-1:-1:-1;;;25831:18:25;;;25824:51;25892:18;;2206:91:3;25571:345:25;2206:91:3;2366:1;2350:14;2346:22;2340:29;2330:39;;2417:2;2401:14;2397:23;2391:30;2382:39;;2448:6;:11;;2458:1;2448:11;:26;;;;2463:6;:11;;2473:1;2463:11;2448:26;2440:57;;;;-1:-1:-1;;;2440:57:3;;26123:2:25;2440:57:3;;;26105:21:25;26162:2;26142:18;;;26135:30;-1:-1:-1;;;26181:18:25;;;26174:48;26239:18;;2440:57:3;25921:342:25;2440:57:3;2523:1;2515:5;:9;2507:33;;;;-1:-1:-1;;;2507:33:3;;26470:2:25;2507:33:3;;;26452:21:25;26509:2;26489:18;;;26482:30;-1:-1:-1;;;26528:18:25;;;26521:41;26579:18;;2507:33:3;26268:335:25;2507:33:3;2555:6;:11;;2565:1;2555:11;2551:194;;;-1:-1:-1;;2652:2:3;2632:23;;2626:30;2717:2;2697:23;;2691:30;2551:194;2036:715;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;267:159:25;334:20;;394:6;383:18;;373:29;;363:57;;416:1;413;406:12;363:57;267:159;;;:::o;431:184::-;489:6;542:2;530:9;521:7;517:23;513:32;510:52;;;558:1;555;548:12;510:52;581:28;599:9;581:28;:::i;620:131::-;-1:-1:-1;;;;;695:31:25;;685:42;;675:70;;741:1;738;731:12;756:247;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;923:9;910:23;942:31;967:5;942:31;:::i;1201:347::-;1252:8;1262:6;1316:3;1309:4;1301:6;1297:17;1293:27;1283:55;;1334:1;1331;1324:12;1283:55;-1:-1:-1;1357:20:25;;-1:-1:-1;;;;;1389:30:25;;1386:50;;;1432:1;1429;1422:12;1386:50;1469:4;1461:6;1457:17;1445:29;;1521:3;1514:4;1505:6;1497;1493:19;1489:30;1486:39;1483:59;;;1538:1;1535;1528:12;1483:59;1201:347;;;;;:::o;1553:481::-;1631:6;1639;1647;1700:2;1688:9;1679:7;1675:23;1671:32;1668:52;;;1716:1;1713;1706:12;1668:52;1739:28;1757:9;1739:28;:::i;:::-;1729:38;;1818:2;1807:9;1803:18;1790:32;-1:-1:-1;;;;;1837:6:25;1834:30;1831:50;;;1877:1;1874;1867:12;1831:50;1916:58;1966:7;1957:6;1946:9;1942:22;1916:58;:::i;:::-;1553:481;;1993:8;;-1:-1:-1;1890:84:25;;-1:-1:-1;;;;1553:481:25:o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:718;2405:5;2458:3;2451:4;2443:6;2439:17;2435:27;2425:55;;2476:1;2473;2466:12;2425:55;2512:6;2499:20;-1:-1:-1;;;;;2575:2:25;2571;2568:10;2565:36;;;2581:18;;:::i;:::-;2656:2;2650:9;2624:2;2710:13;;-1:-1:-1;;2706:22:25;;;2730:2;2702:31;2698:40;2686:53;;;2754:18;;;2774:22;;;2751:46;2748:72;;;2800:18;;:::i;:::-;2840:10;2836:2;2829:22;2875:2;2867:6;2860:18;2921:3;2914:4;2909:2;2901:6;2897:15;2893:26;2890:35;2887:55;;;2938:1;2935;2928:12;2887:55;3002:2;2995:4;2987:6;2983:17;2976:4;2968:6;2964:17;2951:54;3049:1;3042:4;3037:2;3029:6;3025:15;3021:26;3014:37;3069:6;3060:15;;;;;;2363:718;;;;:::o;3086:460::-;3171:6;3179;3187;3240:2;3228:9;3219:7;3215:23;3211:32;3208:52;;;3256:1;3253;3246:12;3208:52;3279:28;3297:9;3279:28;:::i;:::-;3269:38;;3358:2;3347:9;3343:18;3330:32;-1:-1:-1;;;;;3377:6:25;3374:30;3371:50;;;3417:1;3414;3407:12;3371:50;3440:49;3481:7;3472:6;3461:9;3457:22;3440:49;:::i;:::-;3430:59;;;3536:2;3525:9;3521:18;3508:32;3498:42;;3086:460;;;;;:::o;3551:471::-;3592:3;3630:5;3624:12;3657:6;3652:3;3645:19;3682:1;3692:162;3706:6;3703:1;3700:13;3692:162;;;3768:4;3824:13;;;3820:22;;3814:29;3796:11;;;3792:20;;3785:59;3721:12;3692:162;;;3872:6;3869:1;3866:13;3863:87;;;3938:1;3931:4;3922:6;3917:3;3913:16;3909:27;3902:38;3863:87;-1:-1:-1;4004:2:25;3983:15;-1:-1:-1;;3979:29:25;3970:39;;;;4011:4;3966:50;;3551:471;-1:-1:-1;;3551:471:25:o;4027:408::-;-1:-1:-1;;;;;4228:32:25;;4210:51;;-1:-1:-1;;;;;4297:31:25;;4292:2;4277:18;;4270:59;4365:2;4360;4345:18;;4338:30;;;-1:-1:-1;;4385:44:25;;4410:18;;4402:6;4385:44;:::i;:::-;4377:52;4027:408;-1:-1:-1;;;;;4027:408:25:o;4440:248::-;4508:6;4516;4569:2;4557:9;4548:7;4544:23;4540:32;4537:52;;;4585:1;4582;4575:12;4537:52;-1:-1:-1;;4608:23:25;;;4678:2;4663:18;;;4650:32;;-1:-1:-1;4440:248:25:o;4693:217::-;4840:2;4829:9;4822:21;4803:4;4860:44;4900:2;4889:9;4885:18;4877:6;4860:44;:::i;4915:188::-;4983:20;;-1:-1:-1;;;;;5032:46:25;;5022:57;;5012:85;;5093:1;5090;5083:12;5108:171;5175:20;;-1:-1:-1;;;;;5224:30:25;;5214:41;;5204:69;;5269:1;5266;5259:12;5284:480;5377:6;5385;5393;5401;5409;5462:3;5450:9;5441:7;5437:23;5433:33;5430:53;;;5479:1;5476;5469:12;5430:53;5502:29;5521:9;5502:29;:::i;:::-;5492:39;;5550:38;5584:2;5573:9;5569:18;5550:38;:::i;:::-;5540:48;;5607:38;5641:2;5630:9;5626:18;5607:38;:::i;:::-;5597:48;;5664:37;5697:2;5686:9;5682:18;5664:37;:::i;:::-;5654:47;;5720:38;5753:3;5742:9;5738:19;5720:38;:::i;:::-;5710:48;;5284:480;;;;;;;;:::o;5769:917::-;5878:6;5886;5894;5902;5910;5963:3;5951:9;5942:7;5938:23;5934:33;5931:53;;;5980:1;5977;5970:12;5931:53;6003:28;6021:9;6003:28;:::i;:::-;5993:38;;6081:2;6070:9;6066:18;6053:32;6094:31;6119:5;6094:31;:::i;:::-;6144:5;-1:-1:-1;6200:2:25;6185:18;;6172:32;-1:-1:-1;;;;;6253:14:25;;;6250:34;;;6280:1;6277;6270:12;6250:34;6303:49;6344:7;6335:6;6324:9;6320:22;6303:49;:::i;:::-;6293:59;;6404:2;6393:9;6389:18;6376:32;6361:47;;6453:7;6446:15;6439:23;6430:7;6427:36;6417:64;;6477:1;6474;6467:12;6417:64;6500:7;;-1:-1:-1;6560:3:25;6545:19;;6532:33;;6577:16;;;6574:36;;;6606:1;6603;6596:12;6574:36;;6629:51;6672:7;6661:8;6650:9;6646:24;6629:51;:::i;:::-;6619:61;;;5769:917;;;;;;;;:::o;6899:392::-;6975:6;6983;7036:2;7024:9;7015:7;7011:23;7007:32;7004:52;;;7052:1;7049;7042:12;7004:52;7075:28;7093:9;7075:28;:::i;:::-;7065:38;;7154:2;7143:9;7139:18;7126:32;-1:-1:-1;;;;;7173:6:25;7170:30;7167:50;;;7213:1;7210;7203:12;7167:50;7236:49;7277:7;7268:6;7257:9;7253:22;7236:49;:::i;:::-;7226:59;;;6899:392;;;;;:::o;7669:319::-;7736:6;7744;7797:2;7785:9;7776:7;7772:23;7768:32;7765:52;;;7813:1;7810;7803:12;7765:52;7836:28;7854:9;7836:28;:::i;:::-;7826:38;;7914:2;7903:9;7899:18;7886:32;7927:31;7952:5;7927:31;:::i;:::-;7977:5;7967:15;;;7669:319;;;;;:::o;8979:789::-;9077:6;9085;9093;9101;9109;9162:2;9150:9;9141:7;9137:23;9133:32;9130:52;;;9178:1;9175;9168:12;9130:52;9201:28;9219:9;9201:28;:::i;:::-;9191:38;;9280:2;9269:9;9265:18;9252:32;-1:-1:-1;;;;;9344:2:25;9336:6;9333:14;9330:34;;;9360:1;9357;9350:12;9330:34;9399:58;9449:7;9440:6;9429:9;9425:22;9399:58;:::i;:::-;9476:8;;-1:-1:-1;9373:84:25;-1:-1:-1;9564:2:25;9549:18;;9536:32;;-1:-1:-1;9580:16:25;;;9577:36;;;9609:1;9606;9599:12;9577:36;;9648:60;9700:7;9689:8;9678:9;9674:24;9648:60;:::i;:::-;8979:789;;;;-1:-1:-1;8979:789:25;;-1:-1:-1;9727:8:25;;9622:86;8979:789;-1:-1:-1;;;8979:789:25:o;9773:180::-;9832:6;9885:2;9873:9;9864:7;9860:23;9856:32;9853:52;;;9901:1;9898;9891:12;9853:52;-1:-1:-1;9924:23:25;;9773:180;-1:-1:-1;9773:180:25:o;9958:388::-;10026:6;10034;10087:2;10075:9;10066:7;10062:23;10058:32;10055:52;;;10103:1;10100;10093:12;10055:52;10142:9;10129:23;10161:31;10186:5;10161:31;:::i;10351:1067::-;10475:6;10483;10491;10499;10507;10515;10523;10531;10584:3;10572:9;10563:7;10559:23;10555:33;10552:53;;;10601:1;10598;10591:12;10552:53;10624:28;10642:9;10624:28;:::i;:::-;10614:38;;10703:2;10692:9;10688:18;10675:32;-1:-1:-1;;;;;10767:2:25;10759:6;10756:14;10753:34;;;10783:1;10780;10773:12;10753:34;10822:58;10872:7;10863:6;10852:9;10848:22;10822:58;:::i;:::-;10899:8;;-1:-1:-1;10796:84:25;-1:-1:-1;10984:2:25;10969:18;;10956:32;;-1:-1:-1;10997:31:25;10956:32;10997:31;:::i;:::-;11047:5;11037:15;;11071:37;11104:2;11093:9;11089:18;11071:37;:::i;:::-;11061:47;;11155:3;11144:9;11140:19;11127:33;11117:43;;11213:3;11202:9;11198:19;11185:33;11169:49;;11243:2;11233:8;11230:16;11227:36;;;11259:1;11256;11249:12;11227:36;;11298:60;11350:7;11339:8;11328:9;11324:24;11298:60;:::i;:::-;10351:1067;;;;-1:-1:-1;10351:1067:25;;-1:-1:-1;10351:1067:25;;;;;;11377:8;-1:-1:-1;;;10351:1067:25:o;11423:1185::-;11563:6;11571;11579;11587;11595;11603;11611;11664:3;11652:9;11643:7;11639:23;11635:33;11632:53;;;11681:1;11678;11671:12;11632:53;11704:28;11722:9;11704:28;:::i;:::-;11694:38;;11783:2;11772:9;11768:18;11755:32;-1:-1:-1;;;;;11847:2:25;11839:6;11836:14;11833:34;;;11863:1;11860;11853:12;11833:34;11886:49;11927:7;11918:6;11907:9;11903:22;11886:49;:::i;:::-;11876:59;;11988:2;11977:9;11973:18;11960:32;11944:48;;12017:2;12007:8;12004:16;12001:36;;;12033:1;12030;12023:12;12001:36;12072:60;12124:7;12113:8;12102:9;12098:24;12072:60;:::i;:::-;12151:8;;-1:-1:-1;12046:86:25;-1:-1:-1;12236:2:25;12221:18;;12208:32;;-1:-1:-1;12249:31:25;12208:32;12249:31;:::i;:::-;12299:5;;-1:-1:-1;12356:3:25;12341:19;;12328:33;;12370;12328;12370;:::i;:::-;12422:7;;-1:-1:-1;12482:3:25;12467:19;;12454:33;;12499:16;;;12496:36;;;12528:1;12525;12518:12;12496:36;;12551:51;12594:7;12583:8;12572:9;12568:24;12551:51;:::i;:::-;12541:61;;;11423:1185;;;;;;;;;;:::o;12613:533::-;12706:6;12714;12722;12730;12783:3;12771:9;12762:7;12758:23;12754:33;12751:53;;;12800:1;12797;12790:12;12751:53;12823:28;12841:9;12823:28;:::i;:::-;12813:38;;12870:37;12903:2;12892:9;12888:18;12870:37;:::i;:::-;12860:47;;12954:2;12943:9;12939:18;12926:32;12916:42;;13009:2;12998:9;12994:18;12981:32;-1:-1:-1;;;;;13028:6:25;13025:30;13022:50;;;13068:1;13065;13058:12;13022:50;13091:49;13132:7;13123:6;13112:9;13108:22;13091:49;:::i;:::-;13081:59;;;12613:533;;;;;;;:::o;13151:460::-;13235:6;13243;13251;13259;13312:3;13300:9;13291:7;13287:23;13283:33;13280:53;;;13329:1;13326;13319:12;13280:53;13352:28;13370:9;13352:28;:::i;:::-;13342:38;;13399:37;13432:2;13421:9;13417:18;13399:37;:::i;:::-;13389:47;;13486:2;13475:9;13471:18;13458:32;13499:31;13524:5;13499:31;:::i;:::-;13151:460;;;;-1:-1:-1;13549:5:25;;13601:2;13586:18;13573:32;;-1:-1:-1;;13151:460:25:o;13616:320::-;13684:6;13737:2;13725:9;13716:7;13712:23;13708:32;13705:52;;;13753:1;13750;13743:12;13705:52;13793:9;13780:23;-1:-1:-1;;;;;13818:6:25;13815:30;13812:50;;;13858:1;13855;13848:12;13812:50;13881:49;13922:7;13913:6;13902:9;13898:22;13881:49;:::i;:::-;13871:59;13616:320;-1:-1:-1;;;;13616:320:25:o;13941:271::-;14124:6;14116;14111:3;14098:33;14080:3;14150:16;;14175:13;;;14150:16;13941:271;-1:-1:-1;13941:271:25:o;14217:380::-;14296:1;14292:12;;;;14339;;;14360:61;;14414:4;14406:6;14402:17;14392:27;;14360:61;14467:2;14459:6;14456:14;14436:18;14433:38;14430:161;;;14513:10;14508:3;14504:20;14501:1;14494:31;14548:4;14545:1;14538:15;14576:4;14573:1;14566:15;14430:161;;14217:380;;;:::o;14602:127::-;14663:10;14658:3;14654:20;14651:1;14644:31;14694:4;14691:1;14684:15;14718:4;14715:1;14708:15;14734:128;14774:3;14805:1;14801:6;14798:1;14795:13;14792:39;;;14811:18;;:::i;:::-;-1:-1:-1;14847:9:25;;14734:128::o;15586:266::-;15674:6;15669:3;15662:19;15726:6;15719:5;15712:4;15707:3;15703:14;15690:43;-1:-1:-1;15778:1:25;15753:16;;;15771:4;15749:27;;;15742:38;;;;15834:2;15813:15;;;-1:-1:-1;;15809:29:25;15800:39;;;15796:50;;15586:266::o;15857:326::-;16052:6;16044;16040:19;16029:9;16022:38;16096:2;16091;16080:9;16076:18;16069:30;16003:4;16116:61;16173:2;16162:9;16158:18;16150:6;16142;16116:61;:::i;16547:609::-;16824:6;16816;16812:19;16801:9;16794:38;16868:3;16863:2;16852:9;16848:18;16841:31;16775:4;16895:62;16952:3;16941:9;16937:19;16929:6;16921;16895:62;:::i;:::-;-1:-1:-1;;;;;16997:6:25;16993:31;16988:2;16977:9;16973:18;16966:59;17073:9;17065:6;17061:22;17056:2;17045:9;17041:18;17034:50;17101:49;17143:6;17135;17127;17101:49;:::i;:::-;17093:57;16547:609;-1:-1:-1;;;;;;;;;16547:609:25:o;17161:519::-;17410:6;17402;17398:19;17387:9;17380:38;17454:3;17449:2;17438:9;17434:18;17427:31;17361:4;17475:62;17532:3;17521:9;17517:19;17509:6;17501;17475:62;:::i;:::-;-1:-1:-1;;;;;17573:31:25;;;;17568:2;17553:18;;17546:59;-1:-1:-1;;;;;;17641:32:25;;;;17636:2;17621:18;;;17614:60;17467:70;17161:519;-1:-1:-1;;;17161:519:25:o;18090:209::-;18128:3;-1:-1:-1;;;;;18209:2:25;18202:5;18198:14;18236:2;18227:7;18224:15;18221:41;;;18242:18;;:::i;:::-;18291:1;18278:15;;18090:209;-1:-1:-1;;;18090:209:25:o;18659:125::-;18699:4;18727:1;18724;18721:8;18718:34;;;18732:18;;:::i;:::-;-1:-1:-1;18769:9:25;;18659:125::o;18789:127::-;18850:10;18845:3;18841:20;18838:1;18831:31;18881:4;18878:1;18871:15;18905:4;18902:1;18895:15;18921:135;18960:3;-1:-1:-1;;18981:17:25;;18978:43;;;19001:18;;:::i;:::-;-1:-1:-1;19048:1:25;19037:13;;18921:135::o;19061:868::-;19412:6;19404;19400:19;19389:9;19382:38;19456:3;19451:2;19440:9;19436:18;19429:31;19363:4;19483:62;19540:3;19529:9;19525:19;19517:6;19509;19483:62;:::i;:::-;-1:-1:-1;;;;;19581:32:25;;19576:2;19561:18;;19554:60;-1:-1:-1;;;;;19650:31:25;;19645:2;19630:18;;19623:59;19719:22;;;19713:3;19698:19;;19691:51;19765:49;19723:6;19799;19791;19765:49;:::i;:::-;19751:63;;19863:9;19855:6;19851:22;19845:3;19834:9;19830:19;19823:51;19891:32;19916:6;19908;19891:32;:::i;:::-;19883:40;19061:868;-1:-1:-1;;;;;;;;;;;19061:868:25:o;22491:725::-;22804:6;22796;22792:19;22781:9;22774:38;22848:3;22843:2;22832:9;22828:18;22821:31;22755:4;22875:45;22915:3;22904:9;22900:19;22892:6;22875:45;:::i;:::-;-1:-1:-1;;;;;22956:32:25;;22951:2;22936:18;;22929:60;-1:-1:-1;;;;;23025:31:25;;23020:2;23005:18;;22998:59;23088:3;23073:19;;23066:35;;;23138:22;;;22976:3;23117:19;;23110:51;23178:32;23142:6;23195;23178:32;:::i;23909:168::-;23949:7;24015:1;24011;24007:6;24003:14;24000:1;23997:21;23992:1;23985:9;23978:17;23974:45;23971:71;;;24022:18;;:::i;:::-;-1:-1:-1;24062:9:25;;23909:168::o;24082:127::-;24143:10;24138:3;24134:20;24131:1;24124:31;24174:4;24171:1;24164:15;24198:4;24195:1;24188:15;24214:120;24254:1;24280;24270:35;;24285:18;;:::i;:::-;-1:-1:-1;24319:9:25;;24214:120::o;24339:287::-;24379:7;-1:-1:-1;;;;;24472:2:25;24469:1;24465:10;24502:2;24499:1;24495:10;24558:3;24554:2;24550:12;24545:3;24542:21;24535:3;24528:11;24521:19;24517:47;24514:73;;;24567:18;;:::i;:::-;24607:13;;24339:287;-1:-1:-1;;;;24339:287:25:o;24631:216::-;24671:1;-1:-1:-1;;;;;24758:2:25;24755:1;24751:10;24780:3;24770:37;;24787:18;;:::i;:::-;24825:10;;24821:20;;;;;24631:216;-1:-1:-1;;24631:216:25:o;24852:582::-;25119:6;25111;25107:19;25096:9;25089:38;25163:3;25158:2;25147:9;25143:18;25136:31;25070:4;25190:62;25247:3;25236:9;25232:19;25224:6;25216;25190:62;:::i;:::-;-1:-1:-1;;;;;25292:6:25;25288:31;25283:2;25272:9;25268:18;25261:59;25368:9;25360:6;25356:22;25351:2;25340:9;25336:18;25329:50;25396:32;25421:6;25413;25396:32;:::i;:::-;25388:40;24852:582;-1:-1:-1;;;;;;;;24852:582:25:o;25439:127::-;25500:10;25495:3;25491:20;25488:1;25481:31;25531:4;25528:1;25521:15;25555:4;25552:1;25545:15"},"gasEstimates":{"creation":{"codeDepositCost":"2369200","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24445","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2353","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"2842","getReceiveLibraryAddress(address)":"414","getReceiveVersion(address)":"469","getSendLibraryAddress(address)":"437","getSendVersion(address)":"449","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2369","isSendingPayload()":"2357","lzEndpointLookup(address)":"2688","mockChainId()":"2446","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2389","oracleFee()":"2383","outboundNonce(uint16,address)":"2831","protocolFeeConfig()":"4464","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"4807","retryPayload(uint16,bytes,bytes)":"infinite","send(uint16,bytes,bytes,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setDefaultAdapterParams(bytes)":"infinite","setDestLzEndpoint(address,address)":"infinite","setOracleFee(uint256)":"22357","setProtocolFee(uint256,uint256)":"44537","setReceiveVersion(uint16)":"326","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"349","storedPayload(uint16,bytes)":"infinite"},"internal":{"_clearMsgQue(uint16,bytes calldata)":"infinite","_getProtocolFees(bool,uint256,uint256)":"2392","_getRelayerFee(uint16,uint16,address,uint256,bytes memory)":"infinite"}},"methodIdentifiers":{"blockNextMsg()":"d23104f1","defaultAdapterParams()":"272bd384","estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getLengthOfQueue(uint16,bytes)":"7f6df8e6","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","inboundNonce(uint16,bytes)":"9924d33b","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","lzEndpointLookup(address)":"c81b383a","mockChainId()":"db14f305","msgsToDeliver(uint16,bytes,uint256)":"12a9ee6b","nextMsgBlocked()":"3e0dd83e","oracleFee()":"f9cd3ceb","outboundNonce(uint16,address)":"b2086499","protocolFeeConfig()":"07d3277f","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","relayerFeeConfig()":"907c5e7e","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setDefaultAdapterParams(bytes)":"fbba623b","setDestLzEndpoint(address,address)":"c08f15a1","setOracleFee(uint256)":"b6d9ef60","setProtocolFee(uint256,uint256)":"240de277","setReceiveVersion(uint16)":"10ddb137","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"2c365e25","setSendVersion(uint16)":"07e0db17","storedPayload(uint16,bytes)":"76a386dc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"}],\"name\":\"PayloadCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PayloadStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"UaForceResumeReceive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"ValueTransferFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockNextMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdapterParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getLengthOfQueue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lzEndpointLookup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"msgsToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextMsgBlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeBP\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerFeeConfig\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasPerByte\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"setDefaultAdapterParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpointAddr\",\"type\":\"address\"}],\"name\":\"setDestLzEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_oracleFee\",\"type\":\"uint256\"}],\"name\":\"setOracleFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nativeBP\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"_baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_gasPerByte\",\"type\":\"uint64\"}],\"name\":\"setRelayerPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"storedPayload\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"payloadLength\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":\"LZEndpointMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n uint8 internal constant _NOT_ENTERED = 1;\\n uint8 internal constant _ENTERED = 2;\\n\\n mapping(address => address) public lzEndpointLookup;\\n\\n uint16 public mockChainId;\\n bool public nextMsgBlocked;\\n\\n // fee config\\n RelayerFeeConfig public relayerFeeConfig;\\n ProtocolFeeConfig public protocolFeeConfig;\\n uint public oracleFee;\\n bytes public defaultAdapterParams;\\n\\n // path = remote addrss + local address\\n // inboundNonce = [srcChainId][path].\\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n //todo: this is a hack\\n // outboundNonce = [dstChainId][srcAddress]\\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n // // outboundNonce = [dstChainId][path].\\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n // storedPayload = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n // msgToDeliver = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n // reentrancy guard\\n uint8 internal _send_entered_state = 1;\\n uint8 internal _receive_entered_state = 1;\\n\\n struct ProtocolFeeConfig {\\n uint zroFee;\\n uint nativeBP;\\n }\\n\\n struct RelayerFeeConfig {\\n uint128 dstPriceRatio; // 10^10\\n uint128 dstGasPriceInWei;\\n uint128 dstNativeAmtCap;\\n uint64 baseGas;\\n uint64 gasPerByte;\\n }\\n\\n struct StoredPayload {\\n uint64 payloadLength;\\n address dstAddress;\\n bytes32 payloadHash;\\n }\\n\\n struct QueuedPayload {\\n address dstAddress;\\n uint64 nonce;\\n bytes payload;\\n }\\n\\n modifier sendNonReentrant() {\\n require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n _send_entered_state = _ENTERED;\\n _;\\n _send_entered_state = _NOT_ENTERED;\\n }\\n\\n modifier receiveNonReentrant() {\\n require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n _receive_entered_state = _ENTERED;\\n _;\\n _receive_entered_state = _NOT_ENTERED;\\n }\\n\\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n constructor(uint16 _chainId) {\\n mockChainId = _chainId;\\n\\n // init config\\n relayerFeeConfig = RelayerFeeConfig({\\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n dstGasPriceInWei: 1e10,\\n dstNativeAmtCap: 1e19,\\n baseGas: 100,\\n gasPerByte: 1\\n });\\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n oracleFee = 1e16;\\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n }\\n\\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\\n require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n address dstAddr;\\n assembly {\\n dstAddr := mload(add(_path, 20))\\n }\\n\\n address lzEndpoint = lzEndpointLookup[dstAddr];\\n require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n // not handle zro token\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n // refund if they send too much\\n uint amount = msg.value - nativeFee;\\n if (amount > 0) {\\n (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n require(success, \\\"LayerZeroMock: failed to refund\\\");\\n }\\n\\n // Mock the process of receiving msg on dst chain\\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n if (dstNativeAmt > 0) {\\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n if (!success) {\\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n }\\n }\\n\\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n bytes memory payload = _payload;\\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n }\\n\\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n // assert and increment the nonce. no message shuffling\\n require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n if (sp.payloadHash != bytes32(0)) {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n // shift all the msgs over so we can treat this like a fifo via array.pop()\\n if (msgs.length > 0) {\\n // extend the array\\n msgs.push(newMsg);\\n\\n // shift all the indexes up for pop()\\n for (uint i = 0; i < msgs.length - 1; i++) {\\n msgs[i + 1] = msgs[i];\\n }\\n\\n // put the newMsg at the bottom of the stack\\n msgs[0] = newMsg;\\n } else {\\n msgs.push(newMsg);\\n }\\n } else if (nextMsgBlocked) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n } else {\\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n }\\n }\\n }\\n\\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n return inboundNonce[_chainID][_path];\\n }\\n\\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n return outboundNonce[_chainID][_srcAddress];\\n }\\n\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n // Relayer Fee\\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n // LayerZero Fee\\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n // return the sum of fees\\n nativeFee = nativeFee + relayerFee + oracleFee;\\n }\\n\\n function getChainId() external view override returns (uint16) {\\n return mockChainId;\\n }\\n\\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n address dstAddress = sp.dstAddress;\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n }\\n\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n return sp.payloadHash != bytes32(0);\\n }\\n\\n function getSendLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function getReceiveLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function isSendingPayload() external view override returns (bool) {\\n return _send_entered_state == _ENTERED;\\n }\\n\\n function isReceivingPayload() external view override returns (bool) {\\n return _receive_entered_state == _ENTERED;\\n }\\n\\n function getConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n address, /*_ua*/\\n uint /*_configType*/\\n ) external pure override returns (bytes memory) {\\n return \\\"\\\";\\n }\\n\\n function getSendVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function getReceiveVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function setConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n uint, /*_configType*/\\n bytes memory /*_config*/\\n ) external override {}\\n\\n function setSendVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function setReceiveVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n // revert if no messages are cached. safeguard malicious UA behaviour\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n emit UaForceResumeReceive(_srcChainId, _path);\\n\\n // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n _clearMsgQue(_srcChainId, _path);\\n }\\n\\n // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n return msgsToDeliver[_srcChainId][_srcAddress].length;\\n }\\n\\n // used to simulate messages received get stored as a payload\\n function blockNextMsg() external {\\n nextMsgBlocked = true;\\n }\\n\\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n lzEndpointLookup[destAddr] = lzEndpointAddr;\\n }\\n\\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n relayerFeeConfig.baseGas = _baseGas;\\n relayerFeeConfig.gasPerByte = _gasPerByte;\\n }\\n\\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n protocolFeeConfig.zroFee = _zroFee;\\n protocolFeeConfig.nativeBP = _nativeBP;\\n }\\n\\n function setOracleFee(uint _oracleFee) external {\\n oracleFee = _oracleFee;\\n }\\n\\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n defaultAdapterParams = _adapterParams;\\n }\\n\\n // --------------------- Internal Functions ---------------------\\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n while (msgs.length > 0) {\\n QueuedPayload memory payload = msgs[msgs.length - 1];\\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n msgs.pop();\\n }\\n }\\n\\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\\n if (_payInZro) {\\n return protocolFeeConfig.zroFee;\\n } else {\\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n }\\n }\\n\\n function _getRelayerFee(\\n uint16, /* _dstChainId */\\n uint16, /* _outboundProofType */\\n address, /* _userApplication */\\n uint _payloadSize,\\n bytes memory _adapterParams\\n ) internal view returns (uint) {\\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n if (txType == 2) {\\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n totalRemoteToken += dstNativeAmt;\\n }\\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n totalRemoteToken += remoteGasTotal;\\n\\n // tokenConversionRate = dstPrice / localPrice\\n // basePrice = totalRemoteToken * tokenConversionRate\\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n return basePrice + _payloadSize * pricePerByte;\\n }\\n}\\n\",\"keccak256\":\"0xed3c937bc98dda9c5c4e05379b87629540e8fa628d0e62c4e3d01e25b47bbedf\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1154,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"lzEndpointLookup","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"},{"astId":1156,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"mockChainId","offset":0,"slot":"1","type":"t_uint16"},{"astId":1158,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nextMsgBlocked","offset":2,"slot":"1","type":"t_bool"},{"astId":1161,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"relayerFeeConfig","offset":0,"slot":"2","type":"t_struct(RelayerFeeConfig)1217_storage"},{"astId":1164,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"protocolFeeConfig","offset":0,"slot":"4","type":"t_struct(ProtocolFeeConfig)1206_storage"},{"astId":1166,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"oracleFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":1168,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"defaultAdapterParams","offset":0,"slot":"7","type":"t_bytes_storage"},{"astId":1174,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"inboundNonce","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))"},{"astId":1180,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"outboundNonce","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_mapping(t_address,t_uint64))"},{"astId":1187,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"storedPayload","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))"},{"astId":1195,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"msgsToDeliver","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))"},{"astId":1198,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_send_entered_state","offset":0,"slot":"12","type":"t_uint8"},{"astId":1201,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_receive_entered_state","offset":1,"slot":"12","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage":{"base":"t_struct(QueuedPayload)1231_storage","encoding":"dynamic_array","label":"struct LZEndpointMock.QueuedPayload[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_uint64)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])","numberOfBytes":"32","value":"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage"},"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.StoredPayload)","numberOfBytes":"32","value":"t_struct(StoredPayload)1224_storage"},"t_mapping(t_bytes_memory_ptr,t_uint64)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_uint16,t_mapping(t_address,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => uint64))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint64)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => uint64))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_uint64)"},"t_struct(ProtocolFeeConfig)1206_storage":{"encoding":"inplace","label":"struct LZEndpointMock.ProtocolFeeConfig","members":[{"astId":1203,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"zroFee","offset":0,"slot":"0","type":"t_uint256"},{"astId":1205,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nativeBP","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_struct(QueuedPayload)1231_storage":{"encoding":"inplace","label":"struct LZEndpointMock.QueuedPayload","members":[{"astId":1226,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":0,"slot":"0","type":"t_address"},{"astId":1228,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nonce","offset":20,"slot":"0","type":"t_uint64"},{"astId":1230,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"numberOfBytes":"64"},"t_struct(RelayerFeeConfig)1217_storage":{"encoding":"inplace","label":"struct LZEndpointMock.RelayerFeeConfig","members":[{"astId":1208,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstPriceRatio","offset":0,"slot":"0","type":"t_uint128"},{"astId":1210,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstGasPriceInWei","offset":16,"slot":"0","type":"t_uint128"},{"astId":1212,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstNativeAmtCap","offset":0,"slot":"1","type":"t_uint128"},{"astId":1214,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"baseGas","offset":16,"slot":"1","type":"t_uint64"},{"astId":1216,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"gasPerByte","offset":24,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_struct(StoredPayload)1224_storage":{"encoding":"inplace","label":"struct LZEndpointMock.StoredPayload","members":[{"astId":1219,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadLength","offset":0,"slot":"0","type":"t_uint64"},{"astId":1221,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":8,"slot":"0","type":"t_address"},{"astId":1223,"contract":"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadHash","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol":{"BytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c01b37cbd2e9bd6c98247907be889743b8c8fcb7c274624d7a76310c6b6bd0164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 ADD 0xB3 PUSH29 0xBD2E9BD6C98247907BE889743B8C8FCB7C274624D7A76310C6B6BD0164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"370:18108:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;370:18108:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c01b37cbd2e9bd6c98247907be889743b8c8fcb7c274624d7a76310c6b6bd0164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 ADD 0xB3 PUSH29 0xBD2E9BD6C98247907BE889743B8C8FCB7C274624D7A76310C6B6BD0164 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"370:18108:7:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"concat(bytes memory,bytes memory)":"infinite","concatStorage(bytes storage pointer,bytes memory)":"infinite","equal(bytes memory,bytes memory)":"infinite","equalStorage(bytes storage pointer,bytes memory)":"infinite","slice(bytes memory,uint256,uint256)":"infinite","toAddress(bytes memory,uint256)":"infinite","toBytes32(bytes memory,uint256)":"infinite","toUint128(bytes memory,uint256)":"infinite","toUint16(bytes memory,uint256)":"infinite","toUint256(bytes memory,uint256)":"infinite","toUint32(bytes memory,uint256)":"infinite","toUint64(bytes memory,uint256)":"infinite","toUint8(bytes memory,uint256)":"infinite","toUint96(bytes memory,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol":{"ExcessivelySafeCall":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e5af05bee3f9c673b3fd06a9db29ba2b01b924e99a9396efe99d79814b3753c164736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 0xAF SDIV 0xBE 0xE3 0xF9 0xC6 PUSH20 0xB3FD06A9DB29BA2B01B924E99A9396EFE99D7981 0x4B CALLDATACOPY MSTORE8 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"72:5333:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72:5333:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e5af05bee3f9c673b3fd06a9db29ba2b01b924e99a9396efe99d79814b3753c164736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 0xAF SDIV 0xBE 0xE3 0xF9 0xC6 PUSH20 0xB3FD06A9DB29BA2B01B924E99A9396EFE99D7981 0x4B CALLDATACOPY MSTORE8 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"72:5333:8:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"excessivelySafeCall(address,uint256,uint16,bytes memory)":"infinite","excessivelySafeStaticCall(address,uint256,uint16,bytes memory)":"infinite","swapSelector(bytes4,bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":\"ExcessivelySafeCall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.","kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":292,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":475,"id":null,"parameterSlots":2,"returnSlots":2},"extract_byte_array_length":{"entryPoint":581,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":270,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1985:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1658:325:25","statements":[{"nodeType":"YulAssignment","src":"1668:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1682:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1685:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1668:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1699:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1729:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"1735:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1725:3:25"},"nodeType":"YulFunctionCall","src":"1725:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1703:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1776:31:25","statements":[{"nodeType":"YulAssignment","src":"1778:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1792:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1800:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1788:3:25"},"nodeType":"YulFunctionCall","src":"1788:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1778:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1756:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:25"},"nodeType":"YulFunctionCall","src":"1749:26:25"},"nodeType":"YulIf","src":"1746:61:25"},{"body":{"nodeType":"YulBlock","src":"1866:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1887:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1894:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1899:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1890:3:25"},"nodeType":"YulFunctionCall","src":"1890:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:25"},"nodeType":"YulFunctionCall","src":"1880:31:25"},"nodeType":"YulExpressionStatement","src":"1880:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1934:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1924:6:25"},"nodeType":"YulFunctionCall","src":"1924:15:25"},"nodeType":"YulExpressionStatement","src":"1924:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1962:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1952:6:25"},"nodeType":"YulFunctionCall","src":"1952:15:25"},"nodeType":"YulExpressionStatement","src":"1952:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1822:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1845:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1842:2:25"},"nodeType":"YulFunctionCall","src":"1842:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1819:2:25"},"nodeType":"YulFunctionCall","src":"1819:38:25"},"nodeType":"YulIf","src":"1816:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1638:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1603:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000aef38038062000aef8339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000282565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b602082108114156200027c57634e487b7160e01b600052602260045260246000fd5b50919050565b61085d80620002926000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069a565b60405180910390f35b6100df6100da36600461070b565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610735565b61024a565b604051601281526020016100c3565b6100df61013136600461070b565b61026e565b6100f3610144366004610771565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461070b565b61029f565b6100df61018836600461070b565b61031f565b6100f361019b366004610793565b61032d565b6060600380546101af906107c6565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c6565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b9190610801565b610358565b6060600480546101af906107c6565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f0565b600060208083528351808285015260005b818110156106c7578581018301518582016040015282016106ab565b818111156106d9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461070657600080fd5b919050565b6000806040838503121561071e57600080fd5b610727836106ef565b946020939093013593505050565b60008060006060848603121561074a57600080fd5b610753846106ef565b9250610761602085016106ef565b9150604084013590509250925092565b60006020828403121561078357600080fd5b61078c826106ef565b9392505050565b600080604083850312156107a657600080fd5b6107af836106ef565b91506107bd602084016106ef565b90509250929050565b600181811c908216806107da57607f821691505b602082108114156107fb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561082257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220c93e0653d3466c26d2008803bbb9be73ca2adbd30ddd61dff70e9cba393ebf9464736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xAEF CODESIZE SUB DUP1 PUSH3 0xAEF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1DB JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x282 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x245 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x153 JUMPI PUSH3 0x153 PUSH3 0x10E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x17E JUMPI PUSH3 0x17E PUSH3 0x10E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1BF JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x1A0 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1D1 JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x215 DUP7 DUP4 DUP8 ADD PUSH3 0x124 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x22C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x23B DUP6 DUP3 DUP7 ADD PUSH3 0x124 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x25A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x27C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x85D DUP1 PUSH3 0x292 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x69A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x735 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x771 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x290 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x29F JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DB SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x358 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x258 DUP6 DUP3 DUP6 PUSH2 0x47C JUMP JUMPDEST PUSH2 0x263 DUP6 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x281 DUP4 DUP4 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x28B SWAP2 SWAP1 PUSH2 0x801 JUMP JUMPDEST PUSH2 0x358 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AD DUP3 DUP7 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x312 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x263 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x488 DUP5 DUP5 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F0 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x309 JUMP JUMPDEST PUSH2 0x4F0 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x634 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x6AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x727 DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x753 DUP5 PUSH2 0x6EF JUMP JUMPDEST SWAP3 POP PUSH2 0x761 PUSH1 0x20 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78C DUP3 PUSH2 0x6EF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7AF DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH2 0x7BD PUSH1 0x20 DUP5 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7DA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x7FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x822 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 RETURNDATACOPY MOD MSTORE8 0xD3 CHAINID PUSH13 0x26D2008803BBB9BE73CA2ADBD3 0xD 0xDD PUSH2 0xDFF7 0xE SWAP13 0xBA CODECOPY RETURNDATACOPY 0xBF SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"1401:11610:10:-:0;;;1976:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;1401:11610;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1401:11610:10;;;-1:-1:-1;1401:11610:10;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1603:380::-;1682:1;1678:12;;;;1725;;;1746:61;;1800:4;1792:6;1788:17;1778:27;;1746:61;1853:2;1845:6;1842:14;1822:18;1819:38;1816:161;;;1899:10;1894:3;1890:20;1887:1;1880:31;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1816:161;;1603:380;;;:::o;:::-;1401:11610:10;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":856,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1148,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1270,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":813,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":562,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":671,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":622,"id":3225,"parameterSlots":2,"returnSlots":1},"@name_3051":{"entryPoint":416,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":656,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":586,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":799,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1775,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1905,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1939,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1845,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1803,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1690,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2049,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":1990,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5806:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069a565b60405180910390f35b6100df6100da36600461070b565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610735565b61024a565b604051601281526020016100c3565b6100df61013136600461070b565b61026e565b6100f3610144366004610771565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df61017536600461070b565b61029f565b6100df61018836600461070b565b61031f565b6100f361019b366004610793565b61032d565b6060600380546101af906107c6565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c6565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b9190610801565b610358565b6060600480546101af906107c6565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f0565b600060208083528351808285015260005b818110156106c7578581018301518582016040015282016106ab565b818111156106d9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461070657600080fd5b919050565b6000806040838503121561071e57600080fd5b610727836106ef565b946020939093013593505050565b60008060006060848603121561074a57600080fd5b610753846106ef565b9250610761602085016106ef565b9150604084013590509250925092565b60006020828403121561078357600080fd5b61078c826106ef565b9392505050565b600080604083850312156107a657600080fd5b6107af836106ef565b91506107bd602084016106ef565b90509250929050565b600181811c908216806107da57607f821691505b602082108114156107fb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561082257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220c93e0653d3466c26d2008803bbb9be73ca2adbd30ddd61dff70e9cba393ebf9464736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x69A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x735 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x26E JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x771 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x290 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x29F JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x70B JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DB SWAP1 PUSH2 0x7C6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x358 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x258 DUP6 DUP3 DUP6 PUSH2 0x47C JUMP JUMPDEST PUSH2 0x263 DUP6 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x281 DUP4 DUP4 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x28B SWAP2 SWAP1 PUSH2 0x801 JUMP JUMPDEST PUSH2 0x358 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AD DUP3 DUP7 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x312 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x263 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x488 DUP5 DUP5 PUSH2 0x32D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F0 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x309 JUMP JUMPDEST PUSH2 0x4F0 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x358 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x634 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x309 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x6AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x727 DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x753 DUP5 PUSH2 0x6EF JUMP JUMPDEST SWAP3 POP PUSH2 0x761 PUSH1 0x20 DUP6 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78C DUP3 PUSH2 0x6EF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7AF DUP4 PUSH2 0x6EF JUMP JUMPDEST SWAP2 POP PUSH2 0x7BD PUSH1 0x20 DUP5 ADD PUSH2 0x6EF JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7DA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x7FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x822 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 RETURNDATACOPY MOD MSTORE8 0xD3 CHAINID PUSH13 0x26D2008803BBB9BE73CA2ADBD3 0xD 0xDD PUSH2 0xDFF7 0xE SWAP13 0xBA CODECOPY RETURNDATACOPY 0xBF SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"1401:11610:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;3406:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;2365:102::-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;14:597:25;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"428200","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"26978","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"},"internal":{"_afterTokenTransfer(address,address,uint256)":"infinite","_approve(address,address,uint256)":"infinite","_beforeTokenTransfer(address,address,uint256)":"infinite","_burn(address,uint256)":"infinite","_mint(address,uint256)":"infinite","_spendAllowance(address,address,uint256)":"infinite","_transfer(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/OmniVotingEscrow.sol":{"OmniVotingEscrow":{"abi":[{"inputs":[{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_votingEscrowRemapper","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"dstChainId","type":"uint16"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"TotalSupplyToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"dstChainId","type":"uint16"},{"indexed":false,"internalType":"address","name":"localUser","type":"address"},{"indexed":false,"internalType":"address","name":"remoteUser","type":"address"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"userPoint","type":"tuple"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"UserBalToChain","type":"event"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendTotalSupply","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendUserBalance","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendTotalSupply","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendUserBalance","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingEscrowRemapper","outputs":[{"internalType":"contract IVotingEscrowRemapper","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_2907":{"entryPoint":null,"id":2907,"parameterSlots":0,"returnSlots":0},"@_3785":{"entryPoint":null,"id":3785,"parameterSlots":2,"returnSlots":0},"@_494":{"entryPoint":null,"id":494,"parameterSlots":1,"returnSlots":0},"@_935":{"entryPoint":null,"id":935,"parameterSlots":1,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2995":{"entryPoint":335,"id":2995,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":440,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory":{"entryPoint":503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_address":{"entryPoint":415,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1224:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:25"},"nodeType":"YulFunctionCall","src":"125:12:25"},"nodeType":"YulExpressionStatement","src":"125:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:25"},"nodeType":"YulFunctionCall","src":"104:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:25"},"nodeType":"YulFunctionCall","src":"100:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:25"},"nodeType":"YulFunctionCall","src":"89:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:25"},"nodeType":"YulFunctionCall","src":"79:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:25"},"nodeType":"YulFunctionCall","src":"72:50:25"},"nodeType":"YulIf","src":"69:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:25","type":""}],"src":"14:131:25"},{"body":{"nodeType":"YulBlock","src":"248:287:25","statements":[{"body":{"nodeType":"YulBlock","src":"294:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"303:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"306:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"296:6:25"},"nodeType":"YulFunctionCall","src":"296:12:25"},"nodeType":"YulExpressionStatement","src":"296:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"269:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"265:3:25"},"nodeType":"YulFunctionCall","src":"265:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"290:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"261:3:25"},"nodeType":"YulFunctionCall","src":"261:32:25"},"nodeType":"YulIf","src":"258:52:25"},{"nodeType":"YulVariableDeclaration","src":"319:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"338:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"332:5:25"},"nodeType":"YulFunctionCall","src":"332:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"323:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"382:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"357:24:25"},"nodeType":"YulFunctionCall","src":"357:31:25"},"nodeType":"YulExpressionStatement","src":"357:31:25"},{"nodeType":"YulAssignment","src":"397:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"407:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"397:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"421:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"446:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"457:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"442:3:25"},"nodeType":"YulFunctionCall","src":"442:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"436:5:25"},"nodeType":"YulFunctionCall","src":"436:25:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"425:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"495:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"470:24:25"},"nodeType":"YulFunctionCall","src":"470:33:25"},"nodeType":"YulExpressionStatement","src":"470:33:25"},{"nodeType":"YulAssignment","src":"512:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"522:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"512:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"206:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"217:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"229:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"237:6:25","type":""}],"src":"150:385:25"},{"body":{"nodeType":"YulBlock","src":"714:230:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"731:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"742:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"724:6:25"},"nodeType":"YulFunctionCall","src":"724:21:25"},"nodeType":"YulExpressionStatement","src":"724:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"776:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"781:2:25","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"754:6:25"},"nodeType":"YulFunctionCall","src":"754:30:25"},"nodeType":"YulExpressionStatement","src":"754:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"804:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"815:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"800:3:25"},"nodeType":"YulFunctionCall","src":"800:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f","kind":"string","nodeType":"YulLiteral","src":"820:34:25","type":"","value":"OmniVotingEscrow: remapper canno"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"793:6:25"},"nodeType":"YulFunctionCall","src":"793:62:25"},"nodeType":"YulExpressionStatement","src":"793:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"886:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"871:3:25"},"nodeType":"YulFunctionCall","src":"871:18:25"},{"hexValue":"7420626520307830","kind":"string","nodeType":"YulLiteral","src":"891:10:25","type":"","value":"t be 0x0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"864:6:25"},"nodeType":"YulFunctionCall","src":"864:38:25"},"nodeType":"YulExpressionStatement","src":"864:38:25"},{"nodeType":"YulAssignment","src":"911:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"934:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:25"},"nodeType":"YulFunctionCall","src":"919:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"911:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"691:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"705:4:25","type":""}],"src":"540:404:25"},{"body":{"nodeType":"YulBlock","src":"1052:170:25","statements":[{"body":{"nodeType":"YulBlock","src":"1098:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1107:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1110:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1100:6:25"},"nodeType":"YulFunctionCall","src":"1100:12:25"},"nodeType":"YulExpressionStatement","src":"1100:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1073:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1082:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1069:3:25"},"nodeType":"YulFunctionCall","src":"1069:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1094:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1065:3:25"},"nodeType":"YulFunctionCall","src":"1065:32:25"},"nodeType":"YulIf","src":"1062:52:25"},{"nodeType":"YulVariableDeclaration","src":"1123:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1142:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1136:5:25"},"nodeType":"YulFunctionCall","src":"1136:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1127:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1161:24:25"},"nodeType":"YulFunctionCall","src":"1161:31:25"},"nodeType":"YulExpressionStatement","src":"1161:31:25"},{"nodeType":"YulAssignment","src":"1201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"1211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1201:6:25"}]}]},"name":"abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1018:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1029:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1041:6:25","type":""}],"src":"949:273:25"}]},"contents":"{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_stringliteral_3b771c3c8112e59a989fa8f24d75eb27eb2828708177ea3a4923594cf7312fa6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"OmniVotingEscrow: remapper canno\")\n mstore(add(headStart, 96), \"t be 0x0\")\n tail := add(headStart, 128)\n }\n function abi_decode_tuple_t_contract$_IVotingEscrow_$4518_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e06040526005805463ffffffff1916620100001790553480156200002357600080fd5b5060405162002fef38038062002fef8339810160408190526200004691620001b8565b818062000053336200014f565b6001600160a01b03908116608052821615159050620000c95760405162461bcd60e51b815260206004820152602860248201527f4f6d6e69566f74696e67457363726f773a2072656d61707065722063616e6e6f604482015267074206265203078360c41b606482015260840160405180910390fd5b6001600160a01b03811660c081905260408051630458184560e11b815290516308b0308a916004808201926020929091908290030181865afa15801562000114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013a9190620001f7565b6001600160a01b031660a052506200021e9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620001b557600080fd5b50565b60008060408385031215620001cc57600080fd5b8251620001d9816200019f565b6020840151909250620001ec816200019f565b809150509250929050565b6000602082840312156200020a57600080fd5b815162000217816200019f565b9392505050565b60805160a05160c051612d1c620002d360003960008181610269015261118901526000818161032b01528181610ad201528181610b7601528181610bf901528181610c6c01528181610d0501528181610eab01528181610f4601528181610fd80152818161104901526110ed0152600081816104f4015281816105ec0152818161083b015281816108c40152818161097401528181610e22015281816116ab01528181611adc0152611e100152612d1c6000f3fe6080604052600436106101b65760003560e01c80637533d788116100ec578063baf3292d1161008a578063df2a5b3b11610064578063df2a5b3b14610569578063eb8d72b714610589578063f2fde38b146105a9578063f5ecbdbc146105c957600080fd5b8063baf3292d14610516578063cbed8b9c14610536578063d1deba1f1461055657600080fd5b8063950c8a74116100c6578063950c8a74146104825780639f38369a146104a2578063a6c3d165146104c2578063b353aaa7146104e257600080fd5b80637533d788146103ff5780638cfd8f5c1461042c5780638da5cb5b1461046457600080fd5b806342d65a8d116101595780635b8c41e6116101335780635b8c41e61461034d57806365d092d0146103aa57806366ad5c8a146103ca578063715018a6146103ea57600080fd5b806342d65a8d146102e65780634a759489146103065780634f2bfe5b1461031957600080fd5b806316334c8f1161019557806316334c8f1461021d578063363bf0de146102575780633d8b38f6146102a3578063416b154a146102d357600080fd5b80621d3567146101bb57806307e0db17146101dd57806310ddb137146101fd575b600080fd5b3480156101c757600080fd5b506101db6101d636600461224e565b6105e9565b005b3480156101e957600080fd5b506101db6101f83660046122e1565b61081a565b34801561020957600080fd5b506101db6102183660046122e1565b6108a3565b34801561022957600080fd5b5061023d6102383660046122fc565b6108fb565b604080519283526020830191909152015b60405180910390f35b34801561026357600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024e565b3480156102af57600080fd5b506102c36102be366004612363565b610a01565b604051901515815260200161024e565b6101db6102e136600461248d565b610ace565b3480156102f257600080fd5b506101db610301366004612363565b610e03565b6101db6103143660046124ff565b610e89565b34801561032557600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b5061039c610368366004612584565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b60405190815260200161024e565b3480156103b657600080fd5b5061023d6103c53660046122fc565b6112a0565b3480156103d657600080fd5b506101db6103e536600461224e565b611303565b3480156103f657600080fd5b506101db6113df565b34801561040b57600080fd5b5061041f61041a3660046122e1565b6113f3565b60405161024e919061263d565b34801561043857600080fd5b5061039c610447366004612650565b600260209081526000928352604080842090915290825290205481565b34801561047057600080fd5b506000546001600160a01b031661028b565b34801561048e57600080fd5b5060035461028b906001600160a01b031681565b3480156104ae57600080fd5b5061041f6104bd3660046122e1565b61148d565b3480156104ce57600080fd5b506101db6104dd366004612363565b61159d565b3480156104ee57600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b506101db610531366004612683565b611630565b34801561054257600080fd5b506101db6105513660046126a0565b61168c565b6101db61056436600461224e565b611721565b34801561057557600080fd5b506101db61058436600461270e565b611926565b34801561059557600080fd5b506101db6105a4366004612363565b6119d8565b3480156105b557600080fd5b506101db6105c4366004612683565b611a32565b3480156105d557600080fd5b5061041f6105e436600461274a565b611aab565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461068490612797565b80601f01602080910402602001604051908101604052809291908181526020018280546106b090612797565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b50505050509050805186869050148015610718575060008151115b801561074057508051602082012060405161073690889088906127d2565b6040518091039020145b61079b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161065d565b6108118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b5c92505050565b50505050505050565b610822611c66565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050505050565b6108ab611c66565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161086e565b6000806000600560029054906101000a900461ffff1660405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525060405160200161094d92919061280e565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906109b3908a90309086908c908c908c9060040161284f565b6040805180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906128a5565b925092505094509492505050565b61ffff831660009081526001602052604081208054829190610a2290612797565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90612797565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b505050505090508383604051610ab29291906127d2565b60405180910390208180519060200120149150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be391906128f4565b9050610bf28160400151611cc0565b15610d7d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906128c9565b60405163d1febfb960e01b8152600481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1febfb9906024016080604051808303816000875af1158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906128f4565b90505b6000600560029054906101000a900461ffff1682604051602001610da292919061280e565b6040516020818303038152906040529050610dc1878288888834611cf1565b7fd76af77f4ffbd9969fdb15b1c1268d40cd4bf1093905e67639f369cb9f44c1728783604051610df292919061280e565b60405180910390a150505050505050565b610e0b611c66565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610e5b90869086908690600401612965565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610811573d6000803e3d6000fd5b60405163010ae75760e01b81526001600160a01b0386811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063010ae757906024016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906128c9565b6040516328d09d4760e01b81526001600160a01b038881166004830152602482018390529192506000917f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906044016080604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb391906128f4565b60405163adc6358960e01b81526001600160a01b0389811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063adc6358990602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128c9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a91906128f4565b6040516317b4eb8760e31b81526001600160a01b038c8116600483015261ffff8c1660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bda75c3890604401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612983565b905060006001600160a01b03821661120c578b61120e565b815b6005546040519192506000916112339161ffff1690849089908b9089906020016129a0565b60405160208183030381529060405290506112528c828d8d8d34611cf1565b7f3689d0fa90a175cc766502dc62c2abdee9ca4b276d4315adf98339a8354755808c8e848a886040516112899594939291906129e6565b60405180910390a150505050505050505050505050565b6005546040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052935190948594859461094d9461ffff9093169386938493909101612a16565b3330146113615760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161065d565b6113d78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611e8c92505050565b505050505050565b6113e7611c66565b6113f16000611ee4565b565b6001602052600090815260409020805461140c90612797565b80601f016020809104026020016040519081016040528092919081815260200182805461143890612797565b80156114855780601f1061145a57610100808354040283529160200191611485565b820191906000526020600020905b81548152906001019060200180831161146857829003601f168201915b505050505081565b61ffff81166000908152600160205260408120805460609291906114b090612797565b80601f01602080910402602001604051908101604052809291908181526020018280546114dc90612797565b80156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b505050505090508051600014156115825760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161065d565b610ac76000601483516115959190612a5d565b839190611f34565b6115a5611c66565b8181306040516020016115ba93929190612a74565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516115ef939192909101906120cb565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161162393929190612965565b60405180910390a1505050565b611638611c66565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b611694611c66565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116e89088908890889088908890600401612a9a565b600060405180830381600087803b15801561170257600080fd5b505af1158015611716573d6000803e3d6000fd5b505050505050505050565b61ffff8616600090815260046020526040808220905161174490889088906127d2565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806117c45760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161065d565b8083836040516117d59291906127d2565b6040518091039020146118345760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161065d565b61ffff8716600090815260046020526040808220905161185790899089906127d2565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526118ef918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611e8c92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051610df2959493929190612ad3565b61192e611c66565b600081116119765760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161065d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611623565b6119e0611c66565b61ffff831660009081526001602052604090206119fe90838361214f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161162393929190612965565b611a3a611c66565b6001600160a01b038116611a9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065d565b611aa881611ee4565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b539190810190612b0e565b95945050505050565b600080611bbf5a60966366ad5c8a60e01b89898989604051602401611b849493929190612b7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612041565b91509150816113d7578280519060200120600460008861ffff1661ffff16815260200190815260200160002086604051611bf99190612bb9565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611c569088908890889088908790612bd5565b60405180910390a1505050505050565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065d565b600042611cd062093a8084612c33565b611cdd9062093a80612c55565b611cea9062093a80612c74565b1092915050565b61ffff861660009081526001602052604081208054611d0f90612797565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3b90612797565b8015611d885780601f10611d5d57610100808354040283529160200191611d88565b820191906000526020600020905b815481529060010190602001808311611d6b57829003601f168201915b50505050509050805160001415611dfa5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161065d565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490611e51908b9086908c908c908c908c90600401612c8c565b6000604051808303818588803b158015611e6a57600080fd5b505af1158015611e7e573d6000803e3d6000fd5b505050505050505050505050565b60405162461bcd60e51b815260206004820152602760248201527f4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665604482015266206c7a4d73677360c81b606482015260840161065d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606081611f4281601f612c74565b1015611f815760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161065d565b611f8b8284612c74565b84511015611fcf5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161065d565b606082158015611fee5760405191506000825260208201604052612038565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561202757805183526020928301920161200f565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115612066576120666123ca565b6040519080825280601f01601f191660200182016040528015612090576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156120b2578692505b828152826000602083013e909890975095505050505050565b8280546120d790612797565b90600052602060002090601f0160209004810192826120f9576000855561213f565b82601f1061211257805160ff191683800117855561213f565b8280016001018555821561213f579182015b8281111561213f578251825591602001919060010190612124565b5061214b9291506121c3565b5090565b82805461215b90612797565b90600052602060002090601f01602090048101928261217d576000855561213f565b82601f106121965782800160ff1982351617855561213f565b8280016001018555821561213f579182015b8281111561213f5782358255916020019190600101906121a8565b5b8082111561214b57600081556001016121c4565b803561ffff811681146121ea57600080fd5b919050565b60008083601f84011261220157600080fd5b5081356001600160401b0381111561221857600080fd5b60208301915083602082850101111561223057600080fd5b9250929050565b80356001600160401b03811681146121ea57600080fd5b6000806000806000806080878903121561226757600080fd5b612270876121d8565b955060208701356001600160401b038082111561228c57600080fd5b6122988a838b016121ef565b90975095508591506122ac60408a01612237565b945060608901359150808211156122c257600080fd5b506122cf89828a016121ef565b979a9699509497509295939492505050565b6000602082840312156122f357600080fd5b610ac7826121d8565b6000806000806060858703121561231257600080fd5b61231b856121d8565b93506020850135801515811461233057600080fd5b925060408501356001600160401b0381111561234b57600080fd5b612357878288016121ef565b95989497509550505050565b60008060006040848603121561237857600080fd5b612381846121d8565b925060208401356001600160401b0381111561239c57600080fd5b6123a8868287016121ef565b9497909650939450505050565b6001600160a01b0381168114611aa857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612408576124086123ca565b604052919050565b60006001600160401b03821115612429576124296123ca565b50601f01601f191660200190565b600082601f83011261244857600080fd5b813561245b61245682612410565b6123e0565b81815284602083860101111561247057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156124a357600080fd5b6124ac856121d8565b935060208501356124bc816123b5565b925060408501356124cc816123b5565b915060608501356001600160401b038111156124e757600080fd5b6124f387828801612437565b91505092959194509250565b600080600080600060a0868803121561251757600080fd5b8535612522816123b5565b9450612530602087016121d8565b93506040860135612540816123b5565b92506060860135612550816123b5565b915060808601356001600160401b0381111561256b57600080fd5b61257788828901612437565b9150509295509295909350565b60008060006060848603121561259957600080fd5b6125a2846121d8565b925060208401356001600160401b038111156125bd57600080fd5b6125c986828701612437565b9250506125d860408501612237565b90509250925092565b60005b838110156125fc5781810151838201526020016125e4565b8381111561260b576000848401525b50505050565b600081518084526126298160208601602086016125e1565b601f01601f19169290920160200192915050565b602081526000610ac76020830184612611565b6000806040838503121561266357600080fd5b61266c836121d8565b915061267a602084016121d8565b90509250929050565b60006020828403121561269557600080fd5b8135610ac7816123b5565b6000806000806000608086880312156126b857600080fd5b6126c1866121d8565b94506126cf602087016121d8565b93506040860135925060608601356001600160401b038111156126f157600080fd5b6126fd888289016121ef565b969995985093965092949392505050565b60008060006060848603121561272357600080fd5b61272c846121d8565b925061273a602085016121d8565b9150604084013590509250925092565b6000806000806080858703121561276057600080fd5b612769856121d8565b9350612777602086016121d8565b92506040850135612787816123b5565b9396929550929360600135925050565b600181811c908216806127ab57607f821691505b602082108114156127cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b61ffff8316815260a08101610ac760208301846127e2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061287d90830187612611565b85151560608401528281036080840152612898818587612826565b9998505050505050505050565b600080604083850312156128b857600080fd5b505080516020909101519092909150565b6000602082840312156128db57600080fd5b5051919050565b8051600f81900b81146121ea57600080fd5b60006080828403121561290657600080fd5b604051608081018181106001600160401b0382111715612928576129286123ca565b604052612934836128e2565b8152612942602084016128e2565b602082015260408301516040820152606083015160608201528091505092915050565b61ffff84168152604060208201526000611b53604083018486612826565b60006020828403121561299557600080fd5b8151610ac7816123b5565b61ffff861681526001600160a01b03851660208201526040810184905261016081016129cf60608301856127e2565b6129dc60e08301846127e2565b9695505050505050565b61ffff861681526001600160a01b0385811660208301528416604082015261016081016129cf60608301856127e2565b61ffff861681526001600160a01b038516602082015260ff8416604082015261016081016129cf60608301856127e2565b634e487b7160e01b600052601160045260246000fd5b600082821015612a6f57612a6f612a47565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152612ac8608083018486612826565b979650505050505050565b61ffff86168152608060208201526000612af1608083018688612826565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215612b2057600080fd5b81516001600160401b03811115612b3657600080fd5b8201601f81018413612b4757600080fd5b8051612b5561245682612410565b818152856020838501011115612b6a57600080fd5b611b538260208301602086016125e1565b61ffff85168152608060208201526000612b986080830186612611565b6001600160401b03851660408401528281036060840152612ac88185612611565b60008251612bcb8184602087016125e1565b9190910192915050565b61ffff8616815260a060208201526000612bf260a0830187612611565b6001600160401b03861660408401528281036060840152612c138186612611565b90508281036080840152612c278185612611565b98975050505050505050565b600082612c5057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612c6f57612c6f612a47565b500290565b60008219821115612c8757612c87612a47565b500190565b61ffff8716815260c060208201526000612ca960c0830188612611565b8281036040840152612cbb8188612611565b6001600160a01b0387811660608601528616608085015283810360a08501529050612898818561261156fea2646970667358221220b85af53a2a319ccabd0aabf707afce404bbc10fcde62f9d2c0840fa8d9e9f31364736f6c634300080a0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE PUSH1 0x5 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH3 0x10000 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2FEF CODESIZE SUB DUP1 PUSH3 0x2FEF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x46 SWAP2 PUSH3 0x1B8 JUMP JUMPDEST DUP2 DUP1 PUSH3 0x53 CALLER PUSH3 0x14F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x80 MSTORE DUP3 AND ISZERO ISZERO SWAP1 POP PUSH3 0xC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2072656D61707065722063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x742062652030783 PUSH1 0xC4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xC0 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x4581845 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH4 0x8B0308A SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x114 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x13A SWAP2 SWAP1 PUSH3 0x1F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH3 0x21E SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x1D9 DUP2 PUSH3 0x19F JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x1EC DUP2 PUSH3 0x19F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x217 DUP2 PUSH3 0x19F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x2D1C PUSH3 0x2D3 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x269 ADD MSTORE PUSH2 0x1189 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x32B ADD MSTORE DUP2 DUP2 PUSH2 0xAD2 ADD MSTORE DUP2 DUP2 PUSH2 0xB76 ADD MSTORE DUP2 DUP2 PUSH2 0xBF9 ADD MSTORE DUP2 DUP2 PUSH2 0xC6C ADD MSTORE DUP2 DUP2 PUSH2 0xD05 ADD MSTORE DUP2 DUP2 PUSH2 0xEAB ADD MSTORE DUP2 DUP2 PUSH2 0xF46 ADD MSTORE DUP2 DUP2 PUSH2 0xFD8 ADD MSTORE DUP2 DUP2 PUSH2 0x1049 ADD MSTORE PUSH2 0x10ED ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4F4 ADD MSTORE DUP2 DUP2 PUSH2 0x5EC ADD MSTORE DUP2 DUP2 PUSH2 0x83B ADD MSTORE DUP2 DUP2 PUSH2 0x8C4 ADD MSTORE DUP2 DUP2 PUSH2 0x974 ADD MSTORE DUP2 DUP2 PUSH2 0xE22 ADD MSTORE DUP2 DUP2 PUSH2 0x16AB ADD MSTORE DUP2 DUP2 PUSH2 0x1ADC ADD MSTORE PUSH2 0x1E10 ADD MSTORE PUSH2 0x2D1C PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBAF3292D GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDF2A5B3B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x589 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x516 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x536 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x482 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x65D092D0 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x4A759489 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x4F2BFE5B EQ PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x16334C8F GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x16334C8F EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x363BF0DE EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x416B154A EQ PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x1FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x8A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0x2BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x248D JUMP JUMPDEST PUSH2 0xACE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x301 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xE03 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x24FF JUMP JUMPDEST PUSH2 0xE89 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x2584 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x12A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1303 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x13DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x263D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x2650 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x28B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x28B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x4BD CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x4DD CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x159D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x531 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x26A0 JUMP JUMPDEST PUSH2 0x168C JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1721 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x584 CALLDATASIZE PUSH1 0x4 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x1926 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x19D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1A32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x5E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x274A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x684 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x718 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x740 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x736 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x79B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x811 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1B5C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x822 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x89C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AB PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x86E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x94D SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP3 MSTORE SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x9B3 SWAP1 DUP11 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x284F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9F3 SWAP2 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xA22 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA4E SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA9B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA9B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA7E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xAB2 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB52 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBE3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP PUSH2 0xBF2 DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x1CC0 JUMP JUMPDEST ISZERO PUSH2 0xD7D JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2C4C5C1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCEC SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD7A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xDC1 DUP8 DUP3 DUP9 DUP9 DUP9 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0xD76AF77F4FFBD9969FDB15B1C1268D40CD4BF1093905E67639F369CB9F44C172 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE0B PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xE5B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x811 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10AE757 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x10AE757 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF1A SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28D09D47 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0x28D09D47 SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xADC63589 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xADC63589 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1043 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C9 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1136 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x115A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x17B4EB87 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xBDA75C38 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11F4 SWAP2 SWAP1 PUSH2 0x2983 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x120C JUMPI DUP12 PUSH2 0x120E JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x1233 SWAP2 PUSH2 0xFFFF AND SWAP1 DUP5 SWAP1 DUP10 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x29A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1252 DUP13 DUP3 DUP14 DUP14 DUP14 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0x3689D0FA90A175CC766502DC62C2ABDEE9CA4B276D4315ADF98339A835475580 DUP13 DUP15 DUP5 DUP11 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1289 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP4 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE DUP6 MLOAD SWAP4 DUP5 ADD DUP7 MSTORE DUP3 DUP5 MSTORE DUP4 DUP3 ADD DUP4 SWAP1 MSTORE DUP4 DUP7 ADD DUP4 SWAP1 MSTORE DUP4 ADD DUP3 SWAP1 MSTORE SWAP4 MLOAD SWAP1 SWAP5 DUP6 SWAP5 DUP6 SWAP5 PUSH2 0x94D SWAP5 PUSH2 0xFFFF SWAP1 SWAP4 AND SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP1 SWAP2 ADD PUSH2 0x2A16 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x13D7 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13E7 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0x13F1 PUSH1 0x0 PUSH2 0x1EE4 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x140C SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1438 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1485 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x145A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1485 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1468 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x14B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x14DC SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1529 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x14FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1529 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x150C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1582 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xAC7 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1595 SWAP2 SWAP1 PUSH2 0x2A5D JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x15A5 PUSH2 0x1C66 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15BA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x15EF SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20CB JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1638 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x1694 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x16E8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2A9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1744 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x17C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x17D5 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1834 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1857 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x18EF SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2AD3 JUMP JUMPDEST PUSH2 0x192E PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1623 JUMP JUMPDEST PUSH2 0x19E0 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FE SWAP1 DUP4 DUP4 PUSH2 0x214F JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH2 0x1A3A PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A9F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1AA8 DUP2 PUSH2 0x1EE4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1B53 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B0E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BBF GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1B84 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2041 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x13D7 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1BF9 SWAP2 SWAP1 PUSH2 0x2BB9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x1C56 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2BD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH2 0x1CD0 PUSH3 0x93A80 DUP5 PUSH2 0x2C33 JUMP JUMPDEST PUSH2 0x1CDD SWAP1 PUSH3 0x93A80 PUSH2 0x2C55 JUMP JUMPDEST PUSH2 0x1CEA SWAP1 PUSH3 0x93A80 PUSH2 0x2C74 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1D0F SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D3B SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D88 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D5D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D88 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D6B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x1E51 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2063616E6E6F742072656365697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x206C7A4D736773 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1F42 DUP2 PUSH1 0x1F PUSH2 0x2C74 JUMP JUMPDEST LT ISZERO PUSH2 0x1F81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1F8B DUP3 DUP5 PUSH2 0x2C74 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1FCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1FEE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2027 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x200F JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2066 JUMPI PUSH2 0x2066 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x20B2 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x20D7 SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x20F9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2112 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2124 JUMP JUMPDEST POP PUSH2 0x214B SWAP3 SWAP2 POP PUSH2 0x21C3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x215B SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x217D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2196 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x214B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21C4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2270 DUP8 PUSH2 0x21D8 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2298 DUP11 DUP4 DUP12 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x22AC PUSH1 0x40 DUP11 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x22C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22CF DUP10 DUP3 DUP11 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC7 DUP3 PUSH2 0x21D8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x231B DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x234B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2357 DUP8 DUP3 DUP9 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2381 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x239C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23A8 DUP7 DUP3 DUP8 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2408 JUMPI PUSH2 0x2408 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2429 JUMPI PUSH2 0x2429 PUSH2 0x23CA JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x245B PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST PUSH2 0x23E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x24A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24AC DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x24BC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x24CC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP8 DUP3 DUP9 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2522 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP5 POP PUSH2 0x2530 PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2540 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0x2550 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x256B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2577 DUP9 DUP3 DUP10 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25A2 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x25BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25C9 DUP7 DUP3 DUP8 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x25D8 PUSH1 0x40 DUP6 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25FC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25E4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x260B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2629 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x266C DUP4 PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH2 0x267A PUSH1 0x20 DUP5 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26C1 DUP7 PUSH2 0x21D8 JUMP JUMPDEST SWAP5 POP PUSH2 0x26CF PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26FD DUP9 DUP3 DUP10 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x272C DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH2 0x273A PUSH1 0x20 DUP6 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2760 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2769 DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2777 PUSH1 0x20 DUP7 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2787 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x27CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x287D SWAP1 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2898 DUP2 DUP6 DUP8 PUSH2 0x2826 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE PUSH2 0x2934 DUP4 PUSH2 0x28E2 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2942 PUSH1 0x20 DUP5 ADD PUSH2 0x28E2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1B53 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0x29DC PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2A6F JUMPI PUSH2 0x2A6F PUSH2 0x2A47 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2AC8 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AF1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2B47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2B55 PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2B6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B53 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B98 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2AC8 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2BCB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x25E1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BF2 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C13 DUP2 DUP7 PUSH2 0x2611 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C27 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2C50 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2C6F JUMPI PUSH2 0x2C6F PUSH2 0x2A47 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2C87 JUMPI PUSH2 0x2C87 PUSH2 0x2A47 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CA9 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x2611 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2CBB DUP2 DUP9 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP7 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2898 DUP2 DUP6 PUSH2 0x2611 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 GAS CREATE2 GASPRICE 0x2A BALANCE SWAP13 0xCA 0xBD EXP 0xAB 0xF7 SMOD 0xAF 0xCE BLOCKHASH 0x4B 0xBC LT 0xFC 0xDE PUSH3 0xF9D2C0 DUP5 0xF 0xA8 0xD9 0xE9 RETURN SGT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"299:4343:14:-:0;;;523:18;;;-1:-1:-1;;587:16:14;;;;;874:342;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;955:11;;936:32:9;719:10:13;936:18:9;:32::i;:::-;-1:-1:-1;;;;;980:42:4;;;;;986:37:14;::::1;::::0;::::1;::::0;-1:-1:-1;978:90:14::1;;;::::0;-1:-1:-1;;;978:90:14;;742:2:25;978:90:14::1;::::0;::::1;724:21:25::0;781:2;761:18;;;754:30;820:34;800:18;;;793:62;-1:-1:-1;;;871:18:25;;;864:38;919:19;;978:90:14::1;;;;;;;;-1:-1:-1::0;;;;;1079:67:14;::::1;;::::0;;;1171:38:::1;::::0;;-1:-1:-1;;;1171:38:14;;;;:36:::1;::::0;:38:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;1079:67;1171:38:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1156:53:14::1;;::::0;-1:-1:-1;299:4343:14;;-1:-1:-1;299:4343:14;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:131:25:-;-1:-1:-1;;;;;89:31:25;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:385::-;229:6;237;290:2;278:9;269:7;265:23;261:32;258:52;;;306:1;303;296:12;258:52;338:9;332:16;357:31;382:5;357:31;:::i;:::-;457:2;442:18;;436:25;407:5;;-1:-1:-1;470:33:25;436:25;470:33;:::i;:::-;522:7;512:17;;;150:385;;;;;:::o;949:273::-;1041:6;1094:2;1082:9;1073:7;1069:23;1065:32;1062:52;;;1110:1;1107;1100:12;1062:52;1142:9;1136:16;1161:31;1186:5;1161:31;:::i;:::-;1211:5;949:273;-1:-1:-1;;;949:273:25:o;:::-;299:4343:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_blockingLzReceive_1026":{"entryPoint":7004,"id":1026,"parameterSlots":4,"returnSlots":0},"@_checkOwner_2938":{"entryPoint":7270,"id":2938,"parameterSlots":0,"returnSlots":0},"@_hasLastCheckpointExpired_4093":{"entryPoint":7360,"id":4093,"parameterSlots":1,"returnSlots":1},"@_lzSend_607":{"entryPoint":7409,"id":607,"parameterSlots":6,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_nonblockingLzReceive_3802":{"entryPoint":7820,"id":3802,"parameterSlots":4,"returnSlots":0},"@_transferOwnership_2995":{"entryPoint":7908,"id":2995,"parameterSlots":1,"returnSlots":0},"@estimateSendTotalSupply_3894":{"entryPoint":2299,"id":3894,"parameterSlots":4,"returnSlots":2},"@estimateSendUserBalance_3854":{"entryPoint":4768,"id":3854,"parameterSlots":4,"returnSlots":2},"@excessivelySafeCall_2826":{"entryPoint":8257,"id":2826,"parameterSlots":4,"returnSlots":2},"@failedMessages_943":{"entryPoint":null,"id":943,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_763":{"entryPoint":3587,"id":763,"parameterSlots":3,"returnSlots":0},"@getConfig_691":{"entryPoint":6827,"id":691,"parameterSlots":4,"returnSlots":1},"@getTrustedRemoteAddress_843":{"entryPoint":5261,"id":843,"parameterSlots":1,"returnSlots":1},"@isTrustedRemote_916":{"entryPoint":2561,"id":916,"parameterSlots":3,"returnSlots":1},"@lzEndpoint_446":{"entryPoint":null,"id":446,"parameterSlots":0,"returnSlots":0},"@lzReceive_553":{"entryPoint":1513,"id":553,"parameterSlots":6,"returnSlots":0},"@minDstGasLookup_456":{"entryPoint":null,"id":456,"parameterSlots":0,"returnSlots":0},"@nonblockingLzReceive_1056":{"entryPoint":4867,"id":1056,"parameterSlots":6,"returnSlots":0},"@owner_2924":{"entryPoint":null,"id":2924,"parameterSlots":0,"returnSlots":1},"@precrime_458":{"entryPoint":null,"id":458,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_2952":{"entryPoint":5087,"id":2952,"parameterSlots":0,"returnSlots":0},"@retryMessage_1135":{"entryPoint":5921,"id":1135,"parameterSlots":6,"returnSlots":0},"@sendTotalSupply_4073":{"entryPoint":2766,"id":4073,"parameterSlots":4,"returnSlots":0},"@sendUserBalance_3998":{"entryPoint":3721,"id":3998,"parameterSlots":5,"returnSlots":0},"@setConfig_715":{"entryPoint":5772,"id":715,"parameterSlots":5,"returnSlots":0},"@setMinDstGas_892":{"entryPoint":6438,"id":892,"parameterSlots":3,"returnSlots":0},"@setPrecrime_859":{"entryPoint":5680,"id":859,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_745":{"entryPoint":2211,"id":745,"parameterSlots":1,"returnSlots":0},"@setSendVersion_730":{"entryPoint":2074,"id":730,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_812":{"entryPoint":5533,"id":812,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_784":{"entryPoint":6616,"id":784,"parameterSlots":3,"returnSlots":0},"@slice_2517":{"entryPoint":7988,"id":2517,"parameterSlots":3,"returnSlots":1},"@transferOwnership_2975":{"entryPoint":6706,"id":2975,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_450":{"entryPoint":5107,"id":450,"parameterSlots":0,"returnSlots":0},"@votingEscrowRemapper_3725":{"entryPoint":null,"id":3725,"parameterSlots":0,"returnSlots":0},"@votingEscrow_3722":{"entryPoint":null,"id":3722,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9271,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":8687,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_int128_fromMemory":{"entryPoint":10466,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9859,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":10627,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":9471,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":11022,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":10484,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16":{"entryPoint":8929,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":9357,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr":{"entryPoint":8956,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9059,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":8782,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":9604,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":9808,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10058,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":9998,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":9888,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":10441,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":10405,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":8664,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":8759,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9745,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":10278,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_Point":{"entryPoint":10210,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10194,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":10868,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":11193,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9789,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10726,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10319,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10774,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10656,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10597,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":10963,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11404,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11131,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11221,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":10254,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10906,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":9184,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":9232,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11380,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11315,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11349,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":10845,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":9697,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":10135,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10823,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9162,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address_payable":{"entryPoint":9141,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:28353:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"62:111:25","statements":[{"nodeType":"YulAssignment","src":"72:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"94:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"81:12:25"},"nodeType":"YulFunctionCall","src":"81:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"72:5:25"}]},{"body":{"nodeType":"YulBlock","src":"151:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"160:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"153:6:25"},"nodeType":"YulFunctionCall","src":"153:12:25"},"nodeType":"YulExpressionStatement","src":"153:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"123:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"134:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"141:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"130:3:25"},"nodeType":"YulFunctionCall","src":"130:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"120:2:25"},"nodeType":"YulFunctionCall","src":"120:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"113:6:25"},"nodeType":"YulFunctionCall","src":"113:37:25"},"nodeType":"YulIf","src":"110:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"41:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"52:5:25","type":""}],"src":"14:159:25"},{"body":{"nodeType":"YulBlock","src":"250:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"299:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"308:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"311:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"301:6:25"},"nodeType":"YulFunctionCall","src":"301:12:25"},"nodeType":"YulExpressionStatement","src":"301:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"278:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"286:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:25"},"nodeType":"YulFunctionCall","src":"274:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"293:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"270:3:25"},"nodeType":"YulFunctionCall","src":"270:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"263:6:25"},"nodeType":"YulFunctionCall","src":"263:35:25"},"nodeType":"YulIf","src":"260:55:25"},{"nodeType":"YulAssignment","src":"324:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"324:6:25"}]},{"body":{"nodeType":"YulBlock","src":"397:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"406:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"409:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"399:6:25"},"nodeType":"YulFunctionCall","src":"399:12:25"},"nodeType":"YulExpressionStatement","src":"399:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"369:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"377:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"366:2:25"},"nodeType":"YulFunctionCall","src":"366:30:25"},"nodeType":"YulIf","src":"363:50:25"},{"nodeType":"YulAssignment","src":"422:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"438:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"446:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:25"},"nodeType":"YulFunctionCall","src":"434:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"422:8:25"}]},{"body":{"nodeType":"YulBlock","src":"503:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"512:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"515:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"505:6:25"},"nodeType":"YulFunctionCall","src":"505:12:25"},"nodeType":"YulExpressionStatement","src":"505:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"474:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"482:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"470:3:25"},"nodeType":"YulFunctionCall","src":"470:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"491:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"498:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"463:2:25"},"nodeType":"YulFunctionCall","src":"463:39:25"},"nodeType":"YulIf","src":"460:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"213:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"221:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"229:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"239:6:25","type":""}],"src":"178:347:25"},{"body":{"nodeType":"YulBlock","src":"578:123:25","statements":[{"nodeType":"YulAssignment","src":"588:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"610:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"597:12:25"},"nodeType":"YulFunctionCall","src":"597:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"588:5:25"}]},{"body":{"nodeType":"YulBlock","src":"679:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"688:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"691:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"681:6:25"},"nodeType":"YulFunctionCall","src":"681:12:25"},"nodeType":"YulExpressionStatement","src":"681:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"639:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"650:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"657:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"646:3:25"},"nodeType":"YulFunctionCall","src":"646:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"636:2:25"},"nodeType":"YulFunctionCall","src":"636:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"629:6:25"},"nodeType":"YulFunctionCall","src":"629:49:25"},"nodeType":"YulIf","src":"626:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"557:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"568:5:25","type":""}],"src":"530:171:25"},{"body":{"nodeType":"YulBlock","src":"863:705:25","statements":[{"body":{"nodeType":"YulBlock","src":"910:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"919:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"912:6:25"},"nodeType":"YulFunctionCall","src":"912:12:25"},"nodeType":"YulExpressionStatement","src":"912:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"884:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"893:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"880:3:25"},"nodeType":"YulFunctionCall","src":"880:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"905:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"876:3:25"},"nodeType":"YulFunctionCall","src":"876:33:25"},"nodeType":"YulIf","src":"873:53:25"},{"nodeType":"YulAssignment","src":"935:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"963:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"945:17:25"},"nodeType":"YulFunctionCall","src":"945:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"935:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"982:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1024:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1009:3:25"},"nodeType":"YulFunctionCall","src":"1009:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"996:12:25"},"nodeType":"YulFunctionCall","src":"996:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"986:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1037:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"1047:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1041:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1092:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1101:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1104:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:25"},"nodeType":"YulFunctionCall","src":"1094:12:25"},"nodeType":"YulExpressionStatement","src":"1094:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1080:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1088:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1077:2:25"},"nodeType":"YulFunctionCall","src":"1077:14:25"},"nodeType":"YulIf","src":"1074:34:25"},{"nodeType":"YulVariableDeclaration","src":"1117:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1173:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1184:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1169:3:25"},"nodeType":"YulFunctionCall","src":"1169:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1193:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1143:25:25"},"nodeType":"YulFunctionCall","src":"1143:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1121:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1131:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1210:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1220:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1210:6:25"}]},{"nodeType":"YulAssignment","src":"1237:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1247:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1237:6:25"}]},{"nodeType":"YulAssignment","src":"1264:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1296:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1307:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1292:3:25"},"nodeType":"YulFunctionCall","src":"1292:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"1274:17:25"},"nodeType":"YulFunctionCall","src":"1274:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1264:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1320:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1353:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1364:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1349:3:25"},"nodeType":"YulFunctionCall","src":"1349:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1336:12:25"},"nodeType":"YulFunctionCall","src":"1336:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1324:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1397:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1406:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1409:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1399:6:25"},"nodeType":"YulFunctionCall","src":"1399:12:25"},"nodeType":"YulExpressionStatement","src":"1399:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1383:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1393:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1380:2:25"},"nodeType":"YulFunctionCall","src":"1380:16:25"},"nodeType":"YulIf","src":"1377:36:25"},{"nodeType":"YulVariableDeclaration","src":"1422:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1478:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1489:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1474:3:25"},"nodeType":"YulFunctionCall","src":"1474:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1500:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1448:25:25"},"nodeType":"YulFunctionCall","src":"1448:60:25"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"1426:8:25","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"1436:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1517:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"1527:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1517:6:25"}]},{"nodeType":"YulAssignment","src":"1544:18:25","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"1554:8:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1544:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"789:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"800:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"812:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"820:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"828:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"836:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"844:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"852:6:25","type":""}],"src":"706:862:25"},{"body":{"nodeType":"YulBlock","src":"1642:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"1688:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1697:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1700:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1690:6:25"},"nodeType":"YulFunctionCall","src":"1690:12:25"},"nodeType":"YulExpressionStatement","src":"1690:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1663:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1672:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1659:3:25"},"nodeType":"YulFunctionCall","src":"1659:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1684:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1655:3:25"},"nodeType":"YulFunctionCall","src":"1655:32:25"},"nodeType":"YulIf","src":"1652:52:25"},{"nodeType":"YulAssignment","src":"1713:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1741:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1723:17:25"},"nodeType":"YulFunctionCall","src":"1723:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1713:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""}],"src":"1573:184:25"},{"body":{"nodeType":"YulBlock","src":"1881:523:25","statements":[{"body":{"nodeType":"YulBlock","src":"1927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1929:6:25"},"nodeType":"YulFunctionCall","src":"1929:12:25"},"nodeType":"YulExpressionStatement","src":"1929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1898:3:25"},"nodeType":"YulFunctionCall","src":"1898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1923:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1894:3:25"},"nodeType":"YulFunctionCall","src":"1894:32:25"},"nodeType":"YulIf","src":"1891:52:25"},{"nodeType":"YulAssignment","src":"1952:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1980:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1962:17:25"},"nodeType":"YulFunctionCall","src":"1962:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1952:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1999:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2029:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2040:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2025:3:25"},"nodeType":"YulFunctionCall","src":"2025:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2012:12:25"},"nodeType":"YulFunctionCall","src":"2012:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2003:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2097:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2106:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2109:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2099:6:25"},"nodeType":"YulFunctionCall","src":"2099:12:25"},"nodeType":"YulExpressionStatement","src":"2099:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2066:5:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2087:5:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2080:6:25"},"nodeType":"YulFunctionCall","src":"2080:13:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2073:6:25"},"nodeType":"YulFunctionCall","src":"2073:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2063:2:25"},"nodeType":"YulFunctionCall","src":"2063:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2056:6:25"},"nodeType":"YulFunctionCall","src":"2056:40:25"},"nodeType":"YulIf","src":"2053:60:25"},{"nodeType":"YulAssignment","src":"2122:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"2132:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2122:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2146:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2177:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2188:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2173:3:25"},"nodeType":"YulFunctionCall","src":"2173:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2160:12:25"},"nodeType":"YulFunctionCall","src":"2160:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2150:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2235:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2244:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2247:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2237:6:25"},"nodeType":"YulFunctionCall","src":"2237:12:25"},"nodeType":"YulExpressionStatement","src":"2237:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2207:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2215:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2204:2:25"},"nodeType":"YulFunctionCall","src":"2204:30:25"},"nodeType":"YulIf","src":"2201:50:25"},{"nodeType":"YulVariableDeclaration","src":"2260:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2316:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"2327:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2312:3:25"},"nodeType":"YulFunctionCall","src":"2312:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2336:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2286:25:25"},"nodeType":"YulFunctionCall","src":"2286:58:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2264:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2274:8:25","type":""}]},{"nodeType":"YulAssignment","src":"2353:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2363:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2353:6:25"}]},{"nodeType":"YulAssignment","src":"2380:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2390:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2380:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1823:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1834:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1846:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1854:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1862:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1870:6:25","type":""}],"src":"1762:642:25"},{"body":{"nodeType":"YulBlock","src":"2538:119:25","statements":[{"nodeType":"YulAssignment","src":"2548:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2560:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2571:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2556:3:25"},"nodeType":"YulFunctionCall","src":"2556:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2548:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2590:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2601:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2583:6:25"},"nodeType":"YulFunctionCall","src":"2583:25:25"},"nodeType":"YulExpressionStatement","src":"2583:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2628:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2639:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2624:3:25"},"nodeType":"YulFunctionCall","src":"2624:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"2644:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2617:6:25"},"nodeType":"YulFunctionCall","src":"2617:34:25"},"nodeType":"YulExpressionStatement","src":"2617:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2499:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2529:4:25","type":""}],"src":"2409:248:25"},{"body":{"nodeType":"YulBlock","src":"2793:102:25","statements":[{"nodeType":"YulAssignment","src":"2803:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2815:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2826:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2811:3:25"},"nodeType":"YulFunctionCall","src":"2811:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2803:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2845:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2860:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2876:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2881:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2872:3:25"},"nodeType":"YulFunctionCall","src":"2872:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"2885:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2868:3:25"},"nodeType":"YulFunctionCall","src":"2868:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2856:3:25"},"nodeType":"YulFunctionCall","src":"2856:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2838:6:25"},"nodeType":"YulFunctionCall","src":"2838:51:25"},"nodeType":"YulExpressionStatement","src":"2838:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2762:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2773:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2784:4:25","type":""}],"src":"2662:233:25"},{"body":{"nodeType":"YulBlock","src":"3005:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"3051:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3060:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3063:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3053:6:25"},"nodeType":"YulFunctionCall","src":"3053:12:25"},"nodeType":"YulExpressionStatement","src":"3053:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3026:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3035:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3022:3:25"},"nodeType":"YulFunctionCall","src":"3022:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3047:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3018:3:25"},"nodeType":"YulFunctionCall","src":"3018:32:25"},"nodeType":"YulIf","src":"3015:52:25"},{"nodeType":"YulAssignment","src":"3076:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3104:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3086:17:25"},"nodeType":"YulFunctionCall","src":"3086:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3076:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3123:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3154:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3165:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3150:3:25"},"nodeType":"YulFunctionCall","src":"3150:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3137:12:25"},"nodeType":"YulFunctionCall","src":"3137:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3127:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3212:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3221:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3224:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3214:6:25"},"nodeType":"YulFunctionCall","src":"3214:12:25"},"nodeType":"YulExpressionStatement","src":"3214:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3184:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3192:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3181:2:25"},"nodeType":"YulFunctionCall","src":"3181:30:25"},"nodeType":"YulIf","src":"3178:50:25"},{"nodeType":"YulVariableDeclaration","src":"3237:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3293:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3304:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3289:3:25"},"nodeType":"YulFunctionCall","src":"3289:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3313:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3263:25:25"},"nodeType":"YulFunctionCall","src":"3263:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"3241:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"3251:8:25","type":""}]},{"nodeType":"YulAssignment","src":"3330:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3340:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3330:6:25"}]},{"nodeType":"YulAssignment","src":"3357:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3367:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3357:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2955:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2966:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2978:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2986:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2994:6:25","type":""}],"src":"2900:481:25"},{"body":{"nodeType":"YulBlock","src":"3481:92:25","statements":[{"nodeType":"YulAssignment","src":"3491:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3503:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3514:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3499:3:25"},"nodeType":"YulFunctionCall","src":"3499:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3491:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3533:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3558:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3551:6:25"},"nodeType":"YulFunctionCall","src":"3551:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3544:6:25"},"nodeType":"YulFunctionCall","src":"3544:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3526:6:25"},"nodeType":"YulFunctionCall","src":"3526:41:25"},"nodeType":"YulExpressionStatement","src":"3526:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3450:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3461:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3472:4:25","type":""}],"src":"3386:187:25"},{"body":{"nodeType":"YulBlock","src":"3631:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"3695:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3704:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3707:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3697:6:25"},"nodeType":"YulFunctionCall","src":"3697:12:25"},"nodeType":"YulExpressionStatement","src":"3697:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3654:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3665:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3680:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3685:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3676:3:25"},"nodeType":"YulFunctionCall","src":"3676:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"3689:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3672:3:25"},"nodeType":"YulFunctionCall","src":"3672:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3661:3:25"},"nodeType":"YulFunctionCall","src":"3661:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3651:2:25"},"nodeType":"YulFunctionCall","src":"3651:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3644:6:25"},"nodeType":"YulFunctionCall","src":"3644:50:25"},"nodeType":"YulIf","src":"3641:70:25"}]},"name":"validator_revert_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3620:5:25","type":""}],"src":"3578:139:25"},{"body":{"nodeType":"YulBlock","src":"3754:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3771:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3778:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3783:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3774:3:25"},"nodeType":"YulFunctionCall","src":"3774:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3764:6:25"},"nodeType":"YulFunctionCall","src":"3764:31:25"},"nodeType":"YulExpressionStatement","src":"3764:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3811:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3814:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3804:6:25"},"nodeType":"YulFunctionCall","src":"3804:15:25"},"nodeType":"YulExpressionStatement","src":"3804:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3835:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3838:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3828:6:25"},"nodeType":"YulFunctionCall","src":"3828:15:25"},"nodeType":"YulExpressionStatement","src":"3828:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3722:127:25"},{"body":{"nodeType":"YulBlock","src":"3899:230:25","statements":[{"nodeType":"YulAssignment","src":"3909:19:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3925:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3919:5:25"},"nodeType":"YulFunctionCall","src":"3919:9:25"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3909:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3937:58:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3959:6:25"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"3975:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"3981:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3971:3:25"},"nodeType":"YulFunctionCall","src":"3971:13:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3990:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3986:3:25"},"nodeType":"YulFunctionCall","src":"3986:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3967:3:25"},"nodeType":"YulFunctionCall","src":"3967:27:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3955:3:25"},"nodeType":"YulFunctionCall","src":"3955:40:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3941:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4070:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4072:16:25"},"nodeType":"YulFunctionCall","src":"4072:18:25"},"nodeType":"YulExpressionStatement","src":"4072:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4013:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"4025:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4010:2:25"},"nodeType":"YulFunctionCall","src":"4010:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4049:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4061:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4046:2:25"},"nodeType":"YulFunctionCall","src":"4046:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4007:2:25"},"nodeType":"YulFunctionCall","src":"4007:62:25"},"nodeType":"YulIf","src":"4004:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4108:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4112:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4101:6:25"},"nodeType":"YulFunctionCall","src":"4101:22:25"},"nodeType":"YulExpressionStatement","src":"4101:22:25"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"3879:4:25","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3888:6:25","type":""}],"src":"3854:275:25"},{"body":{"nodeType":"YulBlock","src":"4191:129:25","statements":[{"body":{"nodeType":"YulBlock","src":"4235:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4237:16:25"},"nodeType":"YulFunctionCall","src":"4237:18:25"},"nodeType":"YulExpressionStatement","src":"4237:18:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4207:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4215:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4204:2:25"},"nodeType":"YulFunctionCall","src":"4204:30:25"},"nodeType":"YulIf","src":"4201:56:25"},{"nodeType":"YulAssignment","src":"4266:48:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4286:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4282:3:25"},"nodeType":"YulFunctionCall","src":"4282:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4303:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4299:3:25"},"nodeType":"YulFunctionCall","src":"4299:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4278:3:25"},"nodeType":"YulFunctionCall","src":"4278:29:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4274:3:25"},"nodeType":"YulFunctionCall","src":"4274:40:25"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"4266:4:25"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"4171:6:25","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"4182:4:25","type":""}],"src":"4134:186:25"},{"body":{"nodeType":"YulBlock","src":"4377:410:25","statements":[{"body":{"nodeType":"YulBlock","src":"4426:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4435:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4438:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4428:6:25"},"nodeType":"YulFunctionCall","src":"4428:12:25"},"nodeType":"YulExpressionStatement","src":"4428:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4405:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4413:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4401:3:25"},"nodeType":"YulFunctionCall","src":"4401:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"4420:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4397:3:25"},"nodeType":"YulFunctionCall","src":"4397:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4390:6:25"},"nodeType":"YulFunctionCall","src":"4390:35:25"},"nodeType":"YulIf","src":"4387:55:25"},{"nodeType":"YulVariableDeclaration","src":"4451:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4474:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4461:12:25"},"nodeType":"YulFunctionCall","src":"4461:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4455:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4490:63:25","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4549:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"4521:27:25"},"nodeType":"YulFunctionCall","src":"4521:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4505:15:25"},"nodeType":"YulFunctionCall","src":"4505:48:25"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"4494:7:25","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4569:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4578:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4562:6:25"},"nodeType":"YulFunctionCall","src":"4562:19:25"},"nodeType":"YulExpressionStatement","src":"4562:19:25"},{"body":{"nodeType":"YulBlock","src":"4629:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4638:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4641:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4631:6:25"},"nodeType":"YulFunctionCall","src":"4631:12:25"},"nodeType":"YulExpressionStatement","src":"4631:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4604:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4612:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4600:3:25"},"nodeType":"YulFunctionCall","src":"4600:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"4617:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4596:3:25"},"nodeType":"YulFunctionCall","src":"4596:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"4624:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4593:2:25"},"nodeType":"YulFunctionCall","src":"4593:35:25"},"nodeType":"YulIf","src":"4590:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4671:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"4680:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4667:3:25"},"nodeType":"YulFunctionCall","src":"4667:18:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4691:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4699:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4687:3:25"},"nodeType":"YulFunctionCall","src":"4687:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4706:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4654:12:25"},"nodeType":"YulFunctionCall","src":"4654:55:25"},"nodeType":"YulExpressionStatement","src":"4654:55:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4733:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"4742:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4729:3:25"},"nodeType":"YulFunctionCall","src":"4729:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"4747:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4725:3:25"},"nodeType":"YulFunctionCall","src":"4725:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"4754:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4718:6:25"},"nodeType":"YulFunctionCall","src":"4718:38:25"},"nodeType":"YulExpressionStatement","src":"4718:38:25"},{"nodeType":"YulAssignment","src":"4765:16:25","value":{"name":"array_1","nodeType":"YulIdentifier","src":"4774:7:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"4765:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4351:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"4359:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"4367:5:25","type":""}],"src":"4325:462:25"},{"body":{"nodeType":"YulBlock","src":"4929:556:25","statements":[{"body":{"nodeType":"YulBlock","src":"4976:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4985:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4988:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4978:6:25"},"nodeType":"YulFunctionCall","src":"4978:12:25"},"nodeType":"YulExpressionStatement","src":"4978:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4950:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4959:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4946:3:25"},"nodeType":"YulFunctionCall","src":"4946:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4971:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4942:3:25"},"nodeType":"YulFunctionCall","src":"4942:33:25"},"nodeType":"YulIf","src":"4939:53:25"},{"nodeType":"YulAssignment","src":"5001:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5029:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"5011:17:25"},"nodeType":"YulFunctionCall","src":"5011:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5001:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5048:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5078:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5089:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5074:3:25"},"nodeType":"YulFunctionCall","src":"5074:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5061:12:25"},"nodeType":"YulFunctionCall","src":"5061:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5052:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5135:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5102:32:25"},"nodeType":"YulFunctionCall","src":"5102:39:25"},"nodeType":"YulExpressionStatement","src":"5102:39:25"},{"nodeType":"YulAssignment","src":"5150:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5160:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5150:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5174:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5206:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5217:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5202:3:25"},"nodeType":"YulFunctionCall","src":"5202:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5189:12:25"},"nodeType":"YulFunctionCall","src":"5189:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5178:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5263:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5230:32:25"},"nodeType":"YulFunctionCall","src":"5230:41:25"},"nodeType":"YulExpressionStatement","src":"5230:41:25"},{"nodeType":"YulAssignment","src":"5280:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"5290:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5280:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5306:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5337:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5348:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5333:3:25"},"nodeType":"YulFunctionCall","src":"5333:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5320:12:25"},"nodeType":"YulFunctionCall","src":"5320:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5310:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"5395:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5404:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5407:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5397:6:25"},"nodeType":"YulFunctionCall","src":"5397:12:25"},"nodeType":"YulExpressionStatement","src":"5397:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5367:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"5375:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5364:2:25"},"nodeType":"YulFunctionCall","src":"5364:30:25"},"nodeType":"YulIf","src":"5361:50:25"},{"nodeType":"YulAssignment","src":"5420:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5451:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"5462:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5447:3:25"},"nodeType":"YulFunctionCall","src":"5447:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5471:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"5430:16:25"},"nodeType":"YulFunctionCall","src":"5430:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5420:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4871:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4882:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4894:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4902:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4910:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4918:6:25","type":""}],"src":"4792:693:25"},{"body":{"nodeType":"YulBlock","src":"5644:689:25","statements":[{"body":{"nodeType":"YulBlock","src":"5691:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5700:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5703:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5693:6:25"},"nodeType":"YulFunctionCall","src":"5693:12:25"},"nodeType":"YulExpressionStatement","src":"5693:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5665:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5674:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5661:3:25"},"nodeType":"YulFunctionCall","src":"5661:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5686:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5657:3:25"},"nodeType":"YulFunctionCall","src":"5657:33:25"},"nodeType":"YulIf","src":"5654:53:25"},{"nodeType":"YulVariableDeclaration","src":"5716:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5729:12:25"},"nodeType":"YulFunctionCall","src":"5729:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5720:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5794:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5761:32:25"},"nodeType":"YulFunctionCall","src":"5761:39:25"},"nodeType":"YulExpressionStatement","src":"5761:39:25"},{"nodeType":"YulAssignment","src":"5809:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5819:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5809:6:25"}]},{"nodeType":"YulAssignment","src":"5833:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5865:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5876:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5861:3:25"},"nodeType":"YulFunctionCall","src":"5861:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"5843:17:25"},"nodeType":"YulFunctionCall","src":"5843:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5833:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"5889:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5921:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5932:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5917:3:25"},"nodeType":"YulFunctionCall","src":"5917:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5904:12:25"},"nodeType":"YulFunctionCall","src":"5904:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5893:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5978:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"5945:32:25"},"nodeType":"YulFunctionCall","src":"5945:41:25"},"nodeType":"YulExpressionStatement","src":"5945:41:25"},{"nodeType":"YulAssignment","src":"5995:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6005:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5995:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6021:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6053:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6064:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6049:3:25"},"nodeType":"YulFunctionCall","src":"6049:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6036:12:25"},"nodeType":"YulFunctionCall","src":"6036:32:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"6025:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"6110:7:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"6077:32:25"},"nodeType":"YulFunctionCall","src":"6077:41:25"},"nodeType":"YulExpressionStatement","src":"6077:41:25"},{"nodeType":"YulAssignment","src":"6127:17:25","value":{"name":"value_2","nodeType":"YulIdentifier","src":"6137:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6127:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6153:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6184:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6195:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6180:3:25"},"nodeType":"YulFunctionCall","src":"6180:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6167:12:25"},"nodeType":"YulFunctionCall","src":"6167:33:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6157:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6243:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6252:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6255:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6245:6:25"},"nodeType":"YulFunctionCall","src":"6245:12:25"},"nodeType":"YulExpressionStatement","src":"6245:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6215:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6212:2:25"},"nodeType":"YulFunctionCall","src":"6212:30:25"},"nodeType":"YulIf","src":"6209:50:25"},{"nodeType":"YulAssignment","src":"6268:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6299:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6310:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6295:3:25"},"nodeType":"YulFunctionCall","src":"6295:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6319:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6278:16:25"},"nodeType":"YulFunctionCall","src":"6278:49:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6268:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5578:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5589:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5601:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5617:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5625:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5633:6:25","type":""}],"src":"5490:843:25"},{"body":{"nodeType":"YulBlock","src":"6461:102:25","statements":[{"nodeType":"YulAssignment","src":"6471:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6483:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6494:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6479:3:25"},"nodeType":"YulFunctionCall","src":"6479:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6471:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6513:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6528:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6544:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6549:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6540:3:25"},"nodeType":"YulFunctionCall","src":"6540:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6553:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6536:3:25"},"nodeType":"YulFunctionCall","src":"6536:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6524:3:25"},"nodeType":"YulFunctionCall","src":"6524:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6506:6:25"},"nodeType":"YulFunctionCall","src":"6506:51:25"},"nodeType":"YulExpressionStatement","src":"6506:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6430:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6441:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6452:4:25","type":""}],"src":"6338:225:25"},{"body":{"nodeType":"YulBlock","src":"6679:353:25","statements":[{"body":{"nodeType":"YulBlock","src":"6725:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6734:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6737:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6727:6:25"},"nodeType":"YulFunctionCall","src":"6727:12:25"},"nodeType":"YulExpressionStatement","src":"6727:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6700:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"6709:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6696:3:25"},"nodeType":"YulFunctionCall","src":"6696:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"6721:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6692:3:25"},"nodeType":"YulFunctionCall","src":"6692:32:25"},"nodeType":"YulIf","src":"6689:52:25"},{"nodeType":"YulAssignment","src":"6750:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6778:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6760:17:25"},"nodeType":"YulFunctionCall","src":"6760:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6750:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6797:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6828:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6839:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6824:3:25"},"nodeType":"YulFunctionCall","src":"6824:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6811:12:25"},"nodeType":"YulFunctionCall","src":"6811:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6801:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6886:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6895:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6898:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6888:6:25"},"nodeType":"YulFunctionCall","src":"6888:12:25"},"nodeType":"YulExpressionStatement","src":"6888:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6858:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6866:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6855:2:25"},"nodeType":"YulFunctionCall","src":"6855:30:25"},"nodeType":"YulIf","src":"6852:50:25"},{"nodeType":"YulAssignment","src":"6911:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6942:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6953:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6938:3:25"},"nodeType":"YulFunctionCall","src":"6938:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6962:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6921:16:25"},"nodeType":"YulFunctionCall","src":"6921:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6911:6:25"}]},{"nodeType":"YulAssignment","src":"6979:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7011:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7022:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"6989:17:25"},"nodeType":"YulFunctionCall","src":"6989:37:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6979:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6629:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6640:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6652:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6660:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6668:6:25","type":""}],"src":"6568:464:25"},{"body":{"nodeType":"YulBlock","src":"7138:76:25","statements":[{"nodeType":"YulAssignment","src":"7148:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7160:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7171:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:25"},"nodeType":"YulFunctionCall","src":"7156:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7148:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7190:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"7201:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7183:6:25"},"nodeType":"YulFunctionCall","src":"7183:25:25"},"nodeType":"YulExpressionStatement","src":"7183:25:25"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7107:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7118:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7129:4:25","type":""}],"src":"7037:177:25"},{"body":{"nodeType":"YulBlock","src":"7272:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"7282:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"7291:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7286:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7351:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7376:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"7381:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7372:3:25"},"nodeType":"YulFunctionCall","src":"7372:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7395:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"7400:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7391:3:25"},"nodeType":"YulFunctionCall","src":"7391:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7385:5:25"},"nodeType":"YulFunctionCall","src":"7385:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7365:6:25"},"nodeType":"YulFunctionCall","src":"7365:39:25"},"nodeType":"YulExpressionStatement","src":"7365:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7312:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"7315:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7309:2:25"},"nodeType":"YulFunctionCall","src":"7309:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7323:19:25","statements":[{"nodeType":"YulAssignment","src":"7325:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7334:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"7337:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7330:3:25"},"nodeType":"YulFunctionCall","src":"7330:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7325:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"7305:3:25","statements":[]},"src":"7301:113:25"},{"body":{"nodeType":"YulBlock","src":"7440:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7453:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"7458:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7449:3:25"},"nodeType":"YulFunctionCall","src":"7449:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"7467:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7442:6:25"},"nodeType":"YulFunctionCall","src":"7442:27:25"},"nodeType":"YulExpressionStatement","src":"7442:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7429:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"7432:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7426:2:25"},"nodeType":"YulFunctionCall","src":"7426:13:25"},"nodeType":"YulIf","src":"7423:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"7250:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"7255:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"7260:6:25","type":""}],"src":"7219:258:25"},{"body":{"nodeType":"YulBlock","src":"7531:208:25","statements":[{"nodeType":"YulVariableDeclaration","src":"7541:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7561:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7555:5:25"},"nodeType":"YulFunctionCall","src":"7555:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7545:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7583:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"7588:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7576:6:25"},"nodeType":"YulFunctionCall","src":"7576:19:25"},"nodeType":"YulExpressionStatement","src":"7576:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7630:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"7637:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7626:3:25"},"nodeType":"YulFunctionCall","src":"7626:16:25"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7648:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"7653:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7644:3:25"},"nodeType":"YulFunctionCall","src":"7644:14:25"},{"name":"length","nodeType":"YulIdentifier","src":"7660:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7604:21:25"},"nodeType":"YulFunctionCall","src":"7604:63:25"},"nodeType":"YulExpressionStatement","src":"7604:63:25"},{"nodeType":"YulAssignment","src":"7676:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7691:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7704:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7712:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7700:3:25"},"nodeType":"YulFunctionCall","src":"7700:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7721:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7717:3:25"},"nodeType":"YulFunctionCall","src":"7717:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7696:3:25"},"nodeType":"YulFunctionCall","src":"7696:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7687:3:25"},"nodeType":"YulFunctionCall","src":"7687:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"7728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7683:3:25"},"nodeType":"YulFunctionCall","src":"7683:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7676:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7508:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7515:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7523:3:25","type":""}],"src":"7482:257:25"},{"body":{"nodeType":"YulBlock","src":"7863:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7880:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7891:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7873:6:25"},"nodeType":"YulFunctionCall","src":"7873:21:25"},"nodeType":"YulExpressionStatement","src":"7873:21:25"},{"nodeType":"YulAssignment","src":"7903:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7928:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7951:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7936:3:25"},"nodeType":"YulFunctionCall","src":"7936:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7911:16:25"},"nodeType":"YulFunctionCall","src":"7911:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7903:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7832:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7843:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7854:4:25","type":""}],"src":"7744:217:25"},{"body":{"nodeType":"YulBlock","src":"8051:171:25","statements":[{"body":{"nodeType":"YulBlock","src":"8097:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8106:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8109:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8099:6:25"},"nodeType":"YulFunctionCall","src":"8099:12:25"},"nodeType":"YulExpressionStatement","src":"8099:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8072:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8081:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8068:3:25"},"nodeType":"YulFunctionCall","src":"8068:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8093:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8064:3:25"},"nodeType":"YulFunctionCall","src":"8064:32:25"},"nodeType":"YulIf","src":"8061:52:25"},{"nodeType":"YulAssignment","src":"8122:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8150:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"8132:17:25"},"nodeType":"YulFunctionCall","src":"8132:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8122:6:25"}]},{"nodeType":"YulAssignment","src":"8169:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8201:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8212:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8197:3:25"},"nodeType":"YulFunctionCall","src":"8197:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"8179:17:25"},"nodeType":"YulFunctionCall","src":"8179:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8169:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8009:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8020:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8032:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8040:6:25","type":""}],"src":"7966:256:25"},{"body":{"nodeType":"YulBlock","src":"8328:76:25","statements":[{"nodeType":"YulAssignment","src":"8338:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8350:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8361:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8346:3:25"},"nodeType":"YulFunctionCall","src":"8346:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8338:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8380:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8391:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8373:6:25"},"nodeType":"YulFunctionCall","src":"8373:25:25"},"nodeType":"YulExpressionStatement","src":"8373:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8297:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8308:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8319:4:25","type":""}],"src":"8227:177:25"},{"body":{"nodeType":"YulBlock","src":"8510:102:25","statements":[{"nodeType":"YulAssignment","src":"8520:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8543:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8528:3:25"},"nodeType":"YulFunctionCall","src":"8528:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8520:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8562:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8577:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8593:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8598:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8589:3:25"},"nodeType":"YulFunctionCall","src":"8589:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"8602:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8585:3:25"},"nodeType":"YulFunctionCall","src":"8585:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8573:3:25"},"nodeType":"YulFunctionCall","src":"8573:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8555:6:25"},"nodeType":"YulFunctionCall","src":"8555:51:25"},"nodeType":"YulExpressionStatement","src":"8555:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8479:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8490:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8501:4:25","type":""}],"src":"8409:203:25"},{"body":{"nodeType":"YulBlock","src":"8744:102:25","statements":[{"nodeType":"YulAssignment","src":"8754:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8777:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8762:3:25"},"nodeType":"YulFunctionCall","src":"8762:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8754:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8796:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8811:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8827:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8832:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8823:3:25"},"nodeType":"YulFunctionCall","src":"8823:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"8836:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8819:3:25"},"nodeType":"YulFunctionCall","src":"8819:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8807:3:25"},"nodeType":"YulFunctionCall","src":"8807:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8789:6:25"},"nodeType":"YulFunctionCall","src":"8789:51:25"},"nodeType":"YulExpressionStatement","src":"8789:51:25"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8713:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8724:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8735:4:25","type":""}],"src":"8617:229:25"},{"body":{"nodeType":"YulBlock","src":"8921:185:25","statements":[{"body":{"nodeType":"YulBlock","src":"8967:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8976:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8979:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8969:6:25"},"nodeType":"YulFunctionCall","src":"8969:12:25"},"nodeType":"YulExpressionStatement","src":"8969:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8938:3:25"},"nodeType":"YulFunctionCall","src":"8938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8963:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8934:3:25"},"nodeType":"YulFunctionCall","src":"8934:32:25"},"nodeType":"YulIf","src":"8931:52:25"},{"nodeType":"YulVariableDeclaration","src":"8992:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9018:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9005:12:25"},"nodeType":"YulFunctionCall","src":"9005:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8996:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9070:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"9037:32:25"},"nodeType":"YulFunctionCall","src":"9037:39:25"},"nodeType":"YulExpressionStatement","src":"9037:39:25"},{"nodeType":"YulAssignment","src":"9085:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"9095:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9085:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8887:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8898:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8910:6:25","type":""}],"src":"8851:255:25"},{"body":{"nodeType":"YulBlock","src":"9249:484:25","statements":[{"body":{"nodeType":"YulBlock","src":"9296:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9305:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9308:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9298:6:25"},"nodeType":"YulFunctionCall","src":"9298:12:25"},"nodeType":"YulExpressionStatement","src":"9298:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9270:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9279:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9266:3:25"},"nodeType":"YulFunctionCall","src":"9266:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9291:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9262:3:25"},"nodeType":"YulFunctionCall","src":"9262:33:25"},"nodeType":"YulIf","src":"9259:53:25"},{"nodeType":"YulAssignment","src":"9321:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9349:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9331:17:25"},"nodeType":"YulFunctionCall","src":"9331:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9321:6:25"}]},{"nodeType":"YulAssignment","src":"9368:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9411:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9396:3:25"},"nodeType":"YulFunctionCall","src":"9396:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9378:17:25"},"nodeType":"YulFunctionCall","src":"9378:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9368:6:25"}]},{"nodeType":"YulAssignment","src":"9424:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9451:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9462:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9447:3:25"},"nodeType":"YulFunctionCall","src":"9447:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9434:12:25"},"nodeType":"YulFunctionCall","src":"9434:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9424:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9475:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9506:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9517:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9502:3:25"},"nodeType":"YulFunctionCall","src":"9502:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9489:12:25"},"nodeType":"YulFunctionCall","src":"9489:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9479:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9564:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9576:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9566:6:25"},"nodeType":"YulFunctionCall","src":"9566:12:25"},"nodeType":"YulExpressionStatement","src":"9566:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9536:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"9544:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9533:2:25"},"nodeType":"YulFunctionCall","src":"9533:30:25"},"nodeType":"YulIf","src":"9530:50:25"},{"nodeType":"YulVariableDeclaration","src":"9589:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9645:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9656:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9641:3:25"},"nodeType":"YulFunctionCall","src":"9641:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9665:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9615:25:25"},"nodeType":"YulFunctionCall","src":"9615:58:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9593:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9603:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9682:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9692:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9682:6:25"}]},{"nodeType":"YulAssignment","src":"9709:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9719:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9709:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9183:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9194:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9206:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9214:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9222:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9230:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9238:6:25","type":""}],"src":"9111:622:25"},{"body":{"nodeType":"YulBlock","src":"9840:222:25","statements":[{"body":{"nodeType":"YulBlock","src":"9886:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9895:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9888:6:25"},"nodeType":"YulFunctionCall","src":"9888:12:25"},"nodeType":"YulExpressionStatement","src":"9888:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9861:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9870:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9857:3:25"},"nodeType":"YulFunctionCall","src":"9857:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9882:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9853:3:25"},"nodeType":"YulFunctionCall","src":"9853:32:25"},"nodeType":"YulIf","src":"9850:52:25"},{"nodeType":"YulAssignment","src":"9911:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9939:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9921:17:25"},"nodeType":"YulFunctionCall","src":"9921:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9911:6:25"}]},{"nodeType":"YulAssignment","src":"9958:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9990:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10001:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9986:3:25"},"nodeType":"YulFunctionCall","src":"9986:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9968:17:25"},"nodeType":"YulFunctionCall","src":"9968:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9958:6:25"}]},{"nodeType":"YulAssignment","src":"10014:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10041:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10052:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10037:3:25"},"nodeType":"YulFunctionCall","src":"10037:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10024:12:25"},"nodeType":"YulFunctionCall","src":"10024:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10014:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9790:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9801:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9813:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9821:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9829:6:25","type":""}],"src":"9738:324:25"},{"body":{"nodeType":"YulBlock","src":"10186:349:25","statements":[{"body":{"nodeType":"YulBlock","src":"10233:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10242:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10245:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10235:6:25"},"nodeType":"YulFunctionCall","src":"10235:12:25"},"nodeType":"YulExpressionStatement","src":"10235:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10207:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10216:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10203:3:25"},"nodeType":"YulFunctionCall","src":"10203:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10228:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10199:3:25"},"nodeType":"YulFunctionCall","src":"10199:33:25"},"nodeType":"YulIf","src":"10196:53:25"},{"nodeType":"YulAssignment","src":"10258:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10286:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10268:17:25"},"nodeType":"YulFunctionCall","src":"10268:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10258:6:25"}]},{"nodeType":"YulAssignment","src":"10305:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10337:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10348:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10333:3:25"},"nodeType":"YulFunctionCall","src":"10333:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10315:17:25"},"nodeType":"YulFunctionCall","src":"10315:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10305:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10361:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10391:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10402:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10387:3:25"},"nodeType":"YulFunctionCall","src":"10387:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10374:12:25"},"nodeType":"YulFunctionCall","src":"10374:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10365:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10448:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"10415:32:25"},"nodeType":"YulFunctionCall","src":"10415:39:25"},"nodeType":"YulExpressionStatement","src":"10415:39:25"},{"nodeType":"YulAssignment","src":"10463:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10473:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10463:6:25"}]},{"nodeType":"YulAssignment","src":"10487:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10514:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10525:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10510:3:25"},"nodeType":"YulFunctionCall","src":"10510:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10497:12:25"},"nodeType":"YulFunctionCall","src":"10497:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10487:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10128:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10139:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10151:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10159:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10167:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10175:6:25","type":""}],"src":"10067:468:25"},{"body":{"nodeType":"YulBlock","src":"10714:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10731:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10742:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10724:6:25"},"nodeType":"YulFunctionCall","src":"10724:21:25"},"nodeType":"YulExpressionStatement","src":"10724:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10776:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10761:3:25"},"nodeType":"YulFunctionCall","src":"10761:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"10781:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10754:6:25"},"nodeType":"YulFunctionCall","src":"10754:30:25"},"nodeType":"YulExpressionStatement","src":"10754:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10804:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10815:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10800:3:25"},"nodeType":"YulFunctionCall","src":"10800:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"10820:32:25","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10793:6:25"},"nodeType":"YulFunctionCall","src":"10793:60:25"},"nodeType":"YulExpressionStatement","src":"10793:60:25"},{"nodeType":"YulAssignment","src":"10862:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10874:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10885:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10870:3:25"},"nodeType":"YulFunctionCall","src":"10870:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10862:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10691:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10705:4:25","type":""}],"src":"10540:354:25"},{"body":{"nodeType":"YulBlock","src":"10954:325:25","statements":[{"nodeType":"YulAssignment","src":"10964:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10978:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"10981:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10974:3:25"},"nodeType":"YulFunctionCall","src":"10974:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10964:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10995:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"11025:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"11031:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11021:3:25"},"nodeType":"YulFunctionCall","src":"11021:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"10999:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11072:31:25","statements":[{"nodeType":"YulAssignment","src":"11074:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11088:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11096:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11084:3:25"},"nodeType":"YulFunctionCall","src":"11084:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"11074:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"11052:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11045:6:25"},"nodeType":"YulFunctionCall","src":"11045:26:25"},"nodeType":"YulIf","src":"11042:61:25"},{"body":{"nodeType":"YulBlock","src":"11162:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11183:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11190:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"11195:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11186:3:25"},"nodeType":"YulFunctionCall","src":"11186:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11176:6:25"},"nodeType":"YulFunctionCall","src":"11176:31:25"},"nodeType":"YulExpressionStatement","src":"11176:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11227:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11230:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11220:6:25"},"nodeType":"YulFunctionCall","src":"11220:15:25"},"nodeType":"YulExpressionStatement","src":"11220:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11255:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11258:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11248:6:25"},"nodeType":"YulFunctionCall","src":"11248:15:25"},"nodeType":"YulExpressionStatement","src":"11248:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"11118:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11141:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11149:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11138:2:25"},"nodeType":"YulFunctionCall","src":"11138:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11115:2:25"},"nodeType":"YulFunctionCall","src":"11115:38:25"},"nodeType":"YulIf","src":"11112:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10934:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10943:6:25","type":""}],"src":"10899:380:25"},{"body":{"nodeType":"YulBlock","src":"11431:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11454:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"11459:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"11467:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11441:12:25"},"nodeType":"YulFunctionCall","src":"11441:33:25"},"nodeType":"YulExpressionStatement","src":"11441:33:25"},{"nodeType":"YulVariableDeclaration","src":"11483:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11497:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"11502:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11493:3:25"},"nodeType":"YulFunctionCall","src":"11493:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11487:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11525:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"11529:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11518:6:25"},"nodeType":"YulFunctionCall","src":"11518:13:25"},"nodeType":"YulExpressionStatement","src":"11518:13:25"},{"nodeType":"YulAssignment","src":"11540:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"11547:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11540:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11399:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11404:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11412:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11423:3:25","type":""}],"src":"11284:271:25"},{"body":{"nodeType":"YulBlock","src":"11734:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11751:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11762:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11744:6:25"},"nodeType":"YulFunctionCall","src":"11744:21:25"},"nodeType":"YulExpressionStatement","src":"11744:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11785:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11796:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11781:3:25"},"nodeType":"YulFunctionCall","src":"11781:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11801:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11774:6:25"},"nodeType":"YulFunctionCall","src":"11774:30:25"},"nodeType":"YulExpressionStatement","src":"11774:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11824:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11835:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11820:3:25"},"nodeType":"YulFunctionCall","src":"11820:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nodeType":"YulLiteral","src":"11840:34:25","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11813:6:25"},"nodeType":"YulFunctionCall","src":"11813:62:25"},"nodeType":"YulExpressionStatement","src":"11813:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11906:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11891:3:25"},"nodeType":"YulFunctionCall","src":"11891:18:25"},{"hexValue":"6e7472616374","kind":"string","nodeType":"YulLiteral","src":"11911:8:25","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11884:6:25"},"nodeType":"YulFunctionCall","src":"11884:36:25"},"nodeType":"YulExpressionStatement","src":"11884:36:25"},{"nodeType":"YulAssignment","src":"11929:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11937:3:25"},"nodeType":"YulFunctionCall","src":"11937:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11929:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11711:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11725:4:25","type":""}],"src":"11560:402:25"},{"body":{"nodeType":"YulBlock","src":"12066:89:25","statements":[{"nodeType":"YulAssignment","src":"12076:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12088:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12099:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12084:3:25"},"nodeType":"YulFunctionCall","src":"12084:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12076:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12118:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12133:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"12141:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12129:3:25"},"nodeType":"YulFunctionCall","src":"12129:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12111:6:25"},"nodeType":"YulFunctionCall","src":"12111:38:25"},"nodeType":"YulExpressionStatement","src":"12111:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12035:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12046:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12057:4:25","type":""}],"src":"11967:188:25"},{"body":{"nodeType":"YulBlock","src":"12209:241:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12226:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12242:2:25","type":"","value":"15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12252:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12246:5:25"},"nodeType":"YulFunctionCall","src":"12246:12:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"12231:10:25"},"nodeType":"YulFunctionCall","src":"12231:28:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12219:6:25"},"nodeType":"YulFunctionCall","src":"12219:41:25"},"nodeType":"YulExpressionStatement","src":"12219:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12280:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12285:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12276:3:25"},"nodeType":"YulFunctionCall","src":"12276:14:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12303:2:25","type":"","value":"15"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12317:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12324:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12313:3:25"},"nodeType":"YulFunctionCall","src":"12313:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12307:5:25"},"nodeType":"YulFunctionCall","src":"12307:23:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"12292:10:25"},"nodeType":"YulFunctionCall","src":"12292:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12269:6:25"},"nodeType":"YulFunctionCall","src":"12269:63:25"},"nodeType":"YulExpressionStatement","src":"12269:63:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12352:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12357:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12348:3:25"},"nodeType":"YulFunctionCall","src":"12348:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12374:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12381:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12370:3:25"},"nodeType":"YulFunctionCall","src":"12370:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12364:5:25"},"nodeType":"YulFunctionCall","src":"12364:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12341:6:25"},"nodeType":"YulFunctionCall","src":"12341:47:25"},"nodeType":"YulExpressionStatement","src":"12341:47:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12408:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12413:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12404:3:25"},"nodeType":"YulFunctionCall","src":"12404:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12430:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"12437:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12426:3:25"},"nodeType":"YulFunctionCall","src":"12426:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12420:5:25"},"nodeType":"YulFunctionCall","src":"12420:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12397:6:25"},"nodeType":"YulFunctionCall","src":"12397:47:25"},"nodeType":"YulExpressionStatement","src":"12397:47:25"}]},"name":"abi_encode_struct_Point","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12193:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12200:3:25","type":""}],"src":"12160:290:25"},{"body":{"nodeType":"YulBlock","src":"12628:150:25","statements":[{"nodeType":"YulAssignment","src":"12638:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12650:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12661:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12646:3:25"},"nodeType":"YulFunctionCall","src":"12646:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12638:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12681:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12696:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"12704:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12692:3:25"},"nodeType":"YulFunctionCall","src":"12692:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12674:6:25"},"nodeType":"YulFunctionCall","src":"12674:38:25"},"nodeType":"YulExpressionStatement","src":"12674:38:25"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12745:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12757:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12768:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12753:3:25"},"nodeType":"YulFunctionCall","src":"12753:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"12721:23:25"},"nodeType":"YulFunctionCall","src":"12721:51:25"},"nodeType":"YulExpressionStatement","src":"12721:51:25"}]},"name":"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12589:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12600:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12608:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12619:4:25","type":""}],"src":"12455:323:25"},{"body":{"nodeType":"YulBlock","src":"12849:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12866:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12871:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12859:6:25"},"nodeType":"YulFunctionCall","src":"12859:19:25"},"nodeType":"YulExpressionStatement","src":"12859:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12904:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"12909:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12900:3:25"},"nodeType":"YulFunctionCall","src":"12900:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"12916:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"12923:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"12887:12:25"},"nodeType":"YulFunctionCall","src":"12887:43:25"},"nodeType":"YulExpressionStatement","src":"12887:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12954:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"12959:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12950:3:25"},"nodeType":"YulFunctionCall","src":"12950:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"12968:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12946:3:25"},"nodeType":"YulFunctionCall","src":"12946:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"12975:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12939:6:25"},"nodeType":"YulFunctionCall","src":"12939:38:25"},"nodeType":"YulExpressionStatement","src":"12939:38:25"},{"nodeType":"YulAssignment","src":"12986:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13001:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13014:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13022:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13010:3:25"},"nodeType":"YulFunctionCall","src":"13010:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13031:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13027:3:25"},"nodeType":"YulFunctionCall","src":"13027:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13006:3:25"},"nodeType":"YulFunctionCall","src":"13006:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12997:3:25"},"nodeType":"YulFunctionCall","src":"12997:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"13038:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12993:3:25"},"nodeType":"YulFunctionCall","src":"12993:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12986:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"12818:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"12825:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12833:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12841:3:25","type":""}],"src":"12783:266:25"},{"body":{"nodeType":"YulBlock","src":"13305:416:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13322:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13337:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13345:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13333:3:25"},"nodeType":"YulFunctionCall","src":"13333:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13315:6:25"},"nodeType":"YulFunctionCall","src":"13315:38:25"},"nodeType":"YulExpressionStatement","src":"13315:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13373:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13384:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13369:3:25"},"nodeType":"YulFunctionCall","src":"13369:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13393:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13409:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13414:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13405:3:25"},"nodeType":"YulFunctionCall","src":"13405:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"13418:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13401:3:25"},"nodeType":"YulFunctionCall","src":"13401:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13389:3:25"},"nodeType":"YulFunctionCall","src":"13389:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13362:6:25"},"nodeType":"YulFunctionCall","src":"13362:60:25"},"nodeType":"YulExpressionStatement","src":"13362:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13442:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13453:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13438:3:25"},"nodeType":"YulFunctionCall","src":"13438:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13458:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13431:6:25"},"nodeType":"YulFunctionCall","src":"13431:31:25"},"nodeType":"YulExpressionStatement","src":"13431:31:25"},{"nodeType":"YulVariableDeclaration","src":"13471:59:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13502:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13514:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13525:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13510:3:25"},"nodeType":"YulFunctionCall","src":"13510:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13485:16:25"},"nodeType":"YulFunctionCall","src":"13485:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"13475:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13550:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13561:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13546:3:25"},"nodeType":"YulFunctionCall","src":"13546:18:25"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13580:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13573:6:25"},"nodeType":"YulFunctionCall","src":"13573:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13566:6:25"},"nodeType":"YulFunctionCall","src":"13566:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13539:6:25"},"nodeType":"YulFunctionCall","src":"13539:50:25"},"nodeType":"YulExpressionStatement","src":"13539:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13609:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13620:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13605:3:25"},"nodeType":"YulFunctionCall","src":"13605:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13630:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13638:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13626:3:25"},"nodeType":"YulFunctionCall","src":"13626:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13598:6:25"},"nodeType":"YulFunctionCall","src":"13598:51:25"},"nodeType":"YulExpressionStatement","src":"13598:51:25"},{"nodeType":"YulAssignment","src":"13658:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"13692:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"13700:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"13708:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13666:25:25"},"nodeType":"YulFunctionCall","src":"13666:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13658:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13234:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13245:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13253:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13261:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13269:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13277:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13285:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13296:4:25","type":""}],"src":"13054:667:25"},{"body":{"nodeType":"YulBlock","src":"13824:147:25","statements":[{"body":{"nodeType":"YulBlock","src":"13870:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13879:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13882:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13872:6:25"},"nodeType":"YulFunctionCall","src":"13872:12:25"},"nodeType":"YulExpressionStatement","src":"13872:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13845:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13854:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13841:3:25"},"nodeType":"YulFunctionCall","src":"13841:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13866:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13837:3:25"},"nodeType":"YulFunctionCall","src":"13837:32:25"},"nodeType":"YulIf","src":"13834:52:25"},{"nodeType":"YulAssignment","src":"13895:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13911:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13905:5:25"},"nodeType":"YulFunctionCall","src":"13905:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13895:6:25"}]},{"nodeType":"YulAssignment","src":"13930:35:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13950:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13961:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13946:3:25"},"nodeType":"YulFunctionCall","src":"13946:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13940:5:25"},"nodeType":"YulFunctionCall","src":"13940:25:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13930:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13782:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13793:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13805:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13813:6:25","type":""}],"src":"13726:245:25"},{"body":{"nodeType":"YulBlock","src":"14057:103:25","statements":[{"body":{"nodeType":"YulBlock","src":"14103:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14112:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14115:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14105:6:25"},"nodeType":"YulFunctionCall","src":"14105:12:25"},"nodeType":"YulExpressionStatement","src":"14105:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14078:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"14087:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14074:3:25"},"nodeType":"YulFunctionCall","src":"14074:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"14099:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14070:3:25"},"nodeType":"YulFunctionCall","src":"14070:32:25"},"nodeType":"YulIf","src":"14067:52:25"},{"nodeType":"YulAssignment","src":"14128:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14144:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14138:5:25"},"nodeType":"YulFunctionCall","src":"14138:16:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14128:6:25"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14023:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14034:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14046:6:25","type":""}],"src":"13976:184:25"},{"body":{"nodeType":"YulBlock","src":"14224:107:25","statements":[{"nodeType":"YulAssignment","src":"14234:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14249:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14243:5:25"},"nodeType":"YulFunctionCall","src":"14243:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14234:5:25"}]},{"body":{"nodeType":"YulBlock","src":"14309:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14318:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14321:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14311:6:25"},"nodeType":"YulFunctionCall","src":"14311:12:25"},"nodeType":"YulExpressionStatement","src":"14311:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14278:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:2:25","type":"","value":"15"},{"name":"value","nodeType":"YulIdentifier","src":"14300:5:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"14285:10:25"},"nodeType":"YulFunctionCall","src":"14285:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14275:2:25"},"nodeType":"YulFunctionCall","src":"14275:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14268:6:25"},"nodeType":"YulFunctionCall","src":"14268:40:25"},"nodeType":"YulIf","src":"14265:60:25"}]},"name":"abi_decode_int128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"14203:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"14214:5:25","type":""}],"src":"14165:166:25"},{"body":{"nodeType":"YulBlock","src":"14440:561:25","statements":[{"body":{"nodeType":"YulBlock","src":"14487:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14496:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14499:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14489:6:25"},"nodeType":"YulFunctionCall","src":"14489:12:25"},"nodeType":"YulExpressionStatement","src":"14489:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14461:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"14470:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14457:3:25"},"nodeType":"YulFunctionCall","src":"14457:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"14482:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14453:3:25"},"nodeType":"YulFunctionCall","src":"14453:33:25"},"nodeType":"YulIf","src":"14450:53:25"},{"nodeType":"YulVariableDeclaration","src":"14512:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14532:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14526:5:25"},"nodeType":"YulFunctionCall","src":"14526:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"14516:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14544:34:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14566:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14574:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14562:3:25"},"nodeType":"YulFunctionCall","src":"14562:16:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"14548:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14653:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"14655:16:25"},"nodeType":"YulFunctionCall","src":"14655:18:25"},"nodeType":"YulExpressionStatement","src":"14655:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14596:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"14608:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14593:2:25"},"nodeType":"YulFunctionCall","src":"14593:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14632:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"14644:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14629:2:25"},"nodeType":"YulFunctionCall","src":"14629:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"14590:2:25"},"nodeType":"YulFunctionCall","src":"14590:62:25"},"nodeType":"YulIf","src":"14587:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14695:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:22:25"},"nodeType":"YulExpressionStatement","src":"14684:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14722:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14759:9:25"}],"functionName":{"name":"abi_decode_int128_fromMemory","nodeType":"YulIdentifier","src":"14730:28:25"},"nodeType":"YulFunctionCall","src":"14730:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14715:6:25"},"nodeType":"YulFunctionCall","src":"14715:55:25"},"nodeType":"YulExpressionStatement","src":"14715:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14790:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14798:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14786:3:25"},"nodeType":"YulFunctionCall","src":"14786:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14836:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14847:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14832:3:25"},"nodeType":"YulFunctionCall","src":"14832:18:25"}],"functionName":{"name":"abi_decode_int128_fromMemory","nodeType":"YulIdentifier","src":"14803:28:25"},"nodeType":"YulFunctionCall","src":"14803:48:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14779:6:25"},"nodeType":"YulFunctionCall","src":"14779:73:25"},"nodeType":"YulExpressionStatement","src":"14779:73:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14872:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14880:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14868:3:25"},"nodeType":"YulFunctionCall","src":"14868:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14906:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14891:3:25"},"nodeType":"YulFunctionCall","src":"14891:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14885:5:25"},"nodeType":"YulFunctionCall","src":"14885:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14861:6:25"},"nodeType":"YulFunctionCall","src":"14861:50:25"},"nodeType":"YulExpressionStatement","src":"14861:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14931:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14939:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14927:3:25"},"nodeType":"YulFunctionCall","src":"14927:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14954:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14965:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14950:3:25"},"nodeType":"YulFunctionCall","src":"14950:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14944:5:25"},"nodeType":"YulFunctionCall","src":"14944:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14920:6:25"},"nodeType":"YulFunctionCall","src":"14920:50:25"},"nodeType":"YulExpressionStatement","src":"14920:50:25"},{"nodeType":"YulAssignment","src":"14979:16:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"14989:6:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14979:6:25"}]}]},"name":"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14406:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14417:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14429:6:25","type":""}],"src":"14336:665:25"},{"body":{"nodeType":"YulBlock","src":"15161:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15178:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15193:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15201:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15189:3:25"},"nodeType":"YulFunctionCall","src":"15189:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15171:6:25"},"nodeType":"YulFunctionCall","src":"15171:38:25"},"nodeType":"YulExpressionStatement","src":"15171:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15229:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15240:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15225:3:25"},"nodeType":"YulFunctionCall","src":"15225:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15245:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15218:6:25"},"nodeType":"YulFunctionCall","src":"15218:30:25"},"nodeType":"YulExpressionStatement","src":"15218:30:25"},{"nodeType":"YulAssignment","src":"15257:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15291:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15299:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15311:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15322:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15307:3:25"},"nodeType":"YulFunctionCall","src":"15307:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15265:25:25"},"nodeType":"YulFunctionCall","src":"15265:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15257:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15114:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15125:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15133:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15141:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15152:4:25","type":""}],"src":"15006:326:25"},{"body":{"nodeType":"YulBlock","src":"15466:145:25","statements":[{"nodeType":"YulAssignment","src":"15476:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15488:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15499:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15484:3:25"},"nodeType":"YulFunctionCall","src":"15484:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15476:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15518:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15533:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15549:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15554:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15545:3:25"},"nodeType":"YulFunctionCall","src":"15545:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"15558:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15541:3:25"},"nodeType":"YulFunctionCall","src":"15541:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15529:3:25"},"nodeType":"YulFunctionCall","src":"15529:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15511:6:25"},"nodeType":"YulFunctionCall","src":"15511:51:25"},"nodeType":"YulExpressionStatement","src":"15511:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15582:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15593:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15578:3:25"},"nodeType":"YulFunctionCall","src":"15578:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"15598:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15571:6:25"},"nodeType":"YulFunctionCall","src":"15571:34:25"},"nodeType":"YulExpressionStatement","src":"15571:34:25"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15427:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15438:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15446:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15457:4:25","type":""}],"src":"15337:274:25"},{"body":{"nodeType":"YulBlock","src":"15743:158:25","statements":[{"nodeType":"YulAssignment","src":"15753:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15765:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15776:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15761:3:25"},"nodeType":"YulFunctionCall","src":"15761:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15753:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15795:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15810:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15826:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15831:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15822:3:25"},"nodeType":"YulFunctionCall","src":"15822:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"15835:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15818:3:25"},"nodeType":"YulFunctionCall","src":"15818:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15806:3:25"},"nodeType":"YulFunctionCall","src":"15806:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15788:6:25"},"nodeType":"YulFunctionCall","src":"15788:51:25"},"nodeType":"YulExpressionStatement","src":"15788:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15859:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15870:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15855:3:25"},"nodeType":"YulFunctionCall","src":"15855:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15879:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15887:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15875:3:25"},"nodeType":"YulFunctionCall","src":"15875:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15848:6:25"},"nodeType":"YulFunctionCall","src":"15848:47:25"},"nodeType":"YulExpressionStatement","src":"15848:47:25"}]},"name":"abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15704:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15715:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15723:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15734:4:25","type":""}],"src":"15616:285:25"},{"body":{"nodeType":"YulBlock","src":"15987:178:25","statements":[{"body":{"nodeType":"YulBlock","src":"16033:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16042:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16045:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16035:6:25"},"nodeType":"YulFunctionCall","src":"16035:12:25"},"nodeType":"YulExpressionStatement","src":"16035:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16008:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"16017:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16004:3:25"},"nodeType":"YulFunctionCall","src":"16004:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"16029:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16000:3:25"},"nodeType":"YulFunctionCall","src":"16000:32:25"},"nodeType":"YulIf","src":"15997:52:25"},{"nodeType":"YulVariableDeclaration","src":"16058:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16077:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16071:5:25"},"nodeType":"YulFunctionCall","src":"16071:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16062:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16129:5:25"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"16096:32:25"},"nodeType":"YulFunctionCall","src":"16096:39:25"},"nodeType":"YulExpressionStatement","src":"16096:39:25"},{"nodeType":"YulAssignment","src":"16144:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"16154:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16144:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15953:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15964:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15976:6:25","type":""}],"src":"15906:259:25"},{"body":{"nodeType":"YulBlock","src":"16473:323:25","statements":[{"nodeType":"YulAssignment","src":"16483:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16506:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16491:3:25"},"nodeType":"YulFunctionCall","src":"16491:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16483:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16526:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16541:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16549:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16537:3:25"},"nodeType":"YulFunctionCall","src":"16537:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16519:6:25"},"nodeType":"YulFunctionCall","src":"16519:38:25"},"nodeType":"YulExpressionStatement","src":"16519:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16577:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16588:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16573:3:25"},"nodeType":"YulFunctionCall","src":"16573:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16597:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16613:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16618:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16609:3:25"},"nodeType":"YulFunctionCall","src":"16609:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"16622:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16605:3:25"},"nodeType":"YulFunctionCall","src":"16605:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16593:3:25"},"nodeType":"YulFunctionCall","src":"16593:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16566:6:25"},"nodeType":"YulFunctionCall","src":"16566:60:25"},"nodeType":"YulExpressionStatement","src":"16566:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16646:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16657:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16642:3:25"},"nodeType":"YulFunctionCall","src":"16642:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16662:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16635:6:25"},"nodeType":"YulFunctionCall","src":"16635:34:25"},"nodeType":"YulExpressionStatement","src":"16635:34:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16702:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16714:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16725:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16710:3:25"},"nodeType":"YulFunctionCall","src":"16710:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"16678:23:25"},"nodeType":"YulFunctionCall","src":"16678:51:25"},"nodeType":"YulExpressionStatement","src":"16678:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"16762:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16774:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16785:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16770:3:25"},"nodeType":"YulFunctionCall","src":"16770:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"16738:23:25"},"nodeType":"YulFunctionCall","src":"16738:52:25"},"nodeType":"YulExpressionStatement","src":"16738:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16410:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16421:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16429:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16437:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16445:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16453:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16464:4:25","type":""}],"src":"16170:626:25"},{"body":{"nodeType":"YulBlock","src":"17104:353:25","statements":[{"nodeType":"YulAssignment","src":"17114:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17126:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17137:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17122:3:25"},"nodeType":"YulFunctionCall","src":"17122:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17114:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17157:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17172:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17180:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17168:3:25"},"nodeType":"YulFunctionCall","src":"17168:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17150:6:25"},"nodeType":"YulFunctionCall","src":"17150:38:25"},"nodeType":"YulExpressionStatement","src":"17150:38:25"},{"nodeType":"YulVariableDeclaration","src":"17197:29:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17215:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17220:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17211:3:25"},"nodeType":"YulFunctionCall","src":"17211:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17224:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17207:3:25"},"nodeType":"YulFunctionCall","src":"17207:19:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17201:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17246:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17257:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17242:3:25"},"nodeType":"YulFunctionCall","src":"17242:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17266:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"17274:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17262:3:25"},"nodeType":"YulFunctionCall","src":"17262:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17235:6:25"},"nodeType":"YulFunctionCall","src":"17235:43:25"},"nodeType":"YulExpressionStatement","src":"17235:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17298:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17309:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17294:3:25"},"nodeType":"YulFunctionCall","src":"17294:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17318:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"17326:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17314:3:25"},"nodeType":"YulFunctionCall","src":"17314:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17287:6:25"},"nodeType":"YulFunctionCall","src":"17287:43:25"},"nodeType":"YulExpressionStatement","src":"17287:43:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17363:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17375:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17386:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17371:3:25"},"nodeType":"YulFunctionCall","src":"17371:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17339:23:25"},"nodeType":"YulFunctionCall","src":"17339:51:25"},"nodeType":"YulExpressionStatement","src":"17339:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17423:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17435:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17446:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17431:3:25"},"nodeType":"YulFunctionCall","src":"17431:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17399:23:25"},"nodeType":"YulFunctionCall","src":"17399:52:25"},"nodeType":"YulExpressionStatement","src":"17399:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17041:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17052:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17060:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17068:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17076:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17084:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17095:4:25","type":""}],"src":"16801:656:25"},{"body":{"nodeType":"YulBlock","src":"17771:334:25","statements":[{"nodeType":"YulAssignment","src":"17781:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17804:3:25","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17789:3:25"},"nodeType":"YulFunctionCall","src":"17789:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17781:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17824:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17839:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17847:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17835:3:25"},"nodeType":"YulFunctionCall","src":"17835:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17817:6:25"},"nodeType":"YulFunctionCall","src":"17817:38:25"},"nodeType":"YulExpressionStatement","src":"17817:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17886:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17871:3:25"},"nodeType":"YulFunctionCall","src":"17871:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17895:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17911:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17916:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17907:3:25"},"nodeType":"YulFunctionCall","src":"17907:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17920:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17903:3:25"},"nodeType":"YulFunctionCall","src":"17903:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17891:3:25"},"nodeType":"YulFunctionCall","src":"17891:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17864:6:25"},"nodeType":"YulFunctionCall","src":"17864:60:25"},"nodeType":"YulExpressionStatement","src":"17864:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17944:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17955:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17940:3:25"},"nodeType":"YulFunctionCall","src":"17940:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17964:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17972:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17960:3:25"},"nodeType":"YulFunctionCall","src":"17960:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17933:6:25"},"nodeType":"YulFunctionCall","src":"17933:45:25"},"nodeType":"YulExpressionStatement","src":"17933:45:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18011:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18023:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18034:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18019:3:25"},"nodeType":"YulFunctionCall","src":"18019:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"17987:23:25"},"nodeType":"YulFunctionCall","src":"17987:51:25"},"nodeType":"YulExpressionStatement","src":"17987:51:25"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"18071:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18083:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18094:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18079:3:25"},"nodeType":"YulFunctionCall","src":"18079:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"18047:23:25"},"nodeType":"YulFunctionCall","src":"18047:52:25"},"nodeType":"YulExpressionStatement","src":"18047:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17708:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17719:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17727:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17735:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17743:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17751:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17762:4:25","type":""}],"src":"17462:643:25"},{"body":{"nodeType":"YulBlock","src":"18284:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18301:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18312:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18294:6:25"},"nodeType":"YulFunctionCall","src":"18294:21:25"},"nodeType":"YulExpressionStatement","src":"18294:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18335:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18346:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18331:3:25"},"nodeType":"YulFunctionCall","src":"18331:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18351:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18324:6:25"},"nodeType":"YulFunctionCall","src":"18324:30:25"},"nodeType":"YulExpressionStatement","src":"18324:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18374:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18385:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18370:3:25"},"nodeType":"YulFunctionCall","src":"18370:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nodeType":"YulLiteral","src":"18390:34:25","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18363:6:25"},"nodeType":"YulFunctionCall","src":"18363:62:25"},"nodeType":"YulExpressionStatement","src":"18363:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18445:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18456:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18441:3:25"},"nodeType":"YulFunctionCall","src":"18441:18:25"},{"hexValue":"204c7a417070","kind":"string","nodeType":"YulLiteral","src":"18461:8:25","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18434:6:25"},"nodeType":"YulFunctionCall","src":"18434:36:25"},"nodeType":"YulExpressionStatement","src":"18434:36:25"},{"nodeType":"YulAssignment","src":"18479:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18491:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18502:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18487:3:25"},"nodeType":"YulFunctionCall","src":"18487:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18479:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18261:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18275:4:25","type":""}],"src":"18110:402:25"},{"body":{"nodeType":"YulBlock","src":"18691:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18708:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18719:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18701:6:25"},"nodeType":"YulFunctionCall","src":"18701:21:25"},"nodeType":"YulExpressionStatement","src":"18701:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18738:3:25"},"nodeType":"YulFunctionCall","src":"18738:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18758:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18731:6:25"},"nodeType":"YulFunctionCall","src":"18731:30:25"},"nodeType":"YulExpressionStatement","src":"18731:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18781:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18792:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18777:3:25"},"nodeType":"YulFunctionCall","src":"18777:18:25"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nodeType":"YulLiteral","src":"18797:31:25","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18770:6:25"},"nodeType":"YulFunctionCall","src":"18770:59:25"},"nodeType":"YulExpressionStatement","src":"18770:59:25"},{"nodeType":"YulAssignment","src":"18838:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18850:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18861:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18846:3:25"},"nodeType":"YulFunctionCall","src":"18846:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18838:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18668:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18682:4:25","type":""}],"src":"18517:353:25"},{"body":{"nodeType":"YulBlock","src":"18907:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18924:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18931:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18936:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18927:3:25"},"nodeType":"YulFunctionCall","src":"18927:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18917:6:25"},"nodeType":"YulFunctionCall","src":"18917:31:25"},"nodeType":"YulExpressionStatement","src":"18917:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18964:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18967:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18957:6:25"},"nodeType":"YulFunctionCall","src":"18957:15:25"},"nodeType":"YulExpressionStatement","src":"18957:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18988:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18991:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18981:6:25"},"nodeType":"YulFunctionCall","src":"18981:15:25"},"nodeType":"YulExpressionStatement","src":"18981:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"18875:127:25"},{"body":{"nodeType":"YulBlock","src":"19056:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"19078:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19080:16:25"},"nodeType":"YulFunctionCall","src":"19080:18:25"},"nodeType":"YulExpressionStatement","src":"19080:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19072:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"19075:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19069:2:25"},"nodeType":"YulFunctionCall","src":"19069:8:25"},"nodeType":"YulIf","src":"19066:34:25"},{"nodeType":"YulAssignment","src":"19109:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19121:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"19124:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19117:3:25"},"nodeType":"YulFunctionCall","src":"19117:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19109:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19038:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"19041:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19047:4:25","type":""}],"src":"19007:125:25"},{"body":{"nodeType":"YulBlock","src":"19312:207:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19335:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"19340:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"19348:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"19322:12:25"},"nodeType":"YulFunctionCall","src":"19322:33:25"},"nodeType":"YulExpressionStatement","src":"19322:33:25"},{"nodeType":"YulVariableDeclaration","src":"19364:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19378:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"19383:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19374:3:25"},"nodeType":"YulFunctionCall","src":"19374:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19368:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19406:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"19410:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19399:6:25"},"nodeType":"YulFunctionCall","src":"19399:13:25"},"nodeType":"YulExpressionStatement","src":"19399:13:25"},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19428:2:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19440:2:25","type":"","value":"96"},{"name":"value2","nodeType":"YulIdentifier","src":"19444:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19457:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19453:3:25"},"nodeType":"YulFunctionCall","src":"19453:31:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19432:3:25"},"nodeType":"YulFunctionCall","src":"19432:53:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19421:6:25"},"nodeType":"YulFunctionCall","src":"19421:65:25"},"nodeType":"YulExpressionStatement","src":"19421:65:25"},{"nodeType":"YulAssignment","src":"19495:18:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19506:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"19510:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19502:3:25"},"nodeType":"YulFunctionCall","src":"19502:11:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19495:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19272:3:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19277:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19285:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19293:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19304:3:25","type":""}],"src":"19137:382:25"},{"body":{"nodeType":"YulBlock","src":"19733:289:25","statements":[{"nodeType":"YulVariableDeclaration","src":"19743:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"19753:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19747:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19775:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19790:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"19798:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19786:3:25"},"nodeType":"YulFunctionCall","src":"19786:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19768:6:25"},"nodeType":"YulFunctionCall","src":"19768:34:25"},"nodeType":"YulExpressionStatement","src":"19768:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19822:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19833:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19818:3:25"},"nodeType":"YulFunctionCall","src":"19818:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19842:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"19850:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19838:3:25"},"nodeType":"YulFunctionCall","src":"19838:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19811:6:25"},"nodeType":"YulFunctionCall","src":"19811:43:25"},"nodeType":"YulExpressionStatement","src":"19811:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19874:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19885:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19870:3:25"},"nodeType":"YulFunctionCall","src":"19870:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19890:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19863:6:25"},"nodeType":"YulFunctionCall","src":"19863:34:25"},"nodeType":"YulExpressionStatement","src":"19863:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19917:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19928:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19913:3:25"},"nodeType":"YulFunctionCall","src":"19913:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19933:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19906:6:25"},"nodeType":"YulFunctionCall","src":"19906:31:25"},"nodeType":"YulExpressionStatement","src":"19906:31:25"},{"nodeType":"YulAssignment","src":"19946:70:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19980:6:25"},{"name":"value4","nodeType":"YulIdentifier","src":"19988:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20011:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19996:3:25"},"nodeType":"YulFunctionCall","src":"19996:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19954:25:25"},"nodeType":"YulFunctionCall","src":"19954:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19946:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19670:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19681:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19689:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19697:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19705:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19713:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19724:4:25","type":""}],"src":"19524:498:25"},{"body":{"nodeType":"YulBlock","src":"20201:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20218:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20229:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20211:6:25"},"nodeType":"YulFunctionCall","src":"20211:21:25"},"nodeType":"YulExpressionStatement","src":"20211:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20252:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20263:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20248:3:25"},"nodeType":"YulFunctionCall","src":"20248:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20268:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20241:6:25"},"nodeType":"YulFunctionCall","src":"20241:30:25"},"nodeType":"YulExpressionStatement","src":"20241:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20291:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20302:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20287:3:25"},"nodeType":"YulFunctionCall","src":"20287:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nodeType":"YulLiteral","src":"20307:34:25","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20280:6:25"},"nodeType":"YulFunctionCall","src":"20280:62:25"},"nodeType":"YulExpressionStatement","src":"20280:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20362:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20373:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20358:3:25"},"nodeType":"YulFunctionCall","src":"20358:18:25"},{"hexValue":"616765","kind":"string","nodeType":"YulLiteral","src":"20378:5:25","type":"","value":"age"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20351:6:25"},"nodeType":"YulFunctionCall","src":"20351:33:25"},"nodeType":"YulExpressionStatement","src":"20351:33:25"},{"nodeType":"YulAssignment","src":"20393:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20405:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20416:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20401:3:25"},"nodeType":"YulFunctionCall","src":"20401:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20393:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20178:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20192:4:25","type":""}],"src":"20027:399:25"},{"body":{"nodeType":"YulBlock","src":"20605:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20622:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20633:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20615:6:25"},"nodeType":"YulFunctionCall","src":"20615:21:25"},"nodeType":"YulExpressionStatement","src":"20615:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20656:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20667:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20652:3:25"},"nodeType":"YulFunctionCall","src":"20652:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20672:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20645:6:25"},"nodeType":"YulFunctionCall","src":"20645:30:25"},"nodeType":"YulExpressionStatement","src":"20645:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20695:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20706:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20691:3:25"},"nodeType":"YulFunctionCall","src":"20691:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nodeType":"YulLiteral","src":"20711:34:25","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20684:6:25"},"nodeType":"YulFunctionCall","src":"20684:62:25"},"nodeType":"YulExpressionStatement","src":"20684:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20777:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20762:3:25"},"nodeType":"YulFunctionCall","src":"20762:18:25"},{"hexValue":"64","kind":"string","nodeType":"YulLiteral","src":"20782:3:25","type":"","value":"d"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20755:6:25"},"nodeType":"YulFunctionCall","src":"20755:31:25"},"nodeType":"YulExpressionStatement","src":"20755:31:25"},{"nodeType":"YulAssignment","src":"20795:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20818:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20803:3:25"},"nodeType":"YulFunctionCall","src":"20803:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20795:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20582:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20596:4:25","type":""}],"src":"20431:397:25"},{"body":{"nodeType":"YulBlock","src":"21042:284:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21059:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21074:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21082:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21070:3:25"},"nodeType":"YulFunctionCall","src":"21070:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21052:6:25"},"nodeType":"YulFunctionCall","src":"21052:38:25"},"nodeType":"YulExpressionStatement","src":"21052:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21110:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21121:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21106:3:25"},"nodeType":"YulFunctionCall","src":"21106:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21126:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21099:6:25"},"nodeType":"YulFunctionCall","src":"21099:31:25"},"nodeType":"YulExpressionStatement","src":"21099:31:25"},{"nodeType":"YulAssignment","src":"21139:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21173:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"21181:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21193:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21204:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21189:3:25"},"nodeType":"YulFunctionCall","src":"21189:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"21147:25:25"},"nodeType":"YulFunctionCall","src":"21147:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21139:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21229:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21240:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21225:3:25"},"nodeType":"YulFunctionCall","src":"21225:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"21249:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21257:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21245:3:25"},"nodeType":"YulFunctionCall","src":"21245:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21218:6:25"},"nodeType":"YulFunctionCall","src":"21218:59:25"},"nodeType":"YulExpressionStatement","src":"21218:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21297:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21308:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21293:3:25"},"nodeType":"YulFunctionCall","src":"21293:18:25"},{"name":"value4","nodeType":"YulIdentifier","src":"21313:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21286:6:25"},"nodeType":"YulFunctionCall","src":"21286:34:25"},"nodeType":"YulExpressionStatement","src":"21286:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20979:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"20990:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20998:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21006:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21014:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21022:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21033:4:25","type":""}],"src":"20833:493:25"},{"body":{"nodeType":"YulBlock","src":"21505:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21533:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21515:6:25"},"nodeType":"YulFunctionCall","src":"21515:21:25"},"nodeType":"YulExpressionStatement","src":"21515:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21556:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21567:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21552:3:25"},"nodeType":"YulFunctionCall","src":"21552:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21572:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21545:6:25"},"nodeType":"YulFunctionCall","src":"21545:30:25"},"nodeType":"YulExpressionStatement","src":"21545:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21595:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21606:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21591:3:25"},"nodeType":"YulFunctionCall","src":"21591:18:25"},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","kind":"string","nodeType":"YulLiteral","src":"21611:23:25","type":"","value":"LzApp: invalid minGas"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21584:6:25"},"nodeType":"YulFunctionCall","src":"21584:51:25"},"nodeType":"YulExpressionStatement","src":"21584:51:25"},{"nodeType":"YulAssignment","src":"21644:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21656:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21667:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21652:3:25"},"nodeType":"YulFunctionCall","src":"21652:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21644:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21482:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21496:4:25","type":""}],"src":"21331:345:25"},{"body":{"nodeType":"YulBlock","src":"21834:205:25","statements":[{"nodeType":"YulAssignment","src":"21844:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21867:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21852:3:25"},"nodeType":"YulFunctionCall","src":"21852:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21844:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"21879:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"21889:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21883:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21911:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21926:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"21934:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21922:3:25"},"nodeType":"YulFunctionCall","src":"21922:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21904:6:25"},"nodeType":"YulFunctionCall","src":"21904:34:25"},"nodeType":"YulExpressionStatement","src":"21904:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21958:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21969:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21954:3:25"},"nodeType":"YulFunctionCall","src":"21954:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21978:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"21986:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21974:3:25"},"nodeType":"YulFunctionCall","src":"21974:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21947:6:25"},"nodeType":"YulFunctionCall","src":"21947:43:25"},"nodeType":"YulExpressionStatement","src":"21947:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22010:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22021:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22006:3:25"},"nodeType":"YulFunctionCall","src":"22006:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"22026:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21999:6:25"},"nodeType":"YulFunctionCall","src":"21999:34:25"},"nodeType":"YulExpressionStatement","src":"21999:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21787:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21798:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21806:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21814:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21825:4:25","type":""}],"src":"21681:358:25"},{"body":{"nodeType":"YulBlock","src":"22218:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22235:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22246:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22228:6:25"},"nodeType":"YulFunctionCall","src":"22228:21:25"},"nodeType":"YulExpressionStatement","src":"22228:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22265:3:25"},"nodeType":"YulFunctionCall","src":"22265:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22285:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22258:6:25"},"nodeType":"YulFunctionCall","src":"22258:30:25"},"nodeType":"YulExpressionStatement","src":"22258:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22308:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22319:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22304:3:25"},"nodeType":"YulFunctionCall","src":"22304:18:25"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"22324:34:25","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22297:6:25"},"nodeType":"YulFunctionCall","src":"22297:62:25"},"nodeType":"YulExpressionStatement","src":"22297:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22390:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22375:3:25"},"nodeType":"YulFunctionCall","src":"22375:18:25"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"22395:8:25","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22368:6:25"},"nodeType":"YulFunctionCall","src":"22368:36:25"},"nodeType":"YulExpressionStatement","src":"22368:36:25"},{"nodeType":"YulAssignment","src":"22413:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22436:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22421:3:25"},"nodeType":"YulFunctionCall","src":"22421:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22413:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22195:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22209:4:25","type":""}],"src":"22044:402:25"},{"body":{"nodeType":"YulBlock","src":"22632:275:25","statements":[{"nodeType":"YulAssignment","src":"22642:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22654:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22665:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22650:3:25"},"nodeType":"YulFunctionCall","src":"22650:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22642:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"22678:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"22688:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22682:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22710:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22725:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22733:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22721:3:25"},"nodeType":"YulFunctionCall","src":"22721:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22703:6:25"},"nodeType":"YulFunctionCall","src":"22703:34:25"},"nodeType":"YulExpressionStatement","src":"22703:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22757:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22768:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22753:3:25"},"nodeType":"YulFunctionCall","src":"22753:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22777:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22785:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22773:3:25"},"nodeType":"YulFunctionCall","src":"22773:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22746:6:25"},"nodeType":"YulFunctionCall","src":"22746:43:25"},"nodeType":"YulExpressionStatement","src":"22746:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22809:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22820:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22805:3:25"},"nodeType":"YulFunctionCall","src":"22805:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22829:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22845:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22850:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22841:3:25"},"nodeType":"YulFunctionCall","src":"22841:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22854:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22837:3:25"},"nodeType":"YulFunctionCall","src":"22837:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22825:3:25"},"nodeType":"YulFunctionCall","src":"22825:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22798:6:25"},"nodeType":"YulFunctionCall","src":"22798:60:25"},"nodeType":"YulExpressionStatement","src":"22798:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22878:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22889:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22874:3:25"},"nodeType":"YulFunctionCall","src":"22874:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"22894:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22867:6:25"},"nodeType":"YulFunctionCall","src":"22867:34:25"},"nodeType":"YulExpressionStatement","src":"22867:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22577:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22588:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22596:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22604:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22612:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22623:4:25","type":""}],"src":"22451:456:25"},{"body":{"nodeType":"YulBlock","src":"23002:544:25","statements":[{"body":{"nodeType":"YulBlock","src":"23048:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23057:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23060:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23050:6:25"},"nodeType":"YulFunctionCall","src":"23050:12:25"},"nodeType":"YulExpressionStatement","src":"23050:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"23023:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23032:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23019:3:25"},"nodeType":"YulFunctionCall","src":"23019:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"23044:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23015:3:25"},"nodeType":"YulFunctionCall","src":"23015:32:25"},"nodeType":"YulIf","src":"23012:52:25"},{"nodeType":"YulVariableDeclaration","src":"23073:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23093:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23087:5:25"},"nodeType":"YulFunctionCall","src":"23087:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"23077:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"23146:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23155:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23158:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23148:6:25"},"nodeType":"YulFunctionCall","src":"23148:12:25"},"nodeType":"YulExpressionStatement","src":"23148:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"23118:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23126:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23115:2:25"},"nodeType":"YulFunctionCall","src":"23115:30:25"},"nodeType":"YulIf","src":"23112:50:25"},{"nodeType":"YulVariableDeclaration","src":"23171:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23185:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"23196:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23181:3:25"},"nodeType":"YulFunctionCall","src":"23181:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"23175:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"23251:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23260:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23263:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23253:6:25"},"nodeType":"YulFunctionCall","src":"23253:12:25"},"nodeType":"YulExpressionStatement","src":"23253:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23230:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"23234:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23226:3:25"},"nodeType":"YulFunctionCall","src":"23226:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23241:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23222:3:25"},"nodeType":"YulFunctionCall","src":"23222:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23215:6:25"},"nodeType":"YulFunctionCall","src":"23215:35:25"},"nodeType":"YulIf","src":"23212:55:25"},{"nodeType":"YulVariableDeclaration","src":"23276:19:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23292:2:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23286:5:25"},"nodeType":"YulFunctionCall","src":"23286:9:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"23280:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23304:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"23361:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"23333:27:25"},"nodeType":"YulFunctionCall","src":"23333:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"23317:15:25"},"nodeType":"YulFunctionCall","src":"23317:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"23308:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"23381:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23388:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23374:6:25"},"nodeType":"YulFunctionCall","src":"23374:17:25"},"nodeType":"YulExpressionStatement","src":"23374:17:25"},{"body":{"nodeType":"YulBlock","src":"23437:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23446:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23449:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23439:6:25"},"nodeType":"YulFunctionCall","src":"23439:12:25"},"nodeType":"YulExpressionStatement","src":"23439:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23414:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23418:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"23423:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23406:3:25"},"nodeType":"YulFunctionCall","src":"23406:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23428:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23403:2:25"},"nodeType":"YulFunctionCall","src":"23403:33:25"},"nodeType":"YulIf","src":"23400:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23488:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"23492:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23484:3:25"},"nodeType":"YulFunctionCall","src":"23484:11:25"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"23501:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23508:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23497:3:25"},"nodeType":"YulFunctionCall","src":"23497:14:25"},{"name":"_2","nodeType":"YulIdentifier","src":"23513:2:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"23462:21:25"},"nodeType":"YulFunctionCall","src":"23462:54:25"},"nodeType":"YulExpressionStatement","src":"23462:54:25"},{"nodeType":"YulAssignment","src":"23525:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"23535:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"23525:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22968:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"22979:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"22991:6:25","type":""}],"src":"22912:634:25"},{"body":{"nodeType":"YulBlock","src":"23768:338:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23785:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23800:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23808:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23796:3:25"},"nodeType":"YulFunctionCall","src":"23796:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23778:6:25"},"nodeType":"YulFunctionCall","src":"23778:38:25"},"nodeType":"YulExpressionStatement","src":"23778:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23836:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23847:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23832:3:25"},"nodeType":"YulFunctionCall","src":"23832:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23852:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23825:6:25"},"nodeType":"YulFunctionCall","src":"23825:31:25"},"nodeType":"YulExpressionStatement","src":"23825:31:25"},{"nodeType":"YulVariableDeclaration","src":"23865:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23896:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23908:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23919:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23904:3:25"},"nodeType":"YulFunctionCall","src":"23904:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23879:16:25"},"nodeType":"YulFunctionCall","src":"23879:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"23869:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23944:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23955:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23940:3:25"},"nodeType":"YulFunctionCall","src":"23940:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23964:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23972:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23960:3:25"},"nodeType":"YulFunctionCall","src":"23960:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23933:6:25"},"nodeType":"YulFunctionCall","src":"23933:59:25"},"nodeType":"YulExpressionStatement","src":"23933:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24012:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24023:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24008:3:25"},"nodeType":"YulFunctionCall","src":"24008:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"24032:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24040:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24028:3:25"},"nodeType":"YulFunctionCall","src":"24028:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24001:6:25"},"nodeType":"YulFunctionCall","src":"24001:50:25"},"nodeType":"YulExpressionStatement","src":"24001:50:25"},{"nodeType":"YulAssignment","src":"24060:40:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"24085:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"24093:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24068:16:25"},"nodeType":"YulFunctionCall","src":"24068:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24060:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23713:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23724:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23732:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23740:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23748:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23759:4:25","type":""}],"src":"23551:555:25"},{"body":{"nodeType":"YulBlock","src":"24248:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24258:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24278:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24272:5:25"},"nodeType":"YulFunctionCall","src":"24272:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"24262:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24320:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24328:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24316:3:25"},"nodeType":"YulFunctionCall","src":"24316:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"24335:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"24340:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"24294:21:25"},"nodeType":"YulFunctionCall","src":"24294:53:25"},"nodeType":"YulExpressionStatement","src":"24294:53:25"},{"nodeType":"YulAssignment","src":"24356:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"24367:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"24372:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24363:3:25"},"nodeType":"YulFunctionCall","src":"24363:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"24356:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"24224:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24229:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"24240:3:25","type":""}],"src":"24111:274:25"},{"body":{"nodeType":"YulBlock","src":"24653:453:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24670:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24693:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24681:3:25"},"nodeType":"YulFunctionCall","src":"24681:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24663:6:25"},"nodeType":"YulFunctionCall","src":"24663:38:25"},"nodeType":"YulExpressionStatement","src":"24663:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24721:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24732:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24717:3:25"},"nodeType":"YulFunctionCall","src":"24717:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"24737:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24710:6:25"},"nodeType":"YulFunctionCall","src":"24710:31:25"},"nodeType":"YulExpressionStatement","src":"24710:31:25"},{"nodeType":"YulVariableDeclaration","src":"24750:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24781:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24804:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24789:3:25"},"nodeType":"YulFunctionCall","src":"24789:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24764:16:25"},"nodeType":"YulFunctionCall","src":"24764:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"24754:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24840:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"24849:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24857:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24845:3:25"},"nodeType":"YulFunctionCall","src":"24845:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24818:6:25"},"nodeType":"YulFunctionCall","src":"24818:59:25"},"nodeType":"YulExpressionStatement","src":"24818:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24897:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24908:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24893:3:25"},"nodeType":"YulFunctionCall","src":"24893:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"24917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24913:3:25"},"nodeType":"YulFunctionCall","src":"24913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24886:6:25"},"nodeType":"YulFunctionCall","src":"24886:50:25"},"nodeType":"YulExpressionStatement","src":"24886:50:25"},{"nodeType":"YulVariableDeclaration","src":"24945:46:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"24976:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"24984:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"24959:16:25"},"nodeType":"YulFunctionCall","src":"24959:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"24949:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25011:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25022:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25007:3:25"},"nodeType":"YulFunctionCall","src":"25007:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"25032:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25040:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25028:3:25"},"nodeType":"YulFunctionCall","src":"25028:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25000:6:25"},"nodeType":"YulFunctionCall","src":"25000:51:25"},"nodeType":"YulExpressionStatement","src":"25000:51:25"},{"nodeType":"YulAssignment","src":"25060:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25085:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"25093:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25068:16:25"},"nodeType":"YulFunctionCall","src":"25068:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25060:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24590:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"24601:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"24609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"24617:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24625:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24633:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24644:4:25","type":""}],"src":"24390:716:25"},{"body":{"nodeType":"YulBlock","src":"25285:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25302:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25313:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25295:6:25"},"nodeType":"YulFunctionCall","src":"25295:21:25"},"nodeType":"YulExpressionStatement","src":"25295:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25336:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25347:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25332:3:25"},"nodeType":"YulFunctionCall","src":"25332:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25352:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25325:6:25"},"nodeType":"YulFunctionCall","src":"25325:30:25"},"nodeType":"YulExpressionStatement","src":"25325:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25375:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25386:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25371:3:25"},"nodeType":"YulFunctionCall","src":"25371:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"25391:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25364:6:25"},"nodeType":"YulFunctionCall","src":"25364:62:25"},"nodeType":"YulExpressionStatement","src":"25364:62:25"},{"nodeType":"YulAssignment","src":"25435:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25447:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25458:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25443:3:25"},"nodeType":"YulFunctionCall","src":"25443:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25435:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25262:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25276:4:25","type":""}],"src":"25111:356:25"},{"body":{"nodeType":"YulBlock","src":"25518:171:25","statements":[{"body":{"nodeType":"YulBlock","src":"25549:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25570:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25577:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25582:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25573:3:25"},"nodeType":"YulFunctionCall","src":"25573:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25563:6:25"},"nodeType":"YulFunctionCall","src":"25563:31:25"},"nodeType":"YulExpressionStatement","src":"25563:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25614:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25617:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25607:6:25"},"nodeType":"YulFunctionCall","src":"25607:15:25"},"nodeType":"YulExpressionStatement","src":"25607:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25642:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25645:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25635:6:25"},"nodeType":"YulFunctionCall","src":"25635:15:25"},"nodeType":"YulExpressionStatement","src":"25635:15:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25538:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25531:6:25"},"nodeType":"YulFunctionCall","src":"25531:9:25"},"nodeType":"YulIf","src":"25528:132:25"},{"nodeType":"YulAssignment","src":"25669:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25678:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25681:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25674:3:25"},"nodeType":"YulFunctionCall","src":"25674:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"25669:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25503:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25506:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"25512:1:25","type":""}],"src":"25472:217:25"},{"body":{"nodeType":"YulBlock","src":"25746:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"25805:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25807:16:25"},"nodeType":"YulFunctionCall","src":"25807:18:25"},"nodeType":"YulExpressionStatement","src":"25807:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25777:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25770:6:25"},"nodeType":"YulFunctionCall","src":"25770:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25763:6:25"},"nodeType":"YulFunctionCall","src":"25763:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25785:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25796:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"25800:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"25788:3:25"},"nodeType":"YulFunctionCall","src":"25788:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25782:2:25"},"nodeType":"YulFunctionCall","src":"25782:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25759:3:25"},"nodeType":"YulFunctionCall","src":"25759:45:25"},"nodeType":"YulIf","src":"25756:71:25"},{"nodeType":"YulAssignment","src":"25836:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25854:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"25847:3:25"},"nodeType":"YulFunctionCall","src":"25847:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"25836:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25725:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25728:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"25734:7:25","type":""}],"src":"25694:168:25"},{"body":{"nodeType":"YulBlock","src":"25915:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"25942:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25944:16:25"},"nodeType":"YulFunctionCall","src":"25944:18:25"},"nodeType":"YulExpressionStatement","src":"25944:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25931:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"25938:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25934:3:25"},"nodeType":"YulFunctionCall","src":"25934:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25928:2:25"},"nodeType":"YulFunctionCall","src":"25928:13:25"},"nodeType":"YulIf","src":"25925:39:25"},{"nodeType":"YulAssignment","src":"25973:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"25984:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"25987:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25980:3:25"},"nodeType":"YulFunctionCall","src":"25980:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"25973:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"25898:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"25901:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"25907:3:25","type":""}],"src":"25867:128:25"},{"body":{"nodeType":"YulBlock","src":"26174:238:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26191:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26202:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26184:6:25"},"nodeType":"YulFunctionCall","src":"26184:21:25"},"nodeType":"YulExpressionStatement","src":"26184:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26236:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26221:3:25"},"nodeType":"YulFunctionCall","src":"26221:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26241:2:25","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26214:6:25"},"nodeType":"YulFunctionCall","src":"26214:30:25"},"nodeType":"YulExpressionStatement","src":"26214:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26264:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26275:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26260:3:25"},"nodeType":"YulFunctionCall","src":"26260:18:25"},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f7420","kind":"string","nodeType":"YulLiteral","src":"26280:34:25","type":"","value":"LzApp: destination chain is not "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26253:6:25"},"nodeType":"YulFunctionCall","src":"26253:62:25"},"nodeType":"YulExpressionStatement","src":"26253:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26335:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26346:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26331:3:25"},"nodeType":"YulFunctionCall","src":"26331:18:25"},{"hexValue":"61207472757374656420736f75726365","kind":"string","nodeType":"YulLiteral","src":"26351:18:25","type":"","value":"a trusted source"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26324:6:25"},"nodeType":"YulFunctionCall","src":"26324:46:25"},"nodeType":"YulExpressionStatement","src":"26324:46:25"},{"nodeType":"YulAssignment","src":"26379:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26391:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26402:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26387:3:25"},"nodeType":"YulFunctionCall","src":"26387:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26379:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26151:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26165:4:25","type":""}],"src":"26000:412:25"},{"body":{"nodeType":"YulBlock","src":"26726:528:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26743:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26758:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"26766:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26754:3:25"},"nodeType":"YulFunctionCall","src":"26754:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26736:6:25"},"nodeType":"YulFunctionCall","src":"26736:38:25"},"nodeType":"YulExpressionStatement","src":"26736:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26805:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26790:3:25"},"nodeType":"YulFunctionCall","src":"26790:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26810:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26783:6:25"},"nodeType":"YulFunctionCall","src":"26783:31:25"},"nodeType":"YulExpressionStatement","src":"26783:31:25"},{"nodeType":"YulVariableDeclaration","src":"26823:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"26854:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26866:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26877:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26862:3:25"},"nodeType":"YulFunctionCall","src":"26862:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"26837:16:25"},"nodeType":"YulFunctionCall","src":"26837:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"26827:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26902:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26913:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26898:3:25"},"nodeType":"YulFunctionCall","src":"26898:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"26922:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"26930:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26918:3:25"},"nodeType":"YulFunctionCall","src":"26918:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26891:6:25"},"nodeType":"YulFunctionCall","src":"26891:50:25"},"nodeType":"YulExpressionStatement","src":"26891:50:25"},{"nodeType":"YulVariableDeclaration","src":"26950:46:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"26981:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"26989:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"26964:16:25"},"nodeType":"YulFunctionCall","src":"26964:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"26954:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27005:29:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27023:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"27028:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27019:3:25"},"nodeType":"YulFunctionCall","src":"27019:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"27032:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27015:3:25"},"nodeType":"YulFunctionCall","src":"27015:19:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"27009:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27054:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27065:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27050:3:25"},"nodeType":"YulFunctionCall","src":"27050:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"27074:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"27082:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27070:3:25"},"nodeType":"YulFunctionCall","src":"27070:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27043:6:25"},"nodeType":"YulFunctionCall","src":"27043:43:25"},"nodeType":"YulExpressionStatement","src":"27043:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27106:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27117:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27102:3:25"},"nodeType":"YulFunctionCall","src":"27102:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"27127:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"27135:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27123:3:25"},"nodeType":"YulFunctionCall","src":"27123:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27095:6:25"},"nodeType":"YulFunctionCall","src":"27095:44:25"},"nodeType":"YulExpressionStatement","src":"27095:44:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27170:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27155:3:25"},"nodeType":"YulFunctionCall","src":"27155:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"27180:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"27188:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27176:3:25"},"nodeType":"YulFunctionCall","src":"27176:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27148:6:25"},"nodeType":"YulFunctionCall","src":"27148:51:25"},"nodeType":"YulExpressionStatement","src":"27148:51:25"},{"nodeType":"YulAssignment","src":"27208:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"27233:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"27241:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"27216:16:25"},"nodeType":"YulFunctionCall","src":"27216:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27208:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26655:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"26666:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"26674:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"26682:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"26690:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26698:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26706:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26717:4:25","type":""}],"src":"26417:837:25"},{"body":{"nodeType":"YulBlock","src":"27433:229:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27461:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27443:6:25"},"nodeType":"YulFunctionCall","src":"27443:21:25"},"nodeType":"YulExpressionStatement","src":"27443:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27484:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27495:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27480:3:25"},"nodeType":"YulFunctionCall","src":"27480:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"27500:2:25","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27473:6:25"},"nodeType":"YulFunctionCall","src":"27473:30:25"},"nodeType":"YulExpressionStatement","src":"27473:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27523:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27534:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27519:3:25"},"nodeType":"YulFunctionCall","src":"27519:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665","kind":"string","nodeType":"YulLiteral","src":"27539:34:25","type":"","value":"OmniVotingEscrow: cannot receive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27512:6:25"},"nodeType":"YulFunctionCall","src":"27512:62:25"},"nodeType":"YulExpressionStatement","src":"27512:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27594:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27605:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27590:3:25"},"nodeType":"YulFunctionCall","src":"27590:18:25"},{"hexValue":"206c7a4d736773","kind":"string","nodeType":"YulLiteral","src":"27610:9:25","type":"","value":" lzMsgs"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27583:6:25"},"nodeType":"YulFunctionCall","src":"27583:37:25"},"nodeType":"YulExpressionStatement","src":"27583:37:25"},{"nodeType":"YulAssignment","src":"27629:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27641:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27652:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27637:3:25"},"nodeType":"YulFunctionCall","src":"27637:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27629:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27410:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27424:4:25","type":""}],"src":"27259:403:25"},{"body":{"nodeType":"YulBlock","src":"27841:164:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27858:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27869:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27851:6:25"},"nodeType":"YulFunctionCall","src":"27851:21:25"},"nodeType":"YulExpressionStatement","src":"27851:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27888:3:25"},"nodeType":"YulFunctionCall","src":"27888:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"27908:2:25","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27881:6:25"},"nodeType":"YulFunctionCall","src":"27881:30:25"},"nodeType":"YulExpressionStatement","src":"27881:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27931:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27942:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27927:3:25"},"nodeType":"YulFunctionCall","src":"27927:18:25"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"27947:16:25","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27920:6:25"},"nodeType":"YulFunctionCall","src":"27920:44:25"},"nodeType":"YulExpressionStatement","src":"27920:44:25"},{"nodeType":"YulAssignment","src":"27973:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27985:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"27996:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27981:3:25"},"nodeType":"YulFunctionCall","src":"27981:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27973:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27818:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27832:4:25","type":""}],"src":"27667:338:25"},{"body":{"nodeType":"YulBlock","src":"28184:167:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28201:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28212:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28194:6:25"},"nodeType":"YulFunctionCall","src":"28194:21:25"},"nodeType":"YulExpressionStatement","src":"28194:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28235:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28246:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28231:3:25"},"nodeType":"YulFunctionCall","src":"28231:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"28251:2:25","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28224:6:25"},"nodeType":"YulFunctionCall","src":"28224:30:25"},"nodeType":"YulExpressionStatement","src":"28224:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28274:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28285:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28270:3:25"},"nodeType":"YulFunctionCall","src":"28270:18:25"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nodeType":"YulLiteral","src":"28290:19:25","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28263:6:25"},"nodeType":"YulFunctionCall","src":"28263:47:25"},"nodeType":"YulExpressionStatement","src":"28263:47:25"},{"nodeType":"YulAssignment","src":"28319:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28331:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"28342:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28327:3:25"},"nodeType":"YulFunctionCall","src":"28327:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28319:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28161:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28175:4:25","type":""}],"src":"28010:341:25"}]},"contents":"{\n { }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n value3 := abi_decode_uint64(add(headStart, 64))\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(0, 0) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function abi_decode_tuple_t_uint16t_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value1 := value\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_contract$_IVotingEscrowRemapper_$4540__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function validator_revert_address_payable(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_uint16t_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address_payable(value)\n value1 := value\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address_payable(value_1)\n value2 := value_1\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_addresst_uint16t_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n value1 := abi_decode_uint16(add(headStart, 32))\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address_payable(value_1)\n value2 := value_1\n let value_2 := calldataload(add(headStart, 96))\n validator_revert_address_payable(value_2)\n value3 := value_2\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := abi_decode_uint64(add(headStart, 64))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address_payable(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LzApp: invalid endpoint caller\")\n tail := add(headStart, 96)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LzApp: invalid source sending co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_encode_struct_Point(value, pos)\n {\n mstore(pos, signextend(15, mload(value)))\n mstore(add(pos, 0x20), signextend(15, mload(add(value, 0x20))))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n }\n function abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, and(value0, 0xffff))\n abi_encode_struct_Point(value1, add(headStart, 32))\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), 160)\n let tail_1 := abi_encode_bytes(value2, add(headStart, 160))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_decode_int128_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, signextend(15, value))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 128)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, abi_decode_int128_fromMemory(headStart))\n mstore(add(memPtr, 32), abi_decode_int128_fromMemory(add(headStart, 32)))\n mstore(add(memPtr, 64), mload(add(headStart, 64)))\n mstore(add(memPtr, 96), mload(add(headStart, 96)))\n value0 := memPtr\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffff))\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address_payable(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint256_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_uint16_t_address_t_rational_0_by_1_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_uint8_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, 0xff))\n abi_encode_struct_Point(value3, add(headStart, 96))\n abi_encode_struct_Point(value4, add(headStart, 224))\n }\n function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"NonblockingLzApp: caller must be\")\n mstore(add(headStart, 96), \" LzApp\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LzApp: no trusted path record\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n mstore(_1, and(shl(96, value2), not(0xffffffffffffffffffffffff)))\n end := add(_1, 20)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"NonblockingLzApp: no stored mess\")\n mstore(add(headStart, 96), \"age\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"NonblockingLzApp: invalid payloa\")\n mstore(add(headStart, 96), \"d\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), value4)\n }\n function abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"LzApp: invalid minGas\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value3, tail_1)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value3, tail_1)\n mstore(add(headStart, 128), sub(tail_2, headStart))\n tail := abi_encode_bytes(value4, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"LzApp: destination chain is not \")\n mstore(add(headStart, 96), \"a trusted source\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value2, tail_1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value5, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_db33380bda33733317bcbff805e73fce51915d753e1b56310f40a0272ed45cf2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"OmniVotingEscrow: cannot receive\")\n mstore(add(headStart, 96), \" lzMsgs\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"slice_overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"slice_outOfBounds\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"446":[{"length":32,"start":1268},{"length":32,"start":1516},{"length":32,"start":2107},{"length":32,"start":2244},{"length":32,"start":2420},{"length":32,"start":3618},{"length":32,"start":5803},{"length":32,"start":6876},{"length":32,"start":7696}],"3722":[{"length":32,"start":811},{"length":32,"start":2770},{"length":32,"start":2934},{"length":32,"start":3065},{"length":32,"start":3180},{"length":32,"start":3333},{"length":32,"start":3755},{"length":32,"start":3910},{"length":32,"start":4056},{"length":32,"start":4169},{"length":32,"start":4333}],"3725":[{"length":32,"start":617},{"length":32,"start":4489}]},"linkReferences":{},"object":"6080604052600436106101b65760003560e01c80637533d788116100ec578063baf3292d1161008a578063df2a5b3b11610064578063df2a5b3b14610569578063eb8d72b714610589578063f2fde38b146105a9578063f5ecbdbc146105c957600080fd5b8063baf3292d14610516578063cbed8b9c14610536578063d1deba1f1461055657600080fd5b8063950c8a74116100c6578063950c8a74146104825780639f38369a146104a2578063a6c3d165146104c2578063b353aaa7146104e257600080fd5b80637533d788146103ff5780638cfd8f5c1461042c5780638da5cb5b1461046457600080fd5b806342d65a8d116101595780635b8c41e6116101335780635b8c41e61461034d57806365d092d0146103aa57806366ad5c8a146103ca578063715018a6146103ea57600080fd5b806342d65a8d146102e65780634a759489146103065780634f2bfe5b1461031957600080fd5b806316334c8f1161019557806316334c8f1461021d578063363bf0de146102575780633d8b38f6146102a3578063416b154a146102d357600080fd5b80621d3567146101bb57806307e0db17146101dd57806310ddb137146101fd575b600080fd5b3480156101c757600080fd5b506101db6101d636600461224e565b6105e9565b005b3480156101e957600080fd5b506101db6101f83660046122e1565b61081a565b34801561020957600080fd5b506101db6102183660046122e1565b6108a3565b34801561022957600080fd5b5061023d6102383660046122fc565b6108fb565b604080519283526020830191909152015b60405180910390f35b34801561026357600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024e565b3480156102af57600080fd5b506102c36102be366004612363565b610a01565b604051901515815260200161024e565b6101db6102e136600461248d565b610ace565b3480156102f257600080fd5b506101db610301366004612363565b610e03565b6101db6103143660046124ff565b610e89565b34801561032557600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b5061039c610368366004612584565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b60405190815260200161024e565b3480156103b657600080fd5b5061023d6103c53660046122fc565b6112a0565b3480156103d657600080fd5b506101db6103e536600461224e565b611303565b3480156103f657600080fd5b506101db6113df565b34801561040b57600080fd5b5061041f61041a3660046122e1565b6113f3565b60405161024e919061263d565b34801561043857600080fd5b5061039c610447366004612650565b600260209081526000928352604080842090915290825290205481565b34801561047057600080fd5b506000546001600160a01b031661028b565b34801561048e57600080fd5b5060035461028b906001600160a01b031681565b3480156104ae57600080fd5b5061041f6104bd3660046122e1565b61148d565b3480156104ce57600080fd5b506101db6104dd366004612363565b61159d565b3480156104ee57600080fd5b5061028b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b506101db610531366004612683565b611630565b34801561054257600080fd5b506101db6105513660046126a0565b61168c565b6101db61056436600461224e565b611721565b34801561057557600080fd5b506101db61058436600461270e565b611926565b34801561059557600080fd5b506101db6105a4366004612363565b6119d8565b3480156105b557600080fd5b506101db6105c4366004612683565b611a32565b3480156105d557600080fd5b5061041f6105e436600461274a565b611aab565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461068490612797565b80601f01602080910402602001604051908101604052809291908181526020018280546106b090612797565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b50505050509050805186869050148015610718575060008151115b801561074057508051602082012060405161073690889088906127d2565b6040518091039020145b61079b5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b606482015260840161065d565b6108118787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611b5c92505050565b50505050505050565b610822611c66565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b5050505050565b6108ab611c66565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb1379060240161086e565b6000806000600560029054906101000a900461ffff1660405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525060405160200161094d92919061280e565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906109b3908a90309086908c908c908c9060040161284f565b6040805180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f391906128a5565b925092505094509492505050565b61ffff831660009081526001602052604081208054829190610a2290612797565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90612797565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b505050505090508383604051610ab29291906127d2565b60405180910390208180519060200120149150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5291906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be391906128f4565b9050610bf28160400151611cc0565b15610d7d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c5257600080fd5b505af1158015610c66573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906128c9565b60405163d1febfb960e01b8152600481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1febfb9906024016080604051808303816000875af1158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906128f4565b90505b6000600560029054906101000a900461ffff1682604051602001610da292919061280e565b6040516020818303038152906040529050610dc1878288888834611cf1565b7fd76af77f4ffbd9969fdb15b1c1268d40cd4bf1093905e67639f369cb9f44c1728783604051610df292919061280e565b60405180910390a150505050505050565b610e0b611c66565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610e5b90869086908690600401612965565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610811573d6000803e3d6000fd5b60405163010ae75760e01b81526001600160a01b0386811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063010ae757906024016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906128c9565b6040516328d09d4760e01b81526001600160a01b038881166004830152602482018390529192506000917f000000000000000000000000000000000000000000000000000000000000000016906328d09d47906044016080604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb391906128f4565b60405163adc6358960e01b81526001600160a01b0389811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063adc6358990602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128c9565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c991906128c9565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d1febfb9906024016080604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a91906128f4565b6040516317b4eb8760e31b81526001600160a01b038c8116600483015261ffff8c1660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bda75c3890604401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190612983565b905060006001600160a01b03821661120c578b61120e565b815b6005546040519192506000916112339161ffff1690849089908b9089906020016129a0565b60405160208183030381529060405290506112528c828d8d8d34611cf1565b7f3689d0fa90a175cc766502dc62c2abdee9ca4b276d4315adf98339a8354755808c8e848a886040516112899594939291906129e6565b60405180910390a150505050505050505050505050565b6005546040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052935190948594859461094d9461ffff9093169386938493909101612a16565b3330146113615760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b606482015260840161065d565b6113d78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815289935091508790879081908401838280828437600092019190915250611e8c92505050565b505050505050565b6113e7611c66565b6113f16000611ee4565b565b6001602052600090815260409020805461140c90612797565b80601f016020809104026020016040519081016040528092919081815260200182805461143890612797565b80156114855780601f1061145a57610100808354040283529160200191611485565b820191906000526020600020905b81548152906001019060200180831161146857829003601f168201915b505050505081565b61ffff81166000908152600160205260408120805460609291906114b090612797565b80601f01602080910402602001604051908101604052809291908181526020018280546114dc90612797565b80156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b505050505090508051600014156115825760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000604482015260640161065d565b610ac76000601483516115959190612a5d565b839190611f34565b6115a5611c66565b8181306040516020016115ba93929190612a74565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516115ef939192909101906120cb565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161162393929190612965565b60405180910390a1505050565b611638611c66565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b611694611c66565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116e89088908890889088908890600401612a9a565b600060405180830381600087803b15801561170257600080fd5b505af1158015611716573d6000803e3d6000fd5b505050505050505050565b61ffff8616600090815260046020526040808220905161174490889088906127d2565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806117c45760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b606482015260840161065d565b8083836040516117d59291906127d2565b6040518091039020146118345760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b606482015260840161065d565b61ffff8716600090815260046020526040808220905161185790899089906127d2565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526118ef918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611e8c92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051610df2959493929190612ad3565b61192e611c66565b600081116119765760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b604482015260640161065d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611623565b6119e0611c66565b61ffff831660009081526001602052604090206119fe90838361214f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161162393929190612965565b611a3a611c66565b6001600160a01b038116611a9f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065d565b611aa881611ee4565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b539190810190612b0e565b95945050505050565b600080611bbf5a60966366ad5c8a60e01b89898989604051602401611b849493929190612b7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612041565b91509150816113d7578280519060200120600460008861ffff1661ffff16815260200190815260200160002086604051611bf99190612bb9565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90611c569088908890889088908790612bd5565b60405180910390a1505050505050565b6000546001600160a01b031633146113f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065d565b600042611cd062093a8084612c33565b611cdd9062093a80612c55565b611cea9062093a80612c74565b1092915050565b61ffff861660009081526001602052604081208054611d0f90612797565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3b90612797565b8015611d885780601f10611d5d57610100808354040283529160200191611d88565b820191906000526020600020905b815481529060010190602001808311611d6b57829003601f168201915b50505050509050805160001415611dfa5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b606482015260840161065d565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490611e51908b9086908c908c908c908c90600401612c8c565b6000604051808303818588803b158015611e6a57600080fd5b505af1158015611e7e573d6000803e3d6000fd5b505050505050505050505050565b60405162461bcd60e51b815260206004820152602760248201527f4f6d6e69566f74696e67457363726f773a2063616e6e6f742072656365697665604482015266206c7a4d73677360c81b606482015260840161065d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606081611f4281601f612c74565b1015611f815760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161065d565b611f8b8284612c74565b84511015611fcf5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161065d565b606082158015611fee5760405191506000825260208201604052612038565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561202757805183526020928301920161200f565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b03811115612066576120666123ca565b6040519080825280601f01601f191660200182016040528015612090576020820181803683370190505b50905060008087516020890160008d8df191503d9250868311156120b2578692505b828152826000602083013e909890975095505050505050565b8280546120d790612797565b90600052602060002090601f0160209004810192826120f9576000855561213f565b82601f1061211257805160ff191683800117855561213f565b8280016001018555821561213f579182015b8281111561213f578251825591602001919060010190612124565b5061214b9291506121c3565b5090565b82805461215b90612797565b90600052602060002090601f01602090048101928261217d576000855561213f565b82601f106121965782800160ff1982351617855561213f565b8280016001018555821561213f579182015b8281111561213f5782358255916020019190600101906121a8565b5b8082111561214b57600081556001016121c4565b803561ffff811681146121ea57600080fd5b919050565b60008083601f84011261220157600080fd5b5081356001600160401b0381111561221857600080fd5b60208301915083602082850101111561223057600080fd5b9250929050565b80356001600160401b03811681146121ea57600080fd5b6000806000806000806080878903121561226757600080fd5b612270876121d8565b955060208701356001600160401b038082111561228c57600080fd5b6122988a838b016121ef565b90975095508591506122ac60408a01612237565b945060608901359150808211156122c257600080fd5b506122cf89828a016121ef565b979a9699509497509295939492505050565b6000602082840312156122f357600080fd5b610ac7826121d8565b6000806000806060858703121561231257600080fd5b61231b856121d8565b93506020850135801515811461233057600080fd5b925060408501356001600160401b0381111561234b57600080fd5b612357878288016121ef565b95989497509550505050565b60008060006040848603121561237857600080fd5b612381846121d8565b925060208401356001600160401b0381111561239c57600080fd5b6123a8868287016121ef565b9497909650939450505050565b6001600160a01b0381168114611aa857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612408576124086123ca565b604052919050565b60006001600160401b03821115612429576124296123ca565b50601f01601f191660200190565b600082601f83011261244857600080fd5b813561245b61245682612410565b6123e0565b81815284602083860101111561247057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156124a357600080fd5b6124ac856121d8565b935060208501356124bc816123b5565b925060408501356124cc816123b5565b915060608501356001600160401b038111156124e757600080fd5b6124f387828801612437565b91505092959194509250565b600080600080600060a0868803121561251757600080fd5b8535612522816123b5565b9450612530602087016121d8565b93506040860135612540816123b5565b92506060860135612550816123b5565b915060808601356001600160401b0381111561256b57600080fd5b61257788828901612437565b9150509295509295909350565b60008060006060848603121561259957600080fd5b6125a2846121d8565b925060208401356001600160401b038111156125bd57600080fd5b6125c986828701612437565b9250506125d860408501612237565b90509250925092565b60005b838110156125fc5781810151838201526020016125e4565b8381111561260b576000848401525b50505050565b600081518084526126298160208601602086016125e1565b601f01601f19169290920160200192915050565b602081526000610ac76020830184612611565b6000806040838503121561266357600080fd5b61266c836121d8565b915061267a602084016121d8565b90509250929050565b60006020828403121561269557600080fd5b8135610ac7816123b5565b6000806000806000608086880312156126b857600080fd5b6126c1866121d8565b94506126cf602087016121d8565b93506040860135925060608601356001600160401b038111156126f157600080fd5b6126fd888289016121ef565b969995985093965092949392505050565b60008060006060848603121561272357600080fd5b61272c846121d8565b925061273a602085016121d8565b9150604084013590509250925092565b6000806000806080858703121561276057600080fd5b612769856121d8565b9350612777602086016121d8565b92506040850135612787816123b5565b9396929550929360600135925050565b600181811c908216806127ab57607f821691505b602082108114156127cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b61ffff8316815260a08101610ac760208301846127e2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff871681526001600160a01b038616602082015260a06040820181905260009061287d90830187612611565b85151560608401528281036080840152612898818587612826565b9998505050505050505050565b600080604083850312156128b857600080fd5b505080516020909101519092909150565b6000602082840312156128db57600080fd5b5051919050565b8051600f81900b81146121ea57600080fd5b60006080828403121561290657600080fd5b604051608081018181106001600160401b0382111715612928576129286123ca565b604052612934836128e2565b8152612942602084016128e2565b602082015260408301516040820152606083015160608201528091505092915050565b61ffff84168152604060208201526000611b53604083018486612826565b60006020828403121561299557600080fd5b8151610ac7816123b5565b61ffff861681526001600160a01b03851660208201526040810184905261016081016129cf60608301856127e2565b6129dc60e08301846127e2565b9695505050505050565b61ffff861681526001600160a01b0385811660208301528416604082015261016081016129cf60608301856127e2565b61ffff861681526001600160a01b038516602082015260ff8416604082015261016081016129cf60608301856127e2565b634e487b7160e01b600052601160045260246000fd5b600082821015612a6f57612a6f612a47565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152612ac8608083018486612826565b979650505050505050565b61ffff86168152608060208201526000612af1608083018688612826565b6001600160401b0394909416604083015250606001529392505050565b600060208284031215612b2057600080fd5b81516001600160401b03811115612b3657600080fd5b8201601f81018413612b4757600080fd5b8051612b5561245682612410565b818152856020838501011115612b6a57600080fd5b611b538260208301602086016125e1565b61ffff85168152608060208201526000612b986080830186612611565b6001600160401b03851660408401528281036060840152612ac88185612611565b60008251612bcb8184602087016125e1565b9190910192915050565b61ffff8616815260a060208201526000612bf260a0830187612611565b6001600160401b03861660408401528281036060840152612c138186612611565b90508281036080840152612c278185612611565b98975050505050505050565b600082612c5057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612c6f57612c6f612a47565b500290565b60008219821115612c8757612c87612a47565b500190565b61ffff8716815260c060208201526000612ca960c0830188612611565b8281036040840152612cbb8188612611565b6001600160a01b0387811660608601528616608085015283810360a08501529050612898818561261156fea2646970667358221220b85af53a2a319ccabd0aabf707afce404bbc10fcde62f9d2c0840fa8d9e9f31364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBAF3292D GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDF2A5B3B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x569 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x589 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x516 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x536 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x482 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x65D092D0 EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x3CA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x4A759489 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x4F2BFE5B EQ PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x16334C8F GT PUSH2 0x195 JUMPI DUP1 PUSH4 0x16334C8F EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x363BF0DE EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x416B154A EQ PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x1FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x8A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0x2BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x248D JUMP JUMPDEST PUSH2 0xACE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x301 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0xE03 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x24FF JUMP JUMPDEST PUSH2 0xE89 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x2584 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x22FC JUMP JUMPDEST PUSH2 0x12A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1303 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x13DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x263D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x2650 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x28B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x28B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x4BD CALLDATASIZE PUSH1 0x4 PUSH2 0x22E1 JUMP JUMPDEST PUSH2 0x148D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x4DD CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x159D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x531 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1630 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x26A0 JUMP JUMPDEST PUSH2 0x168C JUMP JUMPDEST PUSH2 0x1DB PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x224E JUMP JUMPDEST PUSH2 0x1721 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x584 CALLDATASIZE PUSH1 0x4 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x1926 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2363 JUMP JUMPDEST PUSH2 0x19D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x5C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2683 JUMP JUMPDEST PUSH2 0x1A32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x5E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x274A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x684 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x718 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x740 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x736 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x79B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x811 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1B5C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x822 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x89C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AB PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x86E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xF SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x94D SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP3 MSTORE SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x9B3 SWAP1 DUP11 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x284F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9F3 SWAP2 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xA22 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA4E SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA9B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA70 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA9B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA7E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xAB2 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB52 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBE3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP PUSH2 0xBF2 DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x1CC0 JUMP JUMPDEST ISZERO PUSH2 0xD7D JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2C4C5C1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCEC SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD56 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD7A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xDC1 DUP8 DUP3 DUP9 DUP9 DUP9 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0xD76AF77F4FFBD9969FDB15B1C1268D40CD4BF1093905E67639F369CB9F44C172 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP3 SWAP2 SWAP1 PUSH2 0x280E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE0B PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xE5B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x811 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10AE757 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x10AE757 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF1A SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28D09D47 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0x28D09D47 SWAP1 PUSH1 0x44 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xADC63589 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xADC63589 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1043 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x900CF0CF PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C9 SWAP2 SWAP1 PUSH2 0x28C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD1FEBFB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD1FEBFB9 SWAP1 PUSH1 0x24 ADD PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1136 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x115A SWAP2 SWAP1 PUSH2 0x28F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x17B4EB87 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0xBDA75C38 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11F4 SWAP2 SWAP1 PUSH2 0x2983 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x120C JUMPI DUP12 PUSH2 0x120E JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x1233 SWAP2 PUSH2 0xFFFF AND SWAP1 DUP5 SWAP1 DUP10 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x29A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1252 DUP13 DUP3 DUP14 DUP14 DUP14 CALLVALUE PUSH2 0x1CF1 JUMP JUMPDEST PUSH32 0x3689D0FA90A175CC766502DC62C2ABDEE9CA4B276D4315ADF98339A835475580 DUP13 DUP15 DUP5 DUP11 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1289 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x29E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP1 DUP4 MSTORE PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP4 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE DUP6 MLOAD SWAP4 DUP5 ADD DUP7 MSTORE DUP3 DUP5 MSTORE DUP4 DUP3 ADD DUP4 SWAP1 MSTORE DUP4 DUP7 ADD DUP4 SWAP1 MSTORE DUP4 ADD DUP3 SWAP1 MSTORE SWAP4 MLOAD SWAP1 SWAP5 DUP6 SWAP5 DUP6 SWAP5 PUSH2 0x94D SWAP5 PUSH2 0xFFFF SWAP1 SWAP4 AND SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP1 SWAP2 ADD PUSH2 0x2A16 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x13D7 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x13E7 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0x13F1 PUSH1 0x0 PUSH2 0x1EE4 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x140C SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1438 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1485 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x145A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1485 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1468 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x14B0 SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x14DC SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1529 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x14FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1529 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x150C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1582 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xAC7 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1595 SWAP2 SWAP1 PUSH2 0x2A5D JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x15A5 PUSH2 0x1C66 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15BA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x15EF SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x20CB JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1638 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x1694 PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x16E8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2A9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1744 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x17C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x17D5 SWAP3 SWAP2 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1834 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1857 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x27D2 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x18EF SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E8C SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0xDF2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2AD3 JUMP JUMPDEST PUSH2 0x192E PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1623 JUMP JUMPDEST PUSH2 0x19E0 PUSH2 0x1C66 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FE SWAP1 DUP4 DUP4 PUSH2 0x214F JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1623 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2965 JUMP JUMPDEST PUSH2 0x1A3A PUSH2 0x1C66 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A9F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1AA8 DUP2 PUSH2 0x1EE4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1B53 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B0E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BBF GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1B84 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2041 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x13D7 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1BF9 SWAP2 SWAP1 PUSH2 0x2BB9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x1C56 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2BD5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH2 0x1CD0 PUSH3 0x93A80 DUP5 PUSH2 0x2C33 JUMP JUMPDEST PUSH2 0x1CDD SWAP1 PUSH3 0x93A80 PUSH2 0x2C55 JUMP JUMPDEST PUSH2 0x1CEA SWAP1 PUSH3 0x93A80 PUSH2 0x2C74 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1D0F SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D3B SWAP1 PUSH2 0x2797 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D88 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D5D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D88 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D6B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x1E51 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2C8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E7E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F773A2063616E6E6F742072656365697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x206C7A4D736773 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1F42 DUP2 PUSH1 0x1F PUSH2 0x2C74 JUMP JUMPDEST LT ISZERO PUSH2 0x1F81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH2 0x1F8B DUP3 DUP5 PUSH2 0x2C74 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1FCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x65D JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1FEE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2027 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x200F JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2066 JUMPI PUSH2 0x2066 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2090 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x20B2 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x20D7 SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x20F9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2112 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2124 JUMP JUMPDEST POP PUSH2 0x214B SWAP3 SWAP2 POP PUSH2 0x21C3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x215B SWAP1 PUSH2 0x2797 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x217D JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2196 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x213F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x213F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x213F JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x21A8 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x214B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21C4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2270 DUP8 PUSH2 0x21D8 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x228C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2298 DUP11 DUP4 DUP12 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x22AC PUSH1 0x40 DUP11 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x22C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22CF DUP10 DUP3 DUP11 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC7 DUP3 PUSH2 0x21D8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x231B DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x234B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2357 DUP8 DUP3 DUP9 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2381 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x239C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23A8 DUP7 DUP3 DUP8 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2408 JUMPI PUSH2 0x2408 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2429 JUMPI PUSH2 0x2429 PUSH2 0x23CA JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x245B PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST PUSH2 0x23E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x24A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24AC DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x24BC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x24CC DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP8 DUP3 DUP9 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2522 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP5 POP PUSH2 0x2530 PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2540 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0x2550 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x256B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2577 DUP9 DUP3 DUP10 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25A2 DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x25BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25C9 DUP7 DUP3 DUP8 ADD PUSH2 0x2437 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x25D8 PUSH1 0x40 DUP6 ADD PUSH2 0x2237 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25FC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x25E4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x260B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2629 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x266C DUP4 PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH2 0x267A PUSH1 0x20 DUP5 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26C1 DUP7 PUSH2 0x21D8 JUMP JUMPDEST SWAP5 POP PUSH2 0x26CF PUSH1 0x20 DUP8 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26FD DUP9 DUP3 DUP10 ADD PUSH2 0x21EF JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x272C DUP5 PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH2 0x273A PUSH1 0x20 DUP6 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2760 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2769 DUP6 PUSH2 0x21D8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2777 PUSH1 0x20 DUP7 ADD PUSH2 0x21D8 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2787 DUP2 PUSH2 0x23B5 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x27CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xAC7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x287D SWAP1 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2898 DUP2 DUP6 DUP8 PUSH2 0x2826 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0xF DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x21EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2906 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x23CA JUMP JUMPDEST PUSH1 0x40 MSTORE PUSH2 0x2934 DUP4 PUSH2 0x28E2 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2942 PUSH1 0x20 DUP5 ADD PUSH2 0x28E2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1B53 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAC7 DUP2 PUSH2 0x23B5 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0x29DC PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x27E2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x160 DUP2 ADD PUSH2 0x29CF PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x27E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2A6F JUMPI PUSH2 0x2A6F PUSH2 0x2A47 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2AC8 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x2826 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AF1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2826 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2B47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2B55 PUSH2 0x2456 DUP3 PUSH2 0x2410 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2B6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B53 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B98 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2AC8 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2BCB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x25E1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BF2 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C13 DUP2 DUP7 PUSH2 0x2611 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C27 DUP2 DUP6 PUSH2 0x2611 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2C50 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2C6F JUMPI PUSH2 0x2C6F PUSH2 0x2A47 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2C87 JUMPI PUSH2 0x2C87 PUSH2 0x2A47 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CA9 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x2611 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2CBB DUP2 DUP9 PUSH2 0x2611 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP7 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2898 DUP2 DUP6 PUSH2 0x2611 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 GAS CREATE2 GASPRICE 0x2A BALANCE SWAP13 0xCA 0xBD EXP 0xAB 0xF7 SMOD 0xAF 0xCE BLOCKHASH 0x4B 0xBC LT 0xFC 0xDE PUSH3 0xF9D2C0 DUP5 0xF 0xA8 0xD9 0xE9 RETURN SGT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"299:4343:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:753:4;;;;;;;;;;-1:-1:-1;1035:753:4;;;;;:::i;:::-;;:::i;:::-;;3834:121;;;;;;;;;;-1:-1:-1;3834:121:4;;;;;:::i;:::-;;:::i;3961:127::-;;;;;;;;;;-1:-1:-1;3961:127:4;;;;;:::i;:::-;;:::i;1891:344:14:-;;;;;;;;;;-1:-1:-1;1891:344:14;;;;;:::i;:::-;;:::i;:::-;;;;2583:25:25;;;2639:2;2624:18;;2617:34;;;;2556:18;1891:344:14;;;;;;;;419:59;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2856:32:25;;;2838:51;;2826:2;2811:18;419:59:14;2662:233:25;5744:247:4;;;;;;;;;;-1:-1:-1;5744:247:4;;;;;:::i;:::-;;:::i;:::-;;;3551:14:25;;3544:22;3526:41;;3514:2;3499:18;5744:247:4;3386:187:25;3333:994:14;;;;;;:::i;:::-;;:::i;4094:176:4:-;;;;;;;;;;-1:-1:-1;4094:176:4;;;;;:::i;:::-;;:::i;2241:1086:14:-;;;;;;:::i;:::-;;:::i;370:43::-;;;;;;;;;;;;;;;617:85:5;;;;;;;;;;-1:-1:-1;617:85:5;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7183:25:25;;;7171:2;7156:18;617:85:5;7037:177:25;1489:396:14;;;;;;;;;;-1:-1:-1;1489:396:14;;;;;:::i;:::-;;:::i;1577:342:5:-;;;;;;;;;;-1:-1:-1;1577:342:5;;;;;:::i;:::-;;:::i;1831:101:9:-;;;;;;;;;;;;;:::i;520:51:4:-;;;;;;;;;;-1:-1:-1;520:51:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;577:65::-;;;;;;;;;;-1:-1:-1;577:65:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:9;;;;;;;;;;-1:-1:-1;1247:7:9;1273:6;-1:-1:-1;;;;;1273:6:9;1201:85;;648:23:4;;;;;;;;;;-1:-1:-1;648:23:4;;;;-1:-1:-1;;;;;648:23:4;;;4898:326;;;;;;;;;;-1:-1:-1;4898:326:4;;;;;:::i;:::-;;:::i;4614:278::-;;;;;;;;;;-1:-1:-1;4614:278:4;;;;;:::i;:::-;;:::i;468:46::-;;;;;;;;;;;;;;;5230:133;;;;;;;;;;-1:-1:-1;5230:133:4;;;;;:::i;:::-;;:::i;3626:202::-;;;;;;;;;;-1:-1:-1;3626:202:4;;;;;:::i;:::-;;:::i;2100:757:5:-;;;;;;:::i;:::-;;:::i;5369:280:4:-;;;;;;;;;;-1:-1:-1;5369:280:4;;;;;:::i;:::-;;:::i;4413:195::-;;;;;;;;;;-1:-1:-1;4413:195:4;;;;;:::i;:::-;;:::i;2081:198:9:-;;;;;;;;;;-1:-1:-1;2081:198:9;;;;;:::i;:::-;;:::i;3358:209:4:-;;;;;;;;;;-1:-1:-1;3358:209:4;;;;;:::i;:::-;;:::i;1035:753::-;719:10:13;1273::4;-1:-1:-1;;;;;1249:35:4;;1241:78;;;;-1:-1:-1;;;1241:78:4;;10742:2:25;1241:78:4;;;10724:21:25;10781:2;10761:18;;;10754:30;10820:32;10800:18;;;10793:60;10870:18;;1241:78:4;;;;;;;;;1359:32;;;1330:26;1359:32;;;:19;:32;;;;;1330:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:13;:20;1541:11;;:18;;:42;:70;;;;;1610:1;1587:13;:20;:24;1541:70;:124;;;;-1:-1:-1;1641:24:4;;;;;;1615:22;;;;1625:11;;;;1615:22;:::i;:::-;;;;;;;;:50;1541:124;1533:175;;;;-1:-1:-1;;;1533:175:4;;11762:2:25;1533:175:4;;;11744:21:25;11801:2;11781:18;;;11774:30;11840:34;11820:18;;;11813:62;-1:-1:-1;;;11891:18:25;;;11884:36;11937:19;;1533:175:4;11560:402:25;1533:175:4;1719:62;1738:11;1751;;1719:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1719:62:4;;;;;;;;;;;;;;;;;;;;;;1764:6;;-1:-1:-1;1719:62:4;-1:-1:-1;1772:8:4;;;;;;1719:62;;1772:8;;;;1719:62;;;;;;;;;-1:-1:-1;1719:18:4;;-1:-1:-1;;;1719:62:4:i;:::-;1166:622;1035:753;;;;;;:::o;3834:121::-;1094:13:9;:11;:13::i;:::-;3913:35:4::1;::::0;-1:-1:-1;;;3913:35:4;;12141:6:25;12129:19;;3913:35:4::1;::::0;::::1;12111:38:25::0;3913:10:4::1;-1:-1:-1::0;;;;;3913:25:4::1;::::0;::::1;::::0;12084:18:25;;3913:35:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3834:121:::0;:::o;3961:127::-;1094:13:9;:11;:13::i;:::-;4043:38:4::1;::::0;-1:-1:-1;;;4043:38:4;;12141:6:25;12129:19;;4043:38:4::1;::::0;::::1;12111::25::0;4043:10:4::1;-1:-1:-1::0;;;;;4043:28:4::1;::::0;::::1;::::0;12084:18:25;;4043:38:4::1;11967:188:25::0;1891:344:14;2010:14;2026:11;2049:22;2085:5;;;;;;;;;;;2092:31;;;;;;;;2112:1;2092:31;;;;;;2115:1;2092:31;;;;;;2118:1;2092:31;;;;2121:1;2092:31;;;2074:50;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2074:50:14;;;;;;;;;;-1:-1:-1;;;2141:87:14;;2074:50;-1:-1:-1;;;;;;2141:10:14;:23;;;;:87;;2165:11;;2186:4;;2074:50;;2204:7;;2213:14;;;;2141:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2134:94;;;;;1891:344;;;;;;;:::o;5744:247:4:-;5885:32;;;5840:4;5885:32;;;:19;:32;;;;;5856:61;;5840:4;;5885:32;5856:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5972:11;;5962:22;;;;;;;:::i;:::-;;;;;;;;5944:13;5934:24;;;;;;:50;5927:57;;;5744:247;;;;;;:::o;3333:994:14:-;3492:21;3516:12;-1:-1:-1;;;;;3516:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3583:44;;-1:-1:-1;;;3583:44:14;;;;;7183:25:25;;;3492:44:14;;-1:-1:-1;3546:34:14;;-1:-1:-1;;;;;3583:12:14;:26;;;;7156:18:25;;3583:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3546:81;;3856:37;3882:7;:10;;;3856:25;:37::i;:::-;3852:248;;;3909:12;-1:-1:-1;;;;;3909:23:14;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4001:12;-1:-1:-1;;;;;4001:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4045:44;;-1:-1:-1;;;4045:44:14;;;;;7183:25:25;;;3982:39:14;;-1:-1:-1;4045:12:14;-1:-1:-1;;;;;4045:26:14;;;;7156:18:25;;4045:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4035:54;;3852:248;4110:22;4146:5;;;;;;;;;;;4153:7;4135:26;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4110:51;;4171:94;4179:11;4192:9;4203:14;4219:18;4239:14;4255:9;4171:7;:94::i;:::-;4280:40;4299:11;4312:7;4280:40;;;;;;;:::i;:::-;;;;;;;;3482:845;;;3333:994;;;;:::o;4094:176:4:-;1094:13:9;:11;:13::i;:::-;4208:55:4::1;::::0;-1:-1:-1;;;4208:55:4;;-1:-1:-1;;;;;4208:10:4::1;:29;::::0;::::1;::::0;:55:::1;::::0;4238:11;;4251;;;;4208:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;2241:1086:14::0;2437:41;;-1:-1:-1;;;2437:41:14;;-1:-1:-1;;;;;2856:32:25;;;2437:41:14;;;2838:51:25;2420:14:14;;2437:12;:29;;;;;;2811:18:25;;2437:41:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2524:54;;-1:-1:-1;;;2524:54:14;;-1:-1:-1;;;;;15529:32:25;;;2524:54:14;;;15511:51:25;15578:18;;;15571:34;;;2420:58:14;;-1:-1:-1;2488:33:14;;2524:12;:31;;;;15484:18:25;;2524:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2606:36;;-1:-1:-1;;;2606:36:14;;-1:-1:-1;;;;;2856:32:25;;;2606:36:14;;;2838:51:25;2488:90:14;;-1:-1:-1;2589:14:14;;2606:12;:24;;;;2811:18:25;;2606:36:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2589:53;;2714:21;2738:12;-1:-1:-1;;;;;2738:18:14;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2805:44;;-1:-1:-1;;;2805:44:14;;;;;7183:25:25;;;2714:44:14;;-1:-1:-1;2768:34:14;;-1:-1:-1;;;;;2805:12:14;:26;;;;7156:18:25;;2805:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2886:59;;-1:-1:-1;;;2886:59:14;;-1:-1:-1;;;;;15806:32:25;;;2886:59:14;;;15788:51:25;15887:6;15875:19;;15855:18;;;15848:47;2768:81:14;;-1:-1:-1;2860:23:14;;2886:20;:34;;;;15761:18:25;;2886:59:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2860:85;-1:-1:-1;2955:18:14;-1:-1:-1;;;;;2976:31:14;;:62;;3028:10;2976:62;;;3010:15;2976:62;3085:7;;3074:59;;2955:83;;-1:-1:-1;3049:22:14;;3074:59;;3085:7;;;2955:83;;3106:9;;3117:6;;3125:7;;3074:59;;;:::i;:::-;;;;;;;;;;;;;3049:84;;3143:94;3151:11;3164:9;3175:14;3191:18;3211:14;3227:9;3143:7;:94::i;:::-;3252:68;3267:11;3280:10;3292;3304:6;3312:7;3252:68;;;;;;;;;;:::i;:::-;;;;;;;;2410:917;;;;;;;;2241:1086;;;;;:::o;1489:396::-;1683:7;;1709:31;;;;;;;;;1608:14;1709:31;;;;;;;;;;;;;;;;;;;;;;;1742;;;;;;;;;;;;;;;;;;;;;;;;;;;1672:102;;1608:14;;;;;;1672:102;;1683:7;;;;;1608:14;;;;1742:31;;1672:102;;:::i;1577:342:5:-;719:10:13;1789:4:5;1765:29;1757:80;;;;-1:-1:-1;;;1757:80:5;;18312:2:25;1757:80:5;;;18294:21:25;18351:2;18331:18;;;18324:30;18390:34;18370:18;;;18363:62;-1:-1:-1;;;18441:18:25;;;18434:36;18487:19;;1757:80:5;18110:402:25;1757:80:5;1847:65;1869:11;1882;;1847:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1847:65:5;;;;;;;;;;;;;;;;;;;;;;1895:6;;-1:-1:-1;1847:65:5;-1:-1:-1;1903:8:5;;;;;;1847:65;;1903:8;;;;1847:65;;;;;;;;;-1:-1:-1;1847:21:5;;-1:-1:-1;;;1847:65:5:i;:::-;1577:342;;;;;;:::o;1831:101:9:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;520:51:4:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4898:326::-;5021:35;;;5001:17;5021:35;;;:19;:35;;;;;5001:55;;4977:12;;5001:17;5021:35;5001:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5074:4;:11;5089:1;5074:16;;5066:58;;;;-1:-1:-1;;;5066:58:4;;18719:2:25;5066:58:4;;;18701:21:25;18758:2;18738:18;;;18731:30;18797:31;18777:18;;;18770:59;18846:18;;5066:58:4;18517:353:25;5066:58:4;5141:31;5152:1;5169:2;5155:4;:11;:16;;;;:::i;:::-;5141:4;;:31;:10;:31::i;4614:278::-;1094:13:9;:11;:13::i;:::-;4785:14:4::1;;4809:4;4768:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4768:47:4;;::::1;::::0;;;;;;4730:35:::1;::::0;::::1;;::::0;;;:19:::1;4768:47;4730:35:::0;;;;;;:85;;::::1;::::0;:35;;:85;;::::1;::::0;::::1;:::i;:::-;;4830:55;4854:14;4870;;4830:55;;;;;;;;:::i;:::-;;;;;;;;4614:278:::0;;;:::o;5230:133::-;1094:13:9;:11;:13::i;:::-;5299:8:4::1;:20:::0;;-1:-1:-1;;;;;;5299:20:4::1;-1:-1:-1::0;;;;;5299:20:4;::::1;::::0;;::::1;::::0;;;5334:22:::1;::::0;2838:51:25;;;5334:22:4::1;::::0;2826:2:25;2811:18;5334:22:4::1;;;;;;;5230:133:::0;:::o;3626:202::-;1094:13:9;:11;:13::i;:::-;3759:62:4::1;::::0;-1:-1:-1;;;3759:62:4;;-1:-1:-1;;;;;3759:10:4::1;:20;::::0;::::1;::::0;:62:::1;::::0;3780:8;;3790;;3800:11;;3813:7;;;;3759:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3626:202:::0;;;;;:::o;2100:757:5:-;2309:27;;;2287:19;2309:27;;;:14;:27;;;;;;:40;;;;2337:11;;;;2309:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2309:48:5;;;;;;;;;;;;-1:-1:-1;2309:48:5;2367:73;;;;-1:-1:-1;;;2367:73:5;;20229:2:25;2367:73:5;;;20211:21:25;20268:2;20248:18;;;20241:30;20307:34;20287:18;;;20280:62;-1:-1:-1;;;20358:18:25;;;20351:33;20401:19;;2367:73:5;20027:399:25;2367:73:5;2481:11;2468:8;;2458:19;;;;;;;:::i;:::-;;;;;;;;:34;2450:80;;;;-1:-1:-1;;;2450:80:5;;20633:2:25;2450:80:5;;;20615:21:25;20672:2;20652:18;;;20645:30;20711:34;20691:18;;;20684:62;-1:-1:-1;;;20762:18:25;;;20755:31;20803:19;;2450:80:5;20431:397:25;2450:80:5;2576:27;;;2635:1;2576:27;;;:14;:27;;;;;;:40;;;;2604:11;;;;2576:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2576:48:5;;;;;;;;;;;;:61;;;;2704:65;;;;;;;;;;;;;;;;;;;2726:11;;2739;;2704:65;;;;;;2739:11;2704:65;;2739:11;2704:65;;;;;;;;;-1:-1:-1;;2704:65:5;;;;;;;;;;;;;;;;;;;;;;2752:6;;-1:-1:-1;2704:65:5;-1:-1:-1;2760:8:5;;;;;;2704:65;;2760:8;;;;2704:65;;;;;;;;;-1:-1:-1;2704:21:5;;-1:-1:-1;;;2704:65:5:i;:::-;2784:66;2804:11;2817;;2830:6;2838:11;2784:66;;;;;;;;;;:::i;5369:280:4:-;1094:13:9;:11;:13::i;:::-;5492:1:4::1;5482:7;:11;5474:45;;;::::0;-1:-1:-1;;;5474:45:4;;21533:2:25;5474:45:4::1;::::0;::::1;21515:21:25::0;21572:2;21552:18;;;21545:30;-1:-1:-1;;;21591:18:25;;;21584:51;21652:18;;5474:45:4::1;21331:345:25::0;5474:45:4::1;5529:28;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;;;:51;;;5595:47;;21904:34:25;;;21954:18;;21947:43;;;;22006:18;;;21999:34;;;5595:47:4::1;::::0;21867:2:25;21852:18;5595:47:4::1;21681:358:25::0;4413:195:4;1094:13:9;:11;:13::i;:::-;4510:32:4::1;::::0;::::1;;::::0;;;:19:::1;:32;::::0;;;;:40:::1;::::0;4545:5;;4510:40:::1;:::i;:::-;;4565:36;4582:11;4595:5;;4565:36;;;;;;;;:::i;2081:198:9:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:9;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:9;;22246:2:25;2161:73:9::1;::::0;::::1;22228:21:25::0;22285:2;22265:18;;;22258:30;22324:34;22304:18;;;22297:62;-1:-1:-1;;;22375:18:25;;;22368:36;22421:19;;2161:73:9::1;22044:402:25::0;2161:73:9::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3358:209:4:-;3492:68;;-1:-1:-1;;;3492:68:4;;22688:6:25;22721:15;;;3492:68:4;;;22703:34:25;22773:15;;22753:18;;;22746:43;3541:4:4;22805:18:25;;;22798:60;22874:18;;;22867:34;;;3461:12:4;;3492:10;-1:-1:-1;;;;;3492:20:4;;;;22650:19:25;;3492:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3492:68:4;;;;;;;;;;;;:::i;:::-;3485:75;3358:209;-1:-1:-1;;;;;3358:209:4:o;980:591:5:-;1129:12;1143:19;1166:153;1200:9;1211:3;1239:34;;;1275:11;1288;1301:6;1309:8;1216:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1216:102:5;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:102:5;-1:-1:-1;;;;;;1216:102:5;;;;;;;;;;1174:4;;1166:153;;:33;:153::i;:::-;1128:191;;;;1377:7;1372:193;;1461:8;1451:19;;;;;;1400:14;:27;1415:11;1400:27;;;;;;;;;;;;;;;1428:11;1400:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1400:48:5;;;;;;;;;:70;;;;1489:65;;;;1503:11;;1516;;1441:6;;1537:8;;1547:6;;1489:65;:::i;:::-;;;;;;;;1118:453;;980:591;;;;:::o;1359:130:9:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:9;719:10:13;1422:23:9;1414:68;;;;-1:-1:-1;;;1414:68:9;;25313:2:25;1414:68:9;;;25295:21:25;;;25332:18;;;25325:30;25391:34;25371:18;;;25364:62;25443:18;;1414:68:9;25111:356:25;4333:307:14;4421:4;4618:15;4561:33;4587:7;4561:23;:33;:::i;:::-;4560:45;;4598:7;4560:45;:::i;:::-;:55;;4608:7;4560:55;:::i;:::-;:73;;4333:307;-1:-1:-1;;4333:307:14:o;2072:491:4:-;2294:32;;;2265:26;2294:32;;;:19;:32;;;;;2265:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2344:13;:20;2368:1;2344:25;;2336:86;;;;-1:-1:-1;;;2336:86:4;;26202:2:25;2336:86:4;;;26184:21:25;26241:2;26221:18;;;26214:30;26280:34;26260:18;;;26253:62;-1:-1:-1;;;26331:18:25;;;26324:46;26387:19;;2336:86:4;26000:412:25;2336:86:4;2432:124;;-1:-1:-1;;;2432:124:4;;-1:-1:-1;;;;;2432:10:4;:15;;;;2455:10;;2432:124;;2467:11;;2480:13;;2495:8;;2505:14;;2521:18;;2541:14;;2432:124;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:308;2072:491;;;;;;:::o;1222:261:14:-;1427:49;;-1:-1:-1;;;1427:49:14;;27461:2:25;1427:49:14;;;27443:21:25;27500:2;27480:18;;;27473:30;27539:34;27519:18;;;27512:62;-1:-1:-1;;;27590:18:25;;;27583:37;27637:19;;1427:49:14;27259:403:25;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;8865:2712:7:-;8999:12;9051:7;9035:12;9051:7;9045:2;9035:12;:::i;:::-;:23;;9027:50;;;;-1:-1:-1;;;9027:50:7;;27869:2:25;9027:50:7;;;27851:21:25;27908:2;27888:18;;;27881:30;-1:-1:-1;;;27927:18:25;;;27920:44;27981:18;;9027:50:7;27667:338:25;9027:50:7;9112:16;9121:7;9112:6;:16;:::i;:::-;9095:6;:13;:33;;9087:63;;;;-1:-1:-1;;;9087:63:7;;28212:2:25;9087:63:7;;;28194:21:25;28251:2;28231:18;;;28224:30;-1:-1:-1;;;28270:18:25;;;28263:47;28327:18;;9087:63:7;28010:341:25;9087:63:7;9161:22;9224:15;;9252:1895;;;;11288:4;11282:11;11269:24;;11466:1;11455:9;11448:20;11514:4;11503:9;11499:20;11493:4;11486:34;9217:2317;;9252:1895;9426:4;9420:11;9407:24;;10053:2;10044:7;10040:16;10419:9;10412:17;10406:4;10402:28;10390:9;10379;10375:25;10371:60;10467:7;10463:2;10459:16;10711:6;10697:9;10690:17;10684:4;10680:28;10668:9;10660:6;10656:22;10652:57;10648:70;10493:417;10744:3;10740:2;10737:11;10493:417;;;10882:9;;10871:21;;10785:4;10777:13;;;;10817;10493:417;;;-1:-1:-1;;10928:26:7;;;11128:2;11111:11;-1:-1:-1;;11107:25:7;11101:4;11094:39;-1:-1:-1;9217:2317:7;-1:-1:-1;11561:9:7;8865:2712;-1:-1:-1;;;;8865:2712:7:o;1118:1240:8:-;1275:4;1281:12;1341:15;1366:13;1389:24;1426:8;1416:19;;-1:-1:-1;;;;;1416:19:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1416:19:8;;1389:46;;1904:1;1879;1846:9;1840:16;1812:4;1801:9;1797:20;1767:1;1733:7;1708:4;1690:239;1678:251;;1992:16;1981:27;;2036:8;2027:7;2024:21;2021:76;;;2075:8;2064:19;;2021:76;2178:7;2165:11;2158:28;2294:7;2291:1;2284:4;2271:11;2267:22;2252:50;2329:8;;;;-1:-1:-1;1118:1240:8;-1:-1:-1;;;;;;1118:1240:8:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:159:25;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:347::-;229:8;239:6;293:3;286:4;278:6;274:17;270:27;260:55;;311:1;308;301:12;260:55;-1:-1:-1;334:20:25;;-1:-1:-1;;;;;366:30:25;;363:50;;;409:1;406;399:12;363:50;446:4;438:6;434:17;422:29;;498:3;491:4;482:6;474;470:19;466:30;463:39;460:59;;;515:1;512;505:12;460:59;178:347;;;;;:::o;530:171::-;597:20;;-1:-1:-1;;;;;646:30:25;;636:41;;626:69;;691:1;688;681:12;706:862;812:6;820;828;836;844;852;905:3;893:9;884:7;880:23;876:33;873:53;;;922:1;919;912:12;873:53;945:28;963:9;945:28;:::i;:::-;935:38;;1024:2;1013:9;1009:18;996:32;-1:-1:-1;;;;;1088:2:25;1080:6;1077:14;1074:34;;;1104:1;1101;1094:12;1074:34;1143:58;1193:7;1184:6;1173:9;1169:22;1143:58;:::i;:::-;1220:8;;-1:-1:-1;1117:84:25;-1:-1:-1;1117:84:25;;-1:-1:-1;1274:37:25;1307:2;1292:18;;1274:37;:::i;:::-;1264:47;;1364:2;1353:9;1349:18;1336:32;1320:48;;1393:2;1383:8;1380:16;1377:36;;;1409:1;1406;1399:12;1377:36;;1448:60;1500:7;1489:8;1478:9;1474:24;1448:60;:::i;:::-;706:862;;;;-1:-1:-1;706:862:25;;-1:-1:-1;706:862:25;;1527:8;;706:862;-1:-1:-1;;;706:862:25:o;1573:184::-;1631:6;1684:2;1672:9;1663:7;1659:23;1655:32;1652:52;;;1700:1;1697;1690:12;1652:52;1723:28;1741:9;1723:28;:::i;1762:642::-;1846:6;1854;1862;1870;1923:2;1911:9;1902:7;1898:23;1894:32;1891:52;;;1939:1;1936;1929:12;1891:52;1962:28;1980:9;1962:28;:::i;:::-;1952:38;;2040:2;2029:9;2025:18;2012:32;2087:5;2080:13;2073:21;2066:5;2063:32;2053:60;;2109:1;2106;2099:12;2053:60;2132:5;-1:-1:-1;2188:2:25;2173:18;;2160:32;-1:-1:-1;;;;;2204:30:25;;2201:50;;;2247:1;2244;2237:12;2201:50;2286:58;2336:7;2327:6;2316:9;2312:22;2286:58;:::i;:::-;1762:642;;;;-1:-1:-1;2363:8:25;-1:-1:-1;;;;1762:642:25:o;2900:481::-;2978:6;2986;2994;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3086:28;3104:9;3086:28;:::i;:::-;3076:38;;3165:2;3154:9;3150:18;3137:32;-1:-1:-1;;;;;3184:6:25;3181:30;3178:50;;;3224:1;3221;3214:12;3178:50;3263:58;3313:7;3304:6;3293:9;3289:22;3263:58;:::i;:::-;2900:481;;3340:8;;-1:-1:-1;3237:84:25;;-1:-1:-1;;;;2900:481:25:o;3578:139::-;-1:-1:-1;;;;;3661:31:25;;3651:42;;3641:70;;3707:1;3704;3697:12;3722:127;3783:10;3778:3;3774:20;3771:1;3764:31;3814:4;3811:1;3804:15;3838:4;3835:1;3828:15;3854:275;3925:2;3919:9;3990:2;3971:13;;-1:-1:-1;;3967:27:25;3955:40;;-1:-1:-1;;;;;4010:34:25;;4046:22;;;4007:62;4004:88;;;4072:18;;:::i;:::-;4108:2;4101:22;3854:275;;-1:-1:-1;3854:275:25:o;4134:186::-;4182:4;-1:-1:-1;;;;;4207:6:25;4204:30;4201:56;;;4237:18;;:::i;:::-;-1:-1:-1;4303:2:25;4282:15;-1:-1:-1;;4278:29:25;4309:4;4274:40;;4134:186::o;4325:462::-;4367:5;4420:3;4413:4;4405:6;4401:17;4397:27;4387:55;;4438:1;4435;4428:12;4387:55;4474:6;4461:20;4505:48;4521:31;4549:2;4521:31;:::i;:::-;4505:48;:::i;:::-;4578:2;4569:7;4562:19;4624:3;4617:4;4612:2;4604:6;4600:15;4596:26;4593:35;4590:55;;;4641:1;4638;4631:12;4590:55;4706:2;4699:4;4691:6;4687:17;4680:4;4671:7;4667:18;4654:55;4754:1;4729:16;;;4747:4;4725:27;4718:38;;;;4733:7;4325:462;-1:-1:-1;;;4325:462:25:o;4792:693::-;4894:6;4902;4910;4918;4971:3;4959:9;4950:7;4946:23;4942:33;4939:53;;;4988:1;4985;4978:12;4939:53;5011:28;5029:9;5011:28;:::i;:::-;5001:38;;5089:2;5078:9;5074:18;5061:32;5102:39;5135:5;5102:39;:::i;:::-;5160:5;-1:-1:-1;5217:2:25;5202:18;;5189:32;5230:41;5189:32;5230:41;:::i;:::-;5290:7;-1:-1:-1;5348:2:25;5333:18;;5320:32;-1:-1:-1;;;;;5364:30:25;;5361:50;;;5407:1;5404;5397:12;5361:50;5430:49;5471:7;5462:6;5451:9;5447:22;5430:49;:::i;:::-;5420:59;;;4792:693;;;;;;;:::o;5490:843::-;5601:6;5609;5617;5625;5633;5686:3;5674:9;5665:7;5661:23;5657:33;5654:53;;;5703:1;5700;5693:12;5654:53;5742:9;5729:23;5761:39;5794:5;5761:39;:::i;:::-;5819:5;-1:-1:-1;5843:37:25;5876:2;5861:18;;5843:37;:::i;:::-;5833:47;;5932:2;5921:9;5917:18;5904:32;5945:41;5978:7;5945:41;:::i;:::-;6005:7;-1:-1:-1;6064:2:25;6049:18;;6036:32;6077:41;6036:32;6077:41;:::i;:::-;6137:7;-1:-1:-1;6195:3:25;6180:19;;6167:33;-1:-1:-1;;;;;6212:30:25;;6209:50;;;6255:1;6252;6245:12;6209:50;6278:49;6319:7;6310:6;6299:9;6295:22;6278:49;:::i;:::-;6268:59;;;5490:843;;;;;;;;:::o;6568:464::-;6652:6;6660;6668;6721:2;6709:9;6700:7;6696:23;6692:32;6689:52;;;6737:1;6734;6727:12;6689:52;6760:28;6778:9;6760:28;:::i;:::-;6750:38;;6839:2;6828:9;6824:18;6811:32;-1:-1:-1;;;;;6858:6:25;6855:30;6852:50;;;6898:1;6895;6888:12;6852:50;6921:49;6962:7;6953:6;6942:9;6938:22;6921:49;:::i;:::-;6911:59;;;6989:37;7022:2;7011:9;7007:18;6989:37;:::i;:::-;6979:47;;6568:464;;;;;:::o;7219:258::-;7291:1;7301:113;7315:6;7312:1;7309:13;7301:113;;;7391:11;;;7385:18;7372:11;;;7365:39;7337:2;7330:10;7301:113;;;7432:6;7429:1;7426:13;7423:48;;;7467:1;7458:6;7453:3;7449:16;7442:27;7423:48;;7219:258;;;:::o;7482:257::-;7523:3;7561:5;7555:12;7588:6;7583:3;7576:19;7604:63;7660:6;7653:4;7648:3;7644:14;7637:4;7630:5;7626:16;7604:63;:::i;:::-;7721:2;7700:15;-1:-1:-1;;7696:29:25;7687:39;;;;7728:4;7683:50;;7482:257;-1:-1:-1;;7482:257:25:o;7744:217::-;7891:2;7880:9;7873:21;7854:4;7911:44;7951:2;7940:9;7936:18;7928:6;7911:44;:::i;7966:256::-;8032:6;8040;8093:2;8081:9;8072:7;8068:23;8064:32;8061:52;;;8109:1;8106;8099:12;8061:52;8132:28;8150:9;8132:28;:::i;:::-;8122:38;;8179:37;8212:2;8201:9;8197:18;8179:37;:::i;:::-;8169:47;;7966:256;;;;;:::o;8851:255::-;8910:6;8963:2;8951:9;8942:7;8938:23;8934:32;8931:52;;;8979:1;8976;8969:12;8931:52;9018:9;9005:23;9037:39;9070:5;9037:39;:::i;9111:622::-;9206:6;9214;9222;9230;9238;9291:3;9279:9;9270:7;9266:23;9262:33;9259:53;;;9308:1;9305;9298:12;9259:53;9331:28;9349:9;9331:28;:::i;:::-;9321:38;;9378:37;9411:2;9400:9;9396:18;9378:37;:::i;:::-;9368:47;;9462:2;9451:9;9447:18;9434:32;9424:42;;9517:2;9506:9;9502:18;9489:32;-1:-1:-1;;;;;9536:6:25;9533:30;9530:50;;;9576:1;9573;9566:12;9530:50;9615:58;9665:7;9656:6;9645:9;9641:22;9615:58;:::i;:::-;9111:622;;;;-1:-1:-1;9111:622:25;;-1:-1:-1;9692:8:25;;9589:84;9111:622;-1:-1:-1;;;9111:622:25:o;9738:324::-;9813:6;9821;9829;9882:2;9870:9;9861:7;9857:23;9853:32;9850:52;;;9898:1;9895;9888:12;9850:52;9921:28;9939:9;9921:28;:::i;:::-;9911:38;;9968:37;10001:2;9990:9;9986:18;9968:37;:::i;:::-;9958:47;;10052:2;10041:9;10037:18;10024:32;10014:42;;9738:324;;;;;:::o;10067:468::-;10151:6;10159;10167;10175;10228:3;10216:9;10207:7;10203:23;10199:33;10196:53;;;10245:1;10242;10235:12;10196:53;10268:28;10286:9;10268:28;:::i;:::-;10258:38;;10315:37;10348:2;10337:9;10333:18;10315:37;:::i;:::-;10305:47;;10402:2;10391:9;10387:18;10374:32;10415:39;10448:5;10415:39;:::i;:::-;10067:468;;;;-1:-1:-1;10473:5:25;;10525:2;10510:18;10497:32;;-1:-1:-1;;10067:468:25:o;10899:380::-;10978:1;10974:12;;;;11021;;;11042:61;;11096:4;11088:6;11084:17;11074:27;;11042:61;11149:2;11141:6;11138:14;11118:18;11115:38;11112:161;;;11195:10;11190:3;11186:20;11183:1;11176:31;11230:4;11227:1;11220:15;11258:4;11255:1;11248:15;11112:161;;10899:380;;;:::o;11284:271::-;11467:6;11459;11454:3;11441:33;11423:3;11493:16;;11518:13;;;11493:16;11284:271;-1:-1:-1;11284:271:25:o;12160:290::-;12252:5;12246:12;12242:2;12231:28;12226:3;12219:41;12324:4;12317:5;12313:16;12307:23;12303:2;12292:39;12285:4;12280:3;12276:14;12269:63;12381:4;12374:5;12370:16;12364:23;12357:4;12352:3;12348:14;12341:47;12437:4;12430:5;12426:16;12420:23;12413:4;12408:3;12404:14;12397:47;;;12160:290::o;12455:323::-;12704:6;12692:19;;12674:38;;12661:3;12646:19;;12721:51;12768:2;12753:18;;12745:6;12721:51;:::i;12783:266::-;12871:6;12866:3;12859:19;12923:6;12916:5;12909:4;12904:3;12900:14;12887:43;-1:-1:-1;12975:1:25;12950:16;;;12968:4;12946:27;;;12939:38;;;;13031:2;13010:15;;;-1:-1:-1;;13006:29:25;12997:39;;;12993:50;;12783:266::o;13054:667::-;13345:6;13333:19;;13315:38;;-1:-1:-1;;;;;13389:32:25;;13384:2;13369:18;;13362:60;13409:3;13453:2;13438:18;;13431:31;;;-1:-1:-1;;13485:45:25;;13510:19;;13502:6;13485:45;:::i;:::-;13580:6;13573:14;13566:22;13561:2;13550:9;13546:18;13539:50;13638:9;13630:6;13626:22;13620:3;13609:9;13605:19;13598:51;13666:49;13708:6;13700;13692;13666:49;:::i;:::-;13658:57;13054:667;-1:-1:-1;;;;;;;;;13054:667:25:o;13726:245::-;13805:6;13813;13866:2;13854:9;13845:7;13841:23;13837:32;13834:52;;;13882:1;13879;13872:12;13834:52;-1:-1:-1;;13905:16:25;;13961:2;13946:18;;;13940:25;13905:16;;13940:25;;-1:-1:-1;13726:245:25:o;13976:184::-;14046:6;14099:2;14087:9;14078:7;14074:23;14070:32;14067:52;;;14115:1;14112;14105:12;14067:52;-1:-1:-1;14138:16:25;;13976:184;-1:-1:-1;13976:184:25:o;14165:166::-;14243:13;;14296:2;14285:21;;;14275:32;;14265:60;;14321:1;14318;14311:12;14336:665;14429:6;14482:3;14470:9;14461:7;14457:23;14453:33;14450:53;;;14499:1;14496;14489:12;14450:53;14532:2;14526:9;14574:3;14566:6;14562:16;14644:6;14632:10;14629:22;-1:-1:-1;;;;;14596:10:25;14593:34;14590:62;14587:88;;;14655:18;;:::i;:::-;14691:2;14684:22;14730:39;14759:9;14730:39;:::i;:::-;14722:6;14715:55;14803:48;14847:2;14836:9;14832:18;14803:48;:::i;:::-;14798:2;14790:6;14786:15;14779:73;14906:2;14895:9;14891:18;14885:25;14880:2;14872:6;14868:15;14861:50;14965:2;14954:9;14950:18;14944:25;14939:2;14931:6;14927:15;14920:50;14989:6;14979:16;;;14336:665;;;;:::o;15006:326::-;15201:6;15193;15189:19;15178:9;15171:38;15245:2;15240;15229:9;15225:18;15218:30;15152:4;15265:61;15322:2;15311:9;15307:18;15299:6;15291;15265:61;:::i;15906:259::-;15976:6;16029:2;16017:9;16008:7;16004:23;16000:32;15997:52;;;16045:1;16042;16035:12;15997:52;16077:9;16071:16;16096:39;16129:5;16096:39;:::i;16170:626::-;16549:6;16537:19;;16519:38;;-1:-1:-1;;;;;16593:32:25;;16588:2;16573:18;;16566:60;16657:2;16642:18;;16635:34;;;16506:3;16491:19;;16678:51;16725:2;16710:18;;16702:6;16678:51;:::i;:::-;16738:52;16785:3;16774:9;16770:19;16762:6;16738:52;:::i;:::-;16170:626;;;;;;;;:::o;16801:656::-;17180:6;17168:19;;17150:38;;-1:-1:-1;;;;;17262:15:25;;;17257:2;17242:18;;17235:43;17314:15;;17309:2;17294:18;;17287:43;17137:3;17122:19;;17339:51;17386:2;17371:18;;17363:6;17339:51;:::i;17462:643::-;17847:6;17835:19;;17817:38;;-1:-1:-1;;;;;17891:32:25;;17886:2;17871:18;;17864:60;17972:4;17960:17;;17955:2;17940:18;;17933:45;17804:3;17789:19;;17987:51;18034:2;18019:18;;18011:6;17987:51;:::i;18875:127::-;18936:10;18931:3;18927:20;18924:1;18917:31;18967:4;18964:1;18957:15;18991:4;18988:1;18981:15;19007:125;19047:4;19075:1;19072;19069:8;19066:34;;;19080:18;;:::i;:::-;-1:-1:-1;19117:9:25;;19007:125::o;19137:382::-;19348:6;19340;19335:3;19322:33;19440:2;19436:15;;;;-1:-1:-1;;19432:53:25;19374:16;;19421:65;;;19510:2;19502:11;;19137:382;-1:-1:-1;19137:382:25:o;19524:498::-;19724:4;19753:6;19798:2;19790:6;19786:15;19775:9;19768:34;19850:2;19842:6;19838:15;19833:2;19822:9;19818:18;19811:43;;19890:6;19885:2;19874:9;19870:18;19863:34;19933:3;19928:2;19917:9;19913:18;19906:31;19954:62;20011:3;20000:9;19996:19;19988:6;19980;19954:62;:::i;:::-;19946:70;19524:498;-1:-1:-1;;;;;;;19524:498:25:o;20833:493::-;21082:6;21074;21070:19;21059:9;21052:38;21126:3;21121:2;21110:9;21106:18;21099:31;21033:4;21147:62;21204:3;21193:9;21189:19;21181:6;21173;21147:62;:::i;:::-;-1:-1:-1;;;;;21245:31:25;;;;21240:2;21225:18;;21218:59;-1:-1:-1;21308:2:25;21293:18;21286:34;21139:70;20833:493;-1:-1:-1;;;20833:493:25:o;22912:634::-;22991:6;23044:2;23032:9;23023:7;23019:23;23015:32;23012:52;;;23060:1;23057;23050:12;23012:52;23093:9;23087:16;-1:-1:-1;;;;;23118:6:25;23115:30;23112:50;;;23158:1;23155;23148:12;23112:50;23181:22;;23234:4;23226:13;;23222:27;-1:-1:-1;23212:55:25;;23263:1;23260;23253:12;23212:55;23292:2;23286:9;23317:48;23333:31;23361:2;23333:31;:::i;23317:48::-;23388:2;23381:5;23374:17;23428:7;23423:2;23418;23414;23410:11;23406:20;23403:33;23400:53;;;23449:1;23446;23439:12;23400:53;23462:54;23513:2;23508;23501:5;23497:14;23492:2;23488;23484:11;23462:54;:::i;23551:555::-;23808:6;23800;23796:19;23785:9;23778:38;23852:3;23847:2;23836:9;23832:18;23825:31;23759:4;23879:45;23919:3;23908:9;23904:19;23896:6;23879:45;:::i;:::-;-1:-1:-1;;;;;23964:6:25;23960:31;23955:2;23944:9;23940:18;23933:59;24040:9;24032:6;24028:22;24023:2;24012:9;24008:18;24001:50;24068:32;24093:6;24085;24068:32;:::i;24111:274::-;24240:3;24278:6;24272:13;24294:53;24340:6;24335:3;24328:4;24320:6;24316:17;24294:53;:::i;:::-;24363:16;;;;;24111:274;-1:-1:-1;;24111:274:25:o;24390:716::-;24693:6;24685;24681:19;24670:9;24663:38;24737:3;24732:2;24721:9;24717:18;24710:31;24644:4;24764:45;24804:3;24793:9;24789:19;24781:6;24764:45;:::i;:::-;-1:-1:-1;;;;;24849:6:25;24845:31;24840:2;24829:9;24825:18;24818:59;24925:9;24917:6;24913:22;24908:2;24897:9;24893:18;24886:50;24959:32;24984:6;24976;24959:32;:::i;:::-;24945:46;;25040:9;25032:6;25028:22;25022:3;25011:9;25007:19;25000:51;25068:32;25093:6;25085;25068:32;:::i;:::-;25060:40;24390:716;-1:-1:-1;;;;;;;;24390:716:25:o;25472:217::-;25512:1;25538;25528:132;;25582:10;25577:3;25573:20;25570:1;25563:31;25617:4;25614:1;25607:15;25645:4;25642:1;25635:15;25528:132;-1:-1:-1;25674:9:25;;25472:217::o;25694:168::-;25734:7;25800:1;25796;25792:6;25788:14;25785:1;25782:21;25777:1;25770:9;25763:17;25759:45;25756:71;;;25807:18;;:::i;:::-;-1:-1:-1;25847:9:25;;25694:168::o;25867:128::-;25907:3;25938:1;25934:6;25931:1;25928:13;25925:39;;;25944:18;;:::i;:::-;-1:-1:-1;25980:9:25;;25867:128::o;26417:837::-;26766:6;26758;26754:19;26743:9;26736:38;26810:3;26805:2;26794:9;26790:18;26783:31;26717:4;26837:45;26877:3;26866:9;26862:19;26854:6;26837:45;:::i;:::-;26930:9;26922:6;26918:22;26913:2;26902:9;26898:18;26891:50;26964:32;26989:6;26981;26964:32;:::i;:::-;-1:-1:-1;;;;;27070:15:25;;;27065:2;27050:18;;27043:43;27123:15;;27117:3;27102:19;;27095:44;27176:22;;;27023:3;27155:19;;27148:51;26950:46;-1:-1:-1;27216:32:25;26950:46;27233:6;27216:32;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2309600","executionCost":"infinite","totalCost":"infinite"},"external":{"estimateSendTotalSupply(uint16,bool,bytes)":"infinite","estimateSendUserBalance(uint16,bool,bytes)":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getTrustedRemoteAddress(uint16)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","owner()":"2421","precrime()":"2382","renounceOwnership()":"infinite","retryMessage(uint16,bytes,uint64,bytes)":"infinite","sendTotalSupply(uint16,address,address,bytes)":"infinite","sendUserBalance(address,uint16,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMinDstGas(uint16,uint16,uint256)":"infinite","setPrecrime(address)":"27827","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","votingEscrow()":"infinite","votingEscrowRemapper()":"infinite"},"internal":{"_hasLastCheckpointExpired(uint256)":"261","_nonblockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite"}},"methodIdentifiers":{"estimateSendTotalSupply(uint16,bool,bytes)":"16334c8f","estimateSendUserBalance(uint16,bool,bytes)":"65d092d0","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","sendTotalSupply(uint16,address,address,bytes)":"416b154a","sendUserBalance(address,uint16,address,address,bytes)":"4a759489","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","votingEscrow()":"4f2bfe5b","votingEscrowRemapper()":"363bf0de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_votingEscrowRemapper\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"dstChainId\",\"type\":\"uint16\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"TotalSupplyToChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"localUser\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"remoteUser\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"userPoint\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"UserBalToChain\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendUserBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendTotalSupply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendUserBalance\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingEscrowRemapper\",\"outputs\":[{\"internalType\":\"contract IVotingEscrowRemapper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OmniVotingEscrow.sol\":\"OmniVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/OmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"./interfaces/IVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IOmniVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IVotingEscrowRemapper.sol\\\";\\nimport \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\n\\ncontract OmniVotingEscrow is NonblockingLzApp, IOmniVotingEscrow {\\n IVotingEscrow public immutable votingEscrow;\\n IVotingEscrowRemapper public immutable votingEscrowRemapper;\\n\\n // Packet types for child chains:\\n uint16 PT_USER = 0; // user balance and total supply update\\n uint16 PT_TS = 1; // total supply update\\n\\n event UserBalToChain(uint16 dstChainId, address localUser, address remoteUser, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\\n event TotalSupplyToChain(uint16 dstChainId, IVotingEscrow.Point totalSupplyPoint);\\n\\n constructor(address _lzEndpoint, address _votingEscrowRemapper) NonblockingLzApp(_lzEndpoint) {\\n require(_votingEscrowRemapper != address(0x0), \\\"OmniVotingEscrow: remapper cannot be 0x0\\\");\\n\\n votingEscrowRemapper = IVotingEscrowRemapper(_votingEscrowRemapper);\\n votingEscrow = votingEscrowRemapper.getVotingEscrow();\\n }\\n\\n function _nonblockingLzReceive(\\n uint16, /*_srcChainId*/\\n bytes memory, /*_srcAddress*/\\n uint64, /*_nonce*/\\n bytes memory /*_payload*/\\n ) internal virtual override {\\n revert(\\\"OmniVotingEscrow: cannot receive lzMsgs\\\");\\n }\\n\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory lzPayload = abi.encode(PT_USER, address(0x0), 0, IVotingEscrow.Point(0, 0, 0, 0), IVotingEscrow.Point(0, 0, 0, 0));\\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\\n }\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory lzPayload = abi.encode(PT_TS, IVotingEscrow.Point(0, 0, 0, 0));\\n return lzEndpoint.estimateFees(_dstChainId, address(this), lzPayload, _useZro, _adapterParams);\\n }\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\\n uint userEpoch = votingEscrow.user_point_epoch(_localUser);\\n IVotingEscrow.Point memory uPoint = votingEscrow.user_point_history(_localUser, userEpoch);\\n\\n uint lockedEnd = votingEscrow.locked__end(_localUser);\\n\\n // always send total supply along with a user update\\n uint totalSupplyEpoch = votingEscrow.epoch();\\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n\\n address remappedAddress = votingEscrowRemapper.getRemoteUser(_localUser, _dstChainId);\\n address remoteUser = remappedAddress != address(0x0) ? remappedAddress : _localUser;\\n\\n bytes memory lzPayload = abi.encode(PT_USER, remoteUser, lockedEnd, uPoint, tsPoint);\\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n emit UserBalToChain(_dstChainId, _localUser, remoteUser, uPoint, tsPoint);\\n }\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) public payable {\\n uint totalSupplyEpoch = votingEscrow.epoch();\\n IVotingEscrow.Point memory tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n\\n // Total supply point may only change if none has checkpointed after the current week has started.\\n // If that's the case the checkpoint is performed at this point, before bridging the total supply.\\n if (_hasLastCheckpointExpired(tsPoint.ts)) {\\n votingEscrow.checkpoint();\\n // Get updated point.\\n totalSupplyEpoch = votingEscrow.epoch();\\n tsPoint = votingEscrow.point_history(totalSupplyEpoch);\\n }\\n\\n bytes memory lzPayload = abi.encode(PT_TS, tsPoint);\\n _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n emit TotalSupplyToChain(_dstChainId, tsPoint);\\n }\\n\\n function _hasLastCheckpointExpired(uint lastCheckpointTimestamp) internal view returns (bool) {\\n // If last checkpoint rounded to weeks + one week is still behind the block timestamp, then it has expired.\\n return (lastCheckpointTimestamp / 1 weeks) * 1 weeks + 1 weeks < block.timestamp;\\n }\\n}\\n\",\"keccak256\":\"0xcfe8b67477944f8d996ce0ea08164e55da77da90c1ccea4c4021f2a64aef44d4\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":3728,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"PT_USER","offset":0,"slot":"5","type":"t_uint16"},{"astId":3731,"contract":"contracts/OmniVotingEscrow.sol:OmniVotingEscrow","label":"PT_TS","offset":2,"slot":"5","type":"t_uint16"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/OmniVotingEscrowChild.sol":{"OmniVotingEscrowChild":{"abi":[{"inputs":[{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegationHook","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"TotalSupplyFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"userPoint","type":"tuple"},{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"indexed":false,"internalType":"struct IVotingEscrow.Point","name":"totalSupplyPoint","type":"tuple"}],"name":"UserBalFromChain","type":"event"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delegationHook","outputs":[{"internalType":"contract IL2LayerZeroDelegation","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"_point","type":"tuple"}],"name":"getPointValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"locked__end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyPoint","outputs":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userPoints","outputs":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_2907":{"entryPoint":null,"id":2907,"parameterSlots":0,"returnSlots":0},"@_4169":{"entryPoint":null,"id":4169,"parameterSlots":2,"returnSlots":0},"@_494":{"entryPoint":null,"id":494,"parameterSlots":1,"returnSlots":0},"@_935":{"entryPoint":null,"id":935,"parameterSlots":1,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2995":{"entryPoint":241,"id":2995,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":321,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":350,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:912:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:25","statements":[{"nodeType":"YulAssignment","src":"84:22:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:25"},"nodeType":"YulFunctionCall","src":"93:13:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:25"}]},{"body":{"nodeType":"YulBlock","src":"169:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:25"},"nodeType":"YulFunctionCall","src":"171:12:25"},"nodeType":"YulExpressionStatement","src":"171:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:25"},"nodeType":"YulFunctionCall","src":"150:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:25"},"nodeType":"YulFunctionCall","src":"146:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:25"},"nodeType":"YulFunctionCall","src":"135:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:25"},"nodeType":"YulFunctionCall","src":"125:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:25"},"nodeType":"YulFunctionCall","src":"118:50:25"},"nodeType":"YulIf","src":"115:70:25"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:25","type":""}],"src":"14:177:25"},{"body":{"nodeType":"YulBlock","src":"294:195:25","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:25"},"nodeType":"YulFunctionCall","src":"342:12:25"},"nodeType":"YulExpressionStatement","src":"342:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:25"},"nodeType":"YulFunctionCall","src":"311:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:25"},"nodeType":"YulFunctionCall","src":"307:32:25"},"nodeType":"YulIf","src":"304:52:25"},{"nodeType":"YulAssignment","src":"365:50:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:25"},"nodeType":"YulFunctionCall","src":"375:40:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:25"}]},{"nodeType":"YulAssignment","src":"424:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:25"},"nodeType":"YulFunctionCall","src":"464:18:25"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:25"},"nodeType":"YulFunctionCall","src":"434:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:25","type":""}],"src":"196:293:25"},{"body":{"nodeType":"YulBlock","src":"668:242:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:21:25"},"nodeType":"YulExpressionStatement","src":"678:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:25"},"nodeType":"YulFunctionCall","src":"715:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:25","type":"","value":"52"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:25"},"nodeType":"YulFunctionCall","src":"708:30:25"},"nodeType":"YulExpressionStatement","src":"708:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:25"},"nodeType":"YulFunctionCall","src":"754:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f","kind":"string","nodeType":"YulLiteral","src":"774:34:25","type":"","value":"OmniVotingEscrowChild: delegatio"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:25"},"nodeType":"YulFunctionCall","src":"747:62:25"},"nodeType":"YulExpressionStatement","src":"747:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"840:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"825:3:25"},"nodeType":"YulFunctionCall","src":"825:18:25"},{"hexValue":"6e20686f6f6b2063616e6e6f7420626520307830","kind":"string","nodeType":"YulLiteral","src":"845:22:25","type":"","value":"n hook cannot be 0x0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"818:6:25"},"nodeType":"YulFunctionCall","src":"818:50:25"},"nodeType":"YulExpressionStatement","src":"818:50:25"},{"nodeType":"YulAssignment","src":"877:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"900:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"885:3:25"},"nodeType":"YulFunctionCall","src":"885:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"877:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:25","type":""}],"src":"494:416:25"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_e0b8bddfc50b301944a6c5c44165946350193540012760c24e4c1205143d2612__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 52)\n mstore(add(headStart, 64), \"OmniVotingEscrowChild: delegatio\")\n mstore(add(headStart, 96), \"n hook cannot be 0x0\")\n tail := add(headStart, 128)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c0604052600a805463ffffffff1916620100001790553480156200002357600080fd5b50604051620027e5380380620027e583398101604081905262000046916200015e565b81806200005333620000f1565b6001600160a01b03908116608052821615159050620000de5760405162461bcd60e51b815260206004820152603460248201527f4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f60448201527f6e20686f6f6b2063616e6e6f7420626520307830000000000000000000000000606482015260840160405180910390fd5b6001600160a01b031660a0525062000196565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200015957600080fd5b919050565b600080604083850312156200017257600080fd5b6200017d8362000141565b91506200018d6020840162000141565b90509250929050565b60805160a0516125f1620001f460003960008181610376015281816118e601526119d80152600081816104d20152818161066b015281816108ba0152818161094301528181610abd01528181610f27015261136901526125f16000f3fe6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea2646970667358221220570e1801cb2ac804d712ad851aeb331dab0e074f86b201032a7cf28a48777cff64736f6c634300080a0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE PUSH1 0xA DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH3 0x10000 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x27E5 CODESIZE SUB DUP1 PUSH3 0x27E5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x46 SWAP2 PUSH3 0x15E JUMP JUMPDEST DUP2 DUP1 PUSH3 0x53 CALLER PUSH3 0xF1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x80 MSTORE DUP3 AND ISZERO ISZERO SWAP1 POP PUSH3 0xDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A2064656C65676174696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20686F6F6B2063616E6E6F7420626520307830000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH3 0x196 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x159 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x17D DUP4 PUSH3 0x141 JUMP JUMPDEST SWAP2 POP PUSH3 0x18D PUSH1 0x20 DUP5 ADD PUSH3 0x141 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x25F1 PUSH3 0x1F4 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x376 ADD MSTORE DUP2 DUP2 PUSH2 0x18E6 ADD MSTORE PUSH2 0x19D8 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4D2 ADD MSTORE DUP2 DUP2 PUSH2 0x66B ADD MSTORE DUP2 DUP2 PUSH2 0x8BA ADD MSTORE DUP2 DUP2 PUSH2 0x943 ADD MSTORE DUP2 DUP2 PUSH2 0xABD ADD MSTORE DUP2 DUP2 PUSH2 0xF27 ADD MSTORE PUSH2 0x1369 ADD MSTORE PUSH2 0x25F1 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xCBED8B9C GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xF4182ACB EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xF50DDBC7 EQ PUSH2 0x5FD JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x648 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA6C3D165 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x473 JUMPI DUP1 PUSH4 0xADC63589 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x164 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x74D2495F EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x378EF708 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x208 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x1E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x97A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF1 JUMP JUMPDEST PUSH2 0x9C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x9D1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xA9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xB24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0xC5B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x370 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xC6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x1F10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F23 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x398 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x398 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xD09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x48E CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xE19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x50F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xEAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x52F CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5C JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xF9D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FCE JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x1265 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x12BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x9 SLOAD PUSH2 0x5D5 SWAP3 PUSH1 0xF DUP2 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SWAP2 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF SWAP6 DUP7 SIGNEXTEND DUP2 MSTORE SWAP4 SWAP1 SWAP5 SIGNEXTEND PUSH1 0x20 DUP5 ADD MSTORE SWAP3 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D5 PUSH2 0x618 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP4 DIV SWAP1 SIGNEXTEND SWAP2 SWAP1 DUP5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x200F JUMP JUMPDEST PUSH2 0x1338 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x703 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x72F SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x77C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x751 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x77C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x75F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x797 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x7BF JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x7B5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x890 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x13E9 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x92A PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x8ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x7 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0x9BB SWAP1 PUSH2 0x154D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CB DUP3 PUSH2 0x154D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x9F2 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA1E SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA6B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA40 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA6B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA4E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA82 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAA6 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xAF6 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x890 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xBF8 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x9CB SWAP1 PUSH2 0x154D JUMP JUMPDEST PUSH2 0xC63 PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xC6D PUSH1 0x0 PUSH2 0x1646 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xC88 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCB4 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD2C SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD58 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD88 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xA97 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0xE11 SWAP2 SWAP1 PUSH2 0x2108 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xE21 PUSH2 0x14F3 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE36 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x211F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0xE6B SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1A69 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xEB4 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xF10 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0xF64 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2145 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF92 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFC0 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x1040 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1051 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x10B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10D3 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x116B SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x11A2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x217E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11BB PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1203 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x126D PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x128B SWAP1 DUP4 DUP4 PUSH2 0x1AED JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x12C7 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x132C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1646 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x13E0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21B9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x144C GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1411 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x17A3 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0xBF8 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1486 SWAP2 SWAP1 PUSH2 0x2264 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x14E3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x1563 SWAP1 TIMESTAMP PUSH2 0x2108 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1572 SWAP2 SWAP1 PUSH2 0x22DE JUMP JUMPDEST DUP3 MLOAD PUSH2 0x157E SWAP2 SWAP1 PUSH2 0x237C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND SLT PUSH2 0x159A JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x159D JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xA SLOAD PUSH2 0xFFFF DUP1 DUP4 AND SWAP2 AND EQ ISZERO PUSH2 0x15CA JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x91B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0xFFFF DUP3 DUP2 AND PUSH3 0x10000 SWAP1 SWAP3 DIV AND EQ ISZERO PUSH2 0x15EB JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x1978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A20756E6B6E6F776E2070 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x61636B65742074797065 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x16A4 DUP2 PUSH1 0x1F PUSH2 0x23CC JUMP JUMPDEST LT ISZERO PUSH2 0x16E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x16ED DUP3 DUP5 PUSH2 0x23CC JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1750 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x179A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1789 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1771 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17C8 JUMPI PUSH2 0x17C8 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17F2 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x1814 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1847 SWAP2 SWAP1 PUSH2 0x245D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 SWAP1 SSTORE PUSH1 0x6 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP8 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP2 DUP4 AND DUP3 MUL OR DUP4 SSTORE DUP9 DUP6 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE PUSH1 0x60 DUP1 DUP11 ADD MLOAD PUSH1 0x2 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE DUP8 MLOAD SWAP4 DUP9 ADD MLOAD SWAP4 DUP3 AND SWAP4 SWAP1 SWAP2 AND MUL SWAP2 SWAP1 SWAP2 OR PUSH1 0x7 SSTORE DUP5 DUP3 ADD MLOAD PUSH1 0x8 SSTORE DUP5 ADD MLOAD PUSH1 0x9 SSTORE MLOAD PUSH4 0x6F8985FF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP PUSH32 0x0 AND SWAP2 POP PUSH4 0xDF130BFE SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0xAE0E70D8538C5776F9975183D965B1722A0E8FA0256C8301CB707F64A9821F83 DUP7 DUP6 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x14E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x198E SWAP2 SWAP1 PUSH2 0x2546 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP2 AND OR PUSH1 0x7 SSTORE PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x8 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x9 SSTORE DUP1 MLOAD PUSH4 0x96345FB5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 POP PUSH4 0x96345FB5 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9048DA34D2DAC99755410B6E83E1EAAB692909FF964F5BC920756AB49C73DF9A DUP4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP3 SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1A75 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A97 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1AB0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1AC2 JUMP JUMPDEST POP PUSH2 0x1AE9 SWAP3 SWAP2 POP PUSH2 0x1B61 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1AF9 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1B34 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1B46 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1AE9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1B62 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1BAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1BC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x1C0E DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1C2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C36 DUP11 DUP4 DUP12 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x1C4A PUSH1 0x40 DUP11 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1C60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6D DUP10 DUP3 DUP11 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1CDA JUMPI PUSH2 0x1CDA PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xF SIGNEXTEND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1D25 JUMPI PUSH2 0x1D25 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD PUSH2 0x1D33 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1D43 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 SWAP3 DUP4 ADD CALLDATALOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1D7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1D85 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1DA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DAC DUP7 DUP3 DUP8 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1DD2 JUMPI PUSH2 0x1DD2 PUSH2 0x1C9C JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1E00 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1E1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x1E2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E3F PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST PUSH2 0x1CB2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1E54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x1E79 PUSH1 0x40 DUP6 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ECF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1EDE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EFC DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1F41 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1F51 DUP2 PUSH2 0x1B76 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x1F7F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x1F8F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1FB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FBD DUP9 DUP3 DUP10 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1FE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1FEE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1FFE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2025 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2030 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2040 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2050 DUP2 PUSH2 0x1E82 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2074 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x13E0 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x211A JUMPI PUSH2 0x211A PUSH2 0x20F2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2173 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x219C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x20AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x21E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x21F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2200 PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E0 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2243 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2173 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2276 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x229D PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x22BE DUP2 DUP7 PUSH2 0x1EE4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x22D2 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB PUSH1 0x0 DUP3 SGT PUSH1 0x0 DUP5 SGT DUP4 DUP4 DIV DUP6 GT DUP3 DUP3 AND AND ISZERO PUSH2 0x230E JUMPI PUSH2 0x230E PUSH2 0x20F2 JUMP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x0 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x233A JUMPI PUSH2 0x233A PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x0 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x2356 JUMPI PUSH2 0x2356 PUSH2 0x20F2 JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x236C JUMPI PUSH2 0x236C PUSH2 0x20F2 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 SLT DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT ADD DUP4 SLT DUP2 ISZERO AND ISZERO PUSH2 0x23A7 JUMPI PUSH2 0x23A7 PUSH2 0x20F2 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x23C2 JUMPI PUSH2 0x23C2 PUSH2 0x20F2 JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x23DF JUMPI PUSH2 0x23DF PUSH2 0x20F2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2418 JUMPI PUSH2 0x2418 PUSH2 0x1C9C JUMP JUMPDEST DUP1 PUSH1 0x40 MSTORE POP DUP1 SWAP2 POP DUP3 MLOAD PUSH2 0x242B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x243B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x160 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH2 0x2481 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD SWAP1 SWAP6 POP PUSH2 0x2492 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x24A9 DUP8 PUSH1 0x60 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24B8 DUP8 PUSH1 0xE0 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x140 DUP2 ADD PUSH2 0x2513 PUSH1 0x40 DUP4 ADD DUP6 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST DUP3 MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SIGNEXTEND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x13E0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xA0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x2564 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH2 0x2573 DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0xE XOR ADD 0xCB 0x2A 0xC8 DIV 0xD7 SLT 0xAD DUP6 BYTE 0xEB CALLER SAR 0xAB 0xE SMOD 0x4F DUP7 0xB2 ADD SUB 0x2A PUSH29 0xF28A48777CFF64736F6C634300080A0033000000000000000000000000 ","sourceMap":"255:3271:15:-:0;;;571:18;;;-1:-1:-1;;635:16:15;;;;;962:267;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1037:11;;936:32:9;719:10:13;936:18:9;:32::i;:::-;-1:-1:-1;;;;;980:42:4;;;;;1068:31:15;::::1;::::0;::::1;::::0;-1:-1:-1;1060:96:15::1;;;::::0;-1:-1:-1;;;1060:96:15;;696:2:25;1060:96:15::1;::::0;::::1;678:21:25::0;735:2;715:18;;;708:30;774:34;754:18;;;747:62;845:22;825:18;;;818:50;885:19;;1060:96:15::1;;;;;;;;-1:-1:-1::0;;;;;1166:56:15::1;;::::0;-1:-1:-1;255:3271:15;;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:177:25:-;93:13;;-1:-1:-1;;;;;135:31:25;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:416::-;255:3271:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_blockingLzReceive_1026":{"entryPoint":5097,"id":1026,"parameterSlots":4,"returnSlots":0},"@_checkOwner_2938":{"entryPoint":5363,"id":2938,"parameterSlots":0,"returnSlots":0},"@_getPointValue_4398":{"entryPoint":5453,"id":4398,"parameterSlots":1,"returnSlots":1},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_nonblockingLzReceive_4211":{"entryPoint":5541,"id":4211,"parameterSlots":4,"returnSlots":0},"@_transferOwnership_2995":{"entryPoint":5702,"id":2995,"parameterSlots":1,"returnSlots":0},"@_updateTotalSupplyFromChain_4311":{"entryPoint":6520,"id":4311,"parameterSlots":2,"returnSlots":0},"@_updateUserAndTotalSupplyFromChain_4274":{"entryPoint":6189,"id":4274,"parameterSlots":2,"returnSlots":0},"@balanceOf_4325":{"entryPoint":3072,"id":4325,"parameterSlots":1,"returnSlots":1},"@delegationHook_4123":{"entryPoint":null,"id":4123,"parameterSlots":0,"returnSlots":0},"@excessivelySafeCall_2826":{"entryPoint":6051,"id":2826,"parameterSlots":4,"returnSlots":2},"@failedMessages_943":{"entryPoint":null,"id":943,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_763":{"entryPoint":2718,"id":763,"parameterSlots":3,"returnSlots":0},"@getConfig_691":{"entryPoint":4920,"id":691,"parameterSlots":4,"returnSlots":1},"@getPointValue_4348":{"entryPoint":2496,"id":4348,"parameterSlots":1,"returnSlots":1},"@getTrustedRemoteAddress_843":{"entryPoint":3337,"id":843,"parameterSlots":1,"returnSlots":1},"@isTrustedRemote_916":{"entryPoint":2513,"id":916,"parameterSlots":3,"returnSlots":1},"@locked__end_4106":{"entryPoint":null,"id":4106,"parameterSlots":0,"returnSlots":0},"@lzEndpoint_446":{"entryPoint":null,"id":446,"parameterSlots":0,"returnSlots":0},"@lzReceive_553":{"entryPoint":1640,"id":553,"parameterSlots":6,"returnSlots":0},"@minDstGasLookup_456":{"entryPoint":null,"id":456,"parameterSlots":0,"returnSlots":0},"@nonblockingLzReceive_1056":{"entryPoint":2852,"id":1056,"parameterSlots":6,"returnSlots":0},"@owner_2924":{"entryPoint":null,"id":2924,"parameterSlots":0,"returnSlots":1},"@precrime_458":{"entryPoint":null,"id":458,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_2952":{"entryPoint":3163,"id":2952,"parameterSlots":0,"returnSlots":0},"@retryMessage_1135":{"entryPoint":3997,"id":1135,"parameterSlots":6,"returnSlots":0},"@setConfig_715":{"entryPoint":3848,"id":715,"parameterSlots":5,"returnSlots":0},"@setMinDstGas_892":{"entryPoint":4531,"id":892,"parameterSlots":3,"returnSlots":0},"@setPrecrime_859":{"entryPoint":3756,"id":859,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_745":{"entryPoint":2338,"id":745,"parameterSlots":1,"returnSlots":0},"@setSendVersion_730":{"entryPoint":2201,"id":730,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_812":{"entryPoint":3609,"id":812,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_784":{"entryPoint":4709,"id":784,"parameterSlots":3,"returnSlots":0},"@slice_2517":{"entryPoint":5782,"id":2517,"parameterSlots":3,"returnSlots":1},"@totalSupplyPoint_4114":{"entryPoint":null,"id":4114,"parameterSlots":0,"returnSlots":0},"@totalSupply_4335":{"entryPoint":2426,"id":4335,"parameterSlots":0,"returnSlots":1},"@transferOwnership_2975":{"entryPoint":4799,"id":2975,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_450":{"entryPoint":3183,"id":450,"parameterSlots":0,"returnSlots":0},"@userPoints_4111":{"entryPoint":null,"id":4111,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes_calldata":{"entryPoint":7046,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_struct_Point_fromMemory":{"entryPoint":9188,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":7831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":8633,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr":{"entryPoint":7409,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16":{"entryPoint":7295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":9309,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":7525,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":7146,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":7648,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory":{"entryPoint":9542,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":7971,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":8207,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":8142,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":8028,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint64":{"entryPoint":7118,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":7908,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":8363,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_Point":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8347,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":8479,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":7952,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":9412,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8404,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":8574,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8742,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8832,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed":{"entryPoint":9596,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8517,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":7346,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":7609,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":9164,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_int128":{"entryPoint":8926,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_int128":{"entryPoint":9084,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8456,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":7860,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":8288,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":8434,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7324,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":7810,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_int128":{"entryPoint":7394,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint16":{"entryPoint":7030,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24690:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:73:25","statements":[{"body":{"nodeType":"YulBlock","src":"109:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"118:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"121:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"111:6:25"},"nodeType":"YulFunctionCall","src":"111:12:25"},"nodeType":"YulExpressionStatement","src":"111:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"99:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:25"},"nodeType":"YulFunctionCall","src":"88:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:25"},"nodeType":"YulFunctionCall","src":"78:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:25"},"nodeType":"YulFunctionCall","src":"71:37:25"},"nodeType":"YulIf","src":"68:57:25"}]},"name":"validator_revert_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:25","type":""}],"src":"14:117:25"},{"body":{"nodeType":"YulBlock","src":"208:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"259:6:25"},"nodeType":"YulFunctionCall","src":"259:12:25"},"nodeType":"YulExpressionStatement","src":"259:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"236:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"232:3:25"},"nodeType":"YulFunctionCall","src":"232:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"251:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"228:3:25"},"nodeType":"YulFunctionCall","src":"228:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"221:6:25"},"nodeType":"YulFunctionCall","src":"221:35:25"},"nodeType":"YulIf","src":"218:55:25"},{"nodeType":"YulAssignment","src":"282:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"305:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"292:12:25"},"nodeType":"YulFunctionCall","src":"292:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"282:6:25"}]},{"body":{"nodeType":"YulBlock","src":"355:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"364:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"367:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"357:6:25"},"nodeType":"YulFunctionCall","src":"357:12:25"},"nodeType":"YulExpressionStatement","src":"357:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"327:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"335:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"324:2:25"},"nodeType":"YulFunctionCall","src":"324:30:25"},"nodeType":"YulIf","src":"321:50:25"},{"nodeType":"YulAssignment","src":"380:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"396:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"404:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:25"},"nodeType":"YulFunctionCall","src":"392:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"380:8:25"}]},{"body":{"nodeType":"YulBlock","src":"461:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"473:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"463:6:25"},"nodeType":"YulFunctionCall","src":"463:12:25"},"nodeType":"YulExpressionStatement","src":"463:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"432:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"428:3:25"},"nodeType":"YulFunctionCall","src":"428:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"449:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"424:3:25"},"nodeType":"YulFunctionCall","src":"424:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"456:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"421:2:25"},"nodeType":"YulFunctionCall","src":"421:39:25"},"nodeType":"YulIf","src":"418:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"171:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"179:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"187:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"197:6:25","type":""}],"src":"136:347:25"},{"body":{"nodeType":"YulBlock","src":"536:123:25","statements":[{"nodeType":"YulAssignment","src":"546:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"568:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"555:12:25"},"nodeType":"YulFunctionCall","src":"555:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"546:5:25"}]},{"body":{"nodeType":"YulBlock","src":"637:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"646:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"649:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"639:6:25"},"nodeType":"YulFunctionCall","src":"639:12:25"},"nodeType":"YulExpressionStatement","src":"639:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"597:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"608:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"615:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"604:3:25"},"nodeType":"YulFunctionCall","src":"604:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"594:2:25"},"nodeType":"YulFunctionCall","src":"594:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"587:6:25"},"nodeType":"YulFunctionCall","src":"587:49:25"},"nodeType":"YulIf","src":"584:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"515:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"526:5:25","type":""}],"src":"488:171:25"},{"body":{"nodeType":"YulBlock","src":"821:766:25","statements":[{"body":{"nodeType":"YulBlock","src":"868:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"877:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"880:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"870:6:25"},"nodeType":"YulFunctionCall","src":"870:12:25"},"nodeType":"YulExpressionStatement","src":"870:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"842:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"851:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"838:3:25"},"nodeType":"YulFunctionCall","src":"838:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"863:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"834:3:25"},"nodeType":"YulFunctionCall","src":"834:33:25"},"nodeType":"YulIf","src":"831:53:25"},{"nodeType":"YulVariableDeclaration","src":"893:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"919:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"906:12:25"},"nodeType":"YulFunctionCall","src":"906:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"897:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"962:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"938:23:25"},"nodeType":"YulFunctionCall","src":"938:30:25"},"nodeType":"YulExpressionStatement","src":"938:30:25"},{"nodeType":"YulAssignment","src":"977:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"987:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"977:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1001:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1032:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1043:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1028:3:25"},"nodeType":"YulFunctionCall","src":"1028:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1015:12:25"},"nodeType":"YulFunctionCall","src":"1015:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1005:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1056:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"1066:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1060:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1111:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1120:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1123:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1113:6:25"},"nodeType":"YulFunctionCall","src":"1113:12:25"},"nodeType":"YulExpressionStatement","src":"1113:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1099:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1107:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1096:2:25"},"nodeType":"YulFunctionCall","src":"1096:14:25"},"nodeType":"YulIf","src":"1093:34:25"},{"nodeType":"YulVariableDeclaration","src":"1136:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1192:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1203:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1188:3:25"},"nodeType":"YulFunctionCall","src":"1188:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1212:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1162:25:25"},"nodeType":"YulFunctionCall","src":"1162:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1140:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1150:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1229:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1239:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1229:6:25"}]},{"nodeType":"YulAssignment","src":"1256:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1266:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1256:6:25"}]},{"nodeType":"YulAssignment","src":"1283:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1315:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1326:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1311:3:25"},"nodeType":"YulFunctionCall","src":"1311:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"1293:17:25"},"nodeType":"YulFunctionCall","src":"1293:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1283:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1339:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1372:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1383:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1368:3:25"},"nodeType":"YulFunctionCall","src":"1368:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1355:12:25"},"nodeType":"YulFunctionCall","src":"1355:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1343:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1416:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1425:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1428:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1418:6:25"},"nodeType":"YulFunctionCall","src":"1418:12:25"},"nodeType":"YulExpressionStatement","src":"1418:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1402:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1412:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1399:2:25"},"nodeType":"YulFunctionCall","src":"1399:16:25"},"nodeType":"YulIf","src":"1396:36:25"},{"nodeType":"YulVariableDeclaration","src":"1441:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1497:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1508:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1519:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1467:25:25"},"nodeType":"YulFunctionCall","src":"1467:60:25"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"1445:8:25","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"1455:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1536:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"1546:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1536:6:25"}]},{"nodeType":"YulAssignment","src":"1563:18:25","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"1573:8:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"747:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"758:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"770:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"778:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"786:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"794:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"802:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"810:6:25","type":""}],"src":"664:923:25"},{"body":{"nodeType":"YulBlock","src":"1661:176:25","statements":[{"body":{"nodeType":"YulBlock","src":"1707:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1719:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1709:6:25"},"nodeType":"YulFunctionCall","src":"1709:12:25"},"nodeType":"YulExpressionStatement","src":"1709:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1682:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1691:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1703:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1674:3:25"},"nodeType":"YulFunctionCall","src":"1674:32:25"},"nodeType":"YulIf","src":"1671:52:25"},{"nodeType":"YulVariableDeclaration","src":"1732:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1758:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1745:12:25"},"nodeType":"YulFunctionCall","src":"1745:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1736:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1801:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"1777:23:25"},"nodeType":"YulFunctionCall","src":"1777:30:25"},"nodeType":"YulExpressionStatement","src":"1777:30:25"},{"nodeType":"YulAssignment","src":"1816:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"1826:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1816:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1627:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1638:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1650:6:25","type":""}],"src":"1592:245:25"},{"body":{"nodeType":"YulBlock","src":"1943:76:25","statements":[{"nodeType":"YulAssignment","src":"1953:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1965:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1976:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1961:3:25"},"nodeType":"YulFunctionCall","src":"1961:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1953:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1995:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2006:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1988:6:25"},"nodeType":"YulFunctionCall","src":"1988:25:25"},"nodeType":"YulExpressionStatement","src":"1988:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1912:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1923:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1934:4:25","type":""}],"src":"1842:177:25"},{"body":{"nodeType":"YulBlock","src":"2056:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2073:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2080:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2085:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2076:3:25"},"nodeType":"YulFunctionCall","src":"2076:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2066:6:25"},"nodeType":"YulFunctionCall","src":"2066:31:25"},"nodeType":"YulExpressionStatement","src":"2066:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2113:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2116:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2106:6:25"},"nodeType":"YulFunctionCall","src":"2106:15:25"},"nodeType":"YulExpressionStatement","src":"2106:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2137:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2140:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2130:6:25"},"nodeType":"YulFunctionCall","src":"2130:15:25"},"nodeType":"YulExpressionStatement","src":"2130:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2024:127:25"},{"body":{"nodeType":"YulBlock","src":"2201:230:25","statements":[{"nodeType":"YulAssignment","src":"2211:19:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2227:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2221:5:25"},"nodeType":"YulFunctionCall","src":"2221:9:25"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2211:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2239:58:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2261:6:25"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2277:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2283:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2273:3:25"},"nodeType":"YulFunctionCall","src":"2273:13:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2292:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2288:3:25"},"nodeType":"YulFunctionCall","src":"2288:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2269:3:25"},"nodeType":"YulFunctionCall","src":"2269:27:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2257:3:25"},"nodeType":"YulFunctionCall","src":"2257:40:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2243:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2372:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2374:16:25"},"nodeType":"YulFunctionCall","src":"2374:18:25"},"nodeType":"YulExpressionStatement","src":"2374:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2315:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"2327:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2312:2:25"},"nodeType":"YulFunctionCall","src":"2312:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2351:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2363:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2348:2:25"},"nodeType":"YulFunctionCall","src":"2348:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2309:2:25"},"nodeType":"YulFunctionCall","src":"2309:62:25"},"nodeType":"YulIf","src":"2306:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2410:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2414:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2403:6:25"},"nodeType":"YulFunctionCall","src":"2403:22:25"},"nodeType":"YulExpressionStatement","src":"2403:22:25"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"2181:4:25","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2190:6:25","type":""}],"src":"2156:275:25"},{"body":{"nodeType":"YulBlock","src":"2480:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"2534:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2543:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2546:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2536:6:25"},"nodeType":"YulFunctionCall","src":"2536:12:25"},"nodeType":"YulExpressionStatement","src":"2536:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2503:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2521:2:25","type":"","value":"15"},{"name":"value","nodeType":"YulIdentifier","src":"2525:5:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"2510:10:25"},"nodeType":"YulFunctionCall","src":"2510:21:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2500:2:25"},"nodeType":"YulFunctionCall","src":"2500:32:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2493:6:25"},"nodeType":"YulFunctionCall","src":"2493:40:25"},"nodeType":"YulIf","src":"2490:60:25"}]},"name":"validator_revert_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2469:5:25","type":""}],"src":"2436:120:25"},{"body":{"nodeType":"YulBlock","src":"2654:681:25","statements":[{"body":{"nodeType":"YulBlock","src":"2701:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2710:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2713:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2703:6:25"},"nodeType":"YulFunctionCall","src":"2703:12:25"},"nodeType":"YulExpressionStatement","src":"2703:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2675:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2684:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2671:3:25"},"nodeType":"YulFunctionCall","src":"2671:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2667:3:25"},"nodeType":"YulFunctionCall","src":"2667:33:25"},"nodeType":"YulIf","src":"2664:53:25"},{"nodeType":"YulVariableDeclaration","src":"2726:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2746:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2740:5:25"},"nodeType":"YulFunctionCall","src":"2740:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2730:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2758:34:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2780:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2788:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2776:3:25"},"nodeType":"YulFunctionCall","src":"2776:16:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2762:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2867:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2869:16:25"},"nodeType":"YulFunctionCall","src":"2869:18:25"},"nodeType":"YulExpressionStatement","src":"2869:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2810:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"2822:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2807:2:25"},"nodeType":"YulFunctionCall","src":"2807:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2846:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2858:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2843:2:25"},"nodeType":"YulFunctionCall","src":"2843:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2804:2:25"},"nodeType":"YulFunctionCall","src":"2804:62:25"},"nodeType":"YulIf","src":"2801:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2905:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2909:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2898:6:25"},"nodeType":"YulFunctionCall","src":"2898:22:25"},"nodeType":"YulExpressionStatement","src":"2898:22:25"},{"nodeType":"YulVariableDeclaration","src":"2929:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2955:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2942:12:25"},"nodeType":"YulFunctionCall","src":"2942:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2933:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2998:5:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"2974:23:25"},"nodeType":"YulFunctionCall","src":"2974:30:25"},"nodeType":"YulExpressionStatement","src":"2974:30:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3020:6:25"},{"name":"value","nodeType":"YulIdentifier","src":"3028:5:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3013:6:25"},"nodeType":"YulFunctionCall","src":"3013:21:25"},"nodeType":"YulExpressionStatement","src":"3013:21:25"},{"nodeType":"YulVariableDeclaration","src":"3043:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3075:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3086:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3071:3:25"},"nodeType":"YulFunctionCall","src":"3071:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3058:12:25"},"nodeType":"YulFunctionCall","src":"3058:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3047:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3123:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"3099:23:25"},"nodeType":"YulFunctionCall","src":"3099:32:25"},"nodeType":"YulExpressionStatement","src":"3099:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3151:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3159:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:25"},"nodeType":"YulFunctionCall","src":"3147:15:25"},{"name":"value_1","nodeType":"YulIdentifier","src":"3164:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:25"},"nodeType":"YulFunctionCall","src":"3140:32:25"},"nodeType":"YulExpressionStatement","src":"3140:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3192:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3188:3:25"},"nodeType":"YulFunctionCall","src":"3188:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3222:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3233:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3218:3:25"},"nodeType":"YulFunctionCall","src":"3218:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3205:12:25"},"nodeType":"YulFunctionCall","src":"3205:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3181:6:25"},"nodeType":"YulFunctionCall","src":"3181:57:25"},"nodeType":"YulExpressionStatement","src":"3181:57:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3258:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3266:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3254:3:25"},"nodeType":"YulFunctionCall","src":"3254:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3288:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3299:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3284:3:25"},"nodeType":"YulFunctionCall","src":"3284:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3271:12:25"},"nodeType":"YulFunctionCall","src":"3271:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3247:6:25"},"nodeType":"YulFunctionCall","src":"3247:57:25"},"nodeType":"YulExpressionStatement","src":"3247:57:25"},{"nodeType":"YulAssignment","src":"3313:16:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3323:6:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3313:6:25"}]}]},"name":"abi_decode_tuple_t_struct$_Point_$4477_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2620:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2631:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2643:6:25","type":""}],"src":"2561:774:25"},{"body":{"nodeType":"YulBlock","src":"3445:437:25","statements":[{"body":{"nodeType":"YulBlock","src":"3491:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3500:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3503:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3493:6:25"},"nodeType":"YulFunctionCall","src":"3493:12:25"},"nodeType":"YulExpressionStatement","src":"3493:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3466:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3475:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3462:3:25"},"nodeType":"YulFunctionCall","src":"3462:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3487:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3458:3:25"},"nodeType":"YulFunctionCall","src":"3458:32:25"},"nodeType":"YulIf","src":"3455:52:25"},{"nodeType":"YulVariableDeclaration","src":"3516:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3529:12:25"},"nodeType":"YulFunctionCall","src":"3529:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3520:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3585:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"3561:23:25"},"nodeType":"YulFunctionCall","src":"3561:30:25"},"nodeType":"YulExpressionStatement","src":"3561:30:25"},{"nodeType":"YulAssignment","src":"3600:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"3610:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3600:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3624:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3655:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3666:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3651:3:25"},"nodeType":"YulFunctionCall","src":"3651:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3638:12:25"},"nodeType":"YulFunctionCall","src":"3638:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3628:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3713:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3722:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3725:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3715:6:25"},"nodeType":"YulFunctionCall","src":"3715:12:25"},"nodeType":"YulExpressionStatement","src":"3715:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3693:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3682:2:25"},"nodeType":"YulFunctionCall","src":"3682:30:25"},"nodeType":"YulIf","src":"3679:50:25"},{"nodeType":"YulVariableDeclaration","src":"3738:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3794:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3805:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3790:3:25"},"nodeType":"YulFunctionCall","src":"3790:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3814:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3764:25:25"},"nodeType":"YulFunctionCall","src":"3764:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"3742:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"3752:8:25","type":""}]},{"nodeType":"YulAssignment","src":"3831:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3841:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3831:6:25"}]},{"nodeType":"YulAssignment","src":"3858:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3868:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3858:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3395:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3406:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3418:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3426:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3434:6:25","type":""}],"src":"3340:542:25"},{"body":{"nodeType":"YulBlock","src":"3982:92:25","statements":[{"nodeType":"YulAssignment","src":"3992:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4004:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4015:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3992:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4034:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4059:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4052:6:25"},"nodeType":"YulFunctionCall","src":"4052:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4027:6:25"},"nodeType":"YulFunctionCall","src":"4027:41:25"},"nodeType":"YulExpressionStatement","src":"4027:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3951:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3962:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3973:4:25","type":""}],"src":"3887:187:25"},{"body":{"nodeType":"YulBlock","src":"4136:129:25","statements":[{"body":{"nodeType":"YulBlock","src":"4180:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4182:16:25"},"nodeType":"YulFunctionCall","src":"4182:18:25"},"nodeType":"YulExpressionStatement","src":"4182:18:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4152:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4160:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4149:2:25"},"nodeType":"YulFunctionCall","src":"4149:30:25"},"nodeType":"YulIf","src":"4146:56:25"},{"nodeType":"YulAssignment","src":"4211:48:25","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4231:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4239:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4227:3:25"},"nodeType":"YulFunctionCall","src":"4227:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4223:3:25"},"nodeType":"YulFunctionCall","src":"4223:29:25"},{"kind":"number","nodeType":"YulLiteral","src":"4254:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4219:3:25"},"nodeType":"YulFunctionCall","src":"4219:40:25"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"4211:4:25"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"4116:6:25","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"4127:4:25","type":""}],"src":"4079:186:25"},{"body":{"nodeType":"YulBlock","src":"4381:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"4427:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4436:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4439:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4429:6:25"},"nodeType":"YulFunctionCall","src":"4429:12:25"},"nodeType":"YulExpressionStatement","src":"4429:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4402:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4411:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4398:3:25"},"nodeType":"YulFunctionCall","src":"4398:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4423:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4394:3:25"},"nodeType":"YulFunctionCall","src":"4394:32:25"},"nodeType":"YulIf","src":"4391:52:25"},{"nodeType":"YulVariableDeclaration","src":"4452:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4478:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4465:12:25"},"nodeType":"YulFunctionCall","src":"4465:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4456:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4521:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"4497:23:25"},"nodeType":"YulFunctionCall","src":"4497:30:25"},"nodeType":"YulExpressionStatement","src":"4497:30:25"},{"nodeType":"YulAssignment","src":"4536:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"4546:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4536:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"4560:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4591:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4602:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4587:3:25"},"nodeType":"YulFunctionCall","src":"4587:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4574:12:25"},"nodeType":"YulFunctionCall","src":"4574:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4564:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4649:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4658:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4661:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4651:6:25"},"nodeType":"YulFunctionCall","src":"4651:12:25"},"nodeType":"YulExpressionStatement","src":"4651:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4621:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4629:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4618:2:25"},"nodeType":"YulFunctionCall","src":"4618:30:25"},"nodeType":"YulIf","src":"4615:50:25"},{"nodeType":"YulVariableDeclaration","src":"4674:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"4699:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:25"},"nodeType":"YulFunctionCall","src":"4684:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4678:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"4754:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4763:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4766:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4756:6:25"},"nodeType":"YulFunctionCall","src":"4756:12:25"},"nodeType":"YulExpressionStatement","src":"4756:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4733:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"4737:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4729:3:25"},"nodeType":"YulFunctionCall","src":"4729:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4744:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4725:3:25"},"nodeType":"YulFunctionCall","src":"4725:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4718:6:25"},"nodeType":"YulFunctionCall","src":"4718:35:25"},"nodeType":"YulIf","src":"4715:55:25"},{"nodeType":"YulVariableDeclaration","src":"4779:26:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4802:2:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4789:12:25"},"nodeType":"YulFunctionCall","src":"4789:16:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4783:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4814:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4871:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"4843:27:25"},"nodeType":"YulFunctionCall","src":"4843:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4827:15:25"},"nodeType":"YulFunctionCall","src":"4827:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"4818:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4891:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"4898:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4884:6:25"},"nodeType":"YulFunctionCall","src":"4884:17:25"},"nodeType":"YulExpressionStatement","src":"4884:17:25"},{"body":{"nodeType":"YulBlock","src":"4947:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4956:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4959:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4949:6:25"},"nodeType":"YulFunctionCall","src":"4949:12:25"},"nodeType":"YulExpressionStatement","src":"4949:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4924:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"4928:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4920:3:25"},"nodeType":"YulFunctionCall","src":"4920:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4933:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4916:3:25"},"nodeType":"YulFunctionCall","src":"4916:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4938:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4913:2:25"},"nodeType":"YulFunctionCall","src":"4913:33:25"},"nodeType":"YulIf","src":"4910:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4989:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"4996:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4985:3:25"},"nodeType":"YulFunctionCall","src":"4985:14:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5005:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"5009:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5001:3:25"},"nodeType":"YulFunctionCall","src":"5001:11:25"},{"name":"_2","nodeType":"YulIdentifier","src":"5014:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4972:12:25"},"nodeType":"YulFunctionCall","src":"4972:45:25"},"nodeType":"YulExpressionStatement","src":"4972:45:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5041:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"5048:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5037:3:25"},"nodeType":"YulFunctionCall","src":"5037:14:25"},{"kind":"number","nodeType":"YulLiteral","src":"5053:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5033:3:25"},"nodeType":"YulFunctionCall","src":"5033:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5058:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5026:6:25"},"nodeType":"YulFunctionCall","src":"5026:34:25"},"nodeType":"YulExpressionStatement","src":"5026:34:25"},{"nodeType":"YulAssignment","src":"5069:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"5079:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5069:6:25"}]},{"nodeType":"YulAssignment","src":"5093:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5136:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5121:3:25"},"nodeType":"YulFunctionCall","src":"5121:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5103:17:25"},"nodeType":"YulFunctionCall","src":"5103:37:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5093:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4331:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4342:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4354:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4362:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4370:6:25","type":""}],"src":"4270:876:25"},{"body":{"nodeType":"YulBlock","src":"5252:76:25","statements":[{"nodeType":"YulAssignment","src":"5262:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5274:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5285:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5270:3:25"},"nodeType":"YulFunctionCall","src":"5270:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5262:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5304:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"5315:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5297:6:25"},"nodeType":"YulFunctionCall","src":"5297:25:25"},"nodeType":"YulExpressionStatement","src":"5297:25:25"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5221:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5232:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5243:4:25","type":""}],"src":"5151:177:25"},{"body":{"nodeType":"YulBlock","src":"5378:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"5442:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5451:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5454:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5444:6:25"},"nodeType":"YulFunctionCall","src":"5444:12:25"},"nodeType":"YulExpressionStatement","src":"5444:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5401:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5412:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5427:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5432:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5423:3:25"},"nodeType":"YulFunctionCall","src":"5423:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"5436:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5419:3:25"},"nodeType":"YulFunctionCall","src":"5419:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5408:3:25"},"nodeType":"YulFunctionCall","src":"5408:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5398:2:25"},"nodeType":"YulFunctionCall","src":"5398:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5391:6:25"},"nodeType":"YulFunctionCall","src":"5391:50:25"},"nodeType":"YulIf","src":"5388:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5367:5:25","type":""}],"src":"5333:131:25"},{"body":{"nodeType":"YulBlock","src":"5539:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"5585:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5594:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5597:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5587:6:25"},"nodeType":"YulFunctionCall","src":"5587:12:25"},"nodeType":"YulExpressionStatement","src":"5587:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5560:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5569:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5556:3:25"},"nodeType":"YulFunctionCall","src":"5556:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5581:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5552:3:25"},"nodeType":"YulFunctionCall","src":"5552:32:25"},"nodeType":"YulIf","src":"5549:52:25"},{"nodeType":"YulVariableDeclaration","src":"5610:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5636:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5623:12:25"},"nodeType":"YulFunctionCall","src":"5623:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5614:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5680:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5655:24:25"},"nodeType":"YulFunctionCall","src":"5655:31:25"},"nodeType":"YulExpressionStatement","src":"5655:31:25"},{"nodeType":"YulAssignment","src":"5695:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"5705:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5695:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5505:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5516:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5528:6:25","type":""}],"src":"5469:247:25"},{"body":{"nodeType":"YulBlock","src":"5853:102:25","statements":[{"nodeType":"YulAssignment","src":"5863:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5875:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5886:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5871:3:25"},"nodeType":"YulFunctionCall","src":"5871:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5863:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5905:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5920:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5936:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5941:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5932:3:25"},"nodeType":"YulFunctionCall","src":"5932:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"5945:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5928:3:25"},"nodeType":"YulFunctionCall","src":"5928:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5916:3:25"},"nodeType":"YulFunctionCall","src":"5916:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5898:6:25"},"nodeType":"YulFunctionCall","src":"5898:51:25"},"nodeType":"YulExpressionStatement","src":"5898:51:25"}]},"name":"abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5822:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5833:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5844:4:25","type":""}],"src":"5721:234:25"},{"body":{"nodeType":"YulBlock","src":"6013:205:25","statements":[{"nodeType":"YulVariableDeclaration","src":"6023:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6032:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6027:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6092:63:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6117:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"6122:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6113:3:25"},"nodeType":"YulFunctionCall","src":"6113:11:25"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6136:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"6141:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6132:3:25"},"nodeType":"YulFunctionCall","src":"6132:11:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6126:5:25"},"nodeType":"YulFunctionCall","src":"6126:18:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6106:6:25"},"nodeType":"YulFunctionCall","src":"6106:39:25"},"nodeType":"YulExpressionStatement","src":"6106:39:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6053:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"6056:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6050:2:25"},"nodeType":"YulFunctionCall","src":"6050:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6064:19:25","statements":[{"nodeType":"YulAssignment","src":"6066:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6075:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"6078:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6071:3:25"},"nodeType":"YulFunctionCall","src":"6071:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6066:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"6046:3:25","statements":[]},"src":"6042:113:25"},{"body":{"nodeType":"YulBlock","src":"6181:31:25","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6194:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"6199:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6190:3:25"},"nodeType":"YulFunctionCall","src":"6190:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"6208:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6183:6:25"},"nodeType":"YulFunctionCall","src":"6183:27:25"},"nodeType":"YulExpressionStatement","src":"6183:27:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6170:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"6173:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6167:2:25"},"nodeType":"YulFunctionCall","src":"6167:13:25"},"nodeType":"YulIf","src":"6164:48:25"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"5991:3:25","type":""},{"name":"dst","nodeType":"YulTypedName","src":"5996:3:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"6001:6:25","type":""}],"src":"5960:258:25"},{"body":{"nodeType":"YulBlock","src":"6272:208:25","statements":[{"nodeType":"YulVariableDeclaration","src":"6282:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6302:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6296:5:25"},"nodeType":"YulFunctionCall","src":"6296:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6286:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6324:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"6329:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6317:6:25"},"nodeType":"YulFunctionCall","src":"6317:19:25"},"nodeType":"YulExpressionStatement","src":"6317:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6371:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"6378:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6367:3:25"},"nodeType":"YulFunctionCall","src":"6367:16:25"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6389:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"6394:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6385:3:25"},"nodeType":"YulFunctionCall","src":"6385:14:25"},{"name":"length","nodeType":"YulIdentifier","src":"6401:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6345:21:25"},"nodeType":"YulFunctionCall","src":"6345:63:25"},"nodeType":"YulExpressionStatement","src":"6345:63:25"},{"nodeType":"YulAssignment","src":"6417:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6432:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6445:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"6453:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6441:3:25"},"nodeType":"YulFunctionCall","src":"6441:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6462:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6458:3:25"},"nodeType":"YulFunctionCall","src":"6458:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6437:3:25"},"nodeType":"YulFunctionCall","src":"6437:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6428:3:25"},"nodeType":"YulFunctionCall","src":"6428:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"6469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6424:3:25"},"nodeType":"YulFunctionCall","src":"6424:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6417:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6249:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6256:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6264:3:25","type":""}],"src":"6223:257:25"},{"body":{"nodeType":"YulBlock","src":"6604:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6621:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6632:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6614:6:25"},"nodeType":"YulFunctionCall","src":"6614:21:25"},"nodeType":"YulExpressionStatement","src":"6614:21:25"},{"nodeType":"YulAssignment","src":"6644:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6669:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6681:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6692:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6677:3:25"},"nodeType":"YulFunctionCall","src":"6677:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6652:16:25"},"nodeType":"YulFunctionCall","src":"6652:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6644:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6573:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6584:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6595:4:25","type":""}],"src":"6485:217:25"},{"body":{"nodeType":"YulBlock","src":"6792:299:25","statements":[{"body":{"nodeType":"YulBlock","src":"6838:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6847:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6850:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6840:6:25"},"nodeType":"YulFunctionCall","src":"6840:12:25"},"nodeType":"YulExpressionStatement","src":"6840:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6813:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"6822:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6809:3:25"},"nodeType":"YulFunctionCall","src":"6809:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"6834:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6805:3:25"},"nodeType":"YulFunctionCall","src":"6805:32:25"},"nodeType":"YulIf","src":"6802:52:25"},{"nodeType":"YulVariableDeclaration","src":"6863:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6889:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6876:12:25"},"nodeType":"YulFunctionCall","src":"6876:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6867:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6932:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"6908:23:25"},"nodeType":"YulFunctionCall","src":"6908:30:25"},"nodeType":"YulExpressionStatement","src":"6908:30:25"},{"nodeType":"YulAssignment","src":"6947:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6957:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6947:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6971:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7003:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7014:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6999:3:25"},"nodeType":"YulFunctionCall","src":"6999:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6986:12:25"},"nodeType":"YulFunctionCall","src":"6986:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6975:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7051:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7027:23:25"},"nodeType":"YulFunctionCall","src":"7027:32:25"},"nodeType":"YulExpressionStatement","src":"7027:32:25"},{"nodeType":"YulAssignment","src":"7068:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7078:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7068:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6750:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6761:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6773:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6781:6:25","type":""}],"src":"6707:384:25"},{"body":{"nodeType":"YulBlock","src":"7197:102:25","statements":[{"nodeType":"YulAssignment","src":"7207:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7219:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7230:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7215:3:25"},"nodeType":"YulFunctionCall","src":"7215:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7207:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7249:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7264:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7280:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7285:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7276:3:25"},"nodeType":"YulFunctionCall","src":"7276:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7289:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7272:3:25"},"nodeType":"YulFunctionCall","src":"7272:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7260:3:25"},"nodeType":"YulFunctionCall","src":"7260:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7242:6:25"},"nodeType":"YulFunctionCall","src":"7242:51:25"},"nodeType":"YulExpressionStatement","src":"7242:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7166:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7177:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7188:4:25","type":""}],"src":"7096:203:25"},{"body":{"nodeType":"YulBlock","src":"7431:102:25","statements":[{"nodeType":"YulAssignment","src":"7441:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7449:3:25"},"nodeType":"YulFunctionCall","src":"7449:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7441:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7483:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7498:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7514:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7519:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7510:3:25"},"nodeType":"YulFunctionCall","src":"7510:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7523:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7506:3:25"},"nodeType":"YulFunctionCall","src":"7506:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7494:3:25"},"nodeType":"YulFunctionCall","src":"7494:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7476:6:25"},"nodeType":"YulFunctionCall","src":"7476:51:25"},"nodeType":"YulExpressionStatement","src":"7476:51:25"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7400:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7411:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7422:4:25","type":""}],"src":"7304:229:25"},{"body":{"nodeType":"YulBlock","src":"7676:612:25","statements":[{"body":{"nodeType":"YulBlock","src":"7723:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7732:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7735:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7725:6:25"},"nodeType":"YulFunctionCall","src":"7725:12:25"},"nodeType":"YulExpressionStatement","src":"7725:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7697:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7706:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7693:3:25"},"nodeType":"YulFunctionCall","src":"7693:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7718:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7689:3:25"},"nodeType":"YulFunctionCall","src":"7689:33:25"},"nodeType":"YulIf","src":"7686:53:25"},{"nodeType":"YulVariableDeclaration","src":"7748:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7774:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7761:12:25"},"nodeType":"YulFunctionCall","src":"7761:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7752:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7817:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7793:23:25"},"nodeType":"YulFunctionCall","src":"7793:30:25"},"nodeType":"YulExpressionStatement","src":"7793:30:25"},{"nodeType":"YulAssignment","src":"7832:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7842:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7832:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7856:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7888:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7899:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7884:3:25"},"nodeType":"YulFunctionCall","src":"7884:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7871:12:25"},"nodeType":"YulFunctionCall","src":"7871:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7860:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7936:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"7912:23:25"},"nodeType":"YulFunctionCall","src":"7912:32:25"},"nodeType":"YulExpressionStatement","src":"7912:32:25"},{"nodeType":"YulAssignment","src":"7953:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7963:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7953:6:25"}]},{"nodeType":"YulAssignment","src":"7979:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8006:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8017:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8002:3:25"},"nodeType":"YulFunctionCall","src":"8002:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7989:12:25"},"nodeType":"YulFunctionCall","src":"7989:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7979:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"8030:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8061:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8072:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8057:3:25"},"nodeType":"YulFunctionCall","src":"8057:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8044:12:25"},"nodeType":"YulFunctionCall","src":"8044:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8034:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"8119:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8128:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8131:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8121:6:25"},"nodeType":"YulFunctionCall","src":"8121:12:25"},"nodeType":"YulExpressionStatement","src":"8121:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8091:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8099:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8088:2:25"},"nodeType":"YulFunctionCall","src":"8088:30:25"},"nodeType":"YulIf","src":"8085:50:25"},{"nodeType":"YulVariableDeclaration","src":"8144:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8200:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"8211:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8196:3:25"},"nodeType":"YulFunctionCall","src":"8196:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8220:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"8170:25:25"},"nodeType":"YulFunctionCall","src":"8170:58:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"8148:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"8158:8:25","type":""}]},{"nodeType":"YulAssignment","src":"8237:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"8247:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8237:6:25"}]},{"nodeType":"YulAssignment","src":"8264:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"8274:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8264:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7610:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7621:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7633:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7641:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7649:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7657:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7665:6:25","type":""}],"src":"7538:750:25"},{"body":{"nodeType":"YulBlock","src":"8395:350:25","statements":[{"body":{"nodeType":"YulBlock","src":"8441:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8450:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8453:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8443:6:25"},"nodeType":"YulFunctionCall","src":"8443:12:25"},"nodeType":"YulExpressionStatement","src":"8443:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8416:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"8425:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8412:3:25"},"nodeType":"YulFunctionCall","src":"8412:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"8437:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8408:3:25"},"nodeType":"YulFunctionCall","src":"8408:32:25"},"nodeType":"YulIf","src":"8405:52:25"},{"nodeType":"YulVariableDeclaration","src":"8466:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8492:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8479:12:25"},"nodeType":"YulFunctionCall","src":"8479:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8470:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8535:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"8511:23:25"},"nodeType":"YulFunctionCall","src":"8511:30:25"},"nodeType":"YulExpressionStatement","src":"8511:30:25"},{"nodeType":"YulAssignment","src":"8550:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"8560:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8550:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"8574:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8606:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8617:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8602:3:25"},"nodeType":"YulFunctionCall","src":"8602:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8589:12:25"},"nodeType":"YulFunctionCall","src":"8589:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8578:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8654:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"8630:23:25"},"nodeType":"YulFunctionCall","src":"8630:32:25"},"nodeType":"YulExpressionStatement","src":"8630:32:25"},{"nodeType":"YulAssignment","src":"8671:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"8681:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8671:6:25"}]},{"nodeType":"YulAssignment","src":"8697:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8724:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8735:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8720:3:25"},"nodeType":"YulFunctionCall","src":"8720:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8707:12:25"},"nodeType":"YulFunctionCall","src":"8707:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8697:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8345:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8356:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8368:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8376:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8384:6:25","type":""}],"src":"8293:452:25"},{"body":{"nodeType":"YulBlock","src":"8931:238:25","statements":[{"nodeType":"YulAssignment","src":"8941:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8953:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8964:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8949:3:25"},"nodeType":"YulFunctionCall","src":"8949:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8941:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8984:9:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9006:2:25","type":"","value":"15"},{"name":"value0","nodeType":"YulIdentifier","src":"9010:6:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"8995:10:25"},"nodeType":"YulFunctionCall","src":"8995:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8977:6:25"},"nodeType":"YulFunctionCall","src":"8977:41:25"},"nodeType":"YulExpressionStatement","src":"8977:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9038:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9049:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9034:3:25"},"nodeType":"YulFunctionCall","src":"9034:18:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9065:2:25","type":"","value":"15"},{"name":"value1","nodeType":"YulIdentifier","src":"9069:6:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"9054:10:25"},"nodeType":"YulFunctionCall","src":"9054:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9027:6:25"},"nodeType":"YulFunctionCall","src":"9027:50:25"},"nodeType":"YulExpressionStatement","src":"9027:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9097:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9108:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9093:3:25"},"nodeType":"YulFunctionCall","src":"9093:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"9113:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9086:6:25"},"nodeType":"YulFunctionCall","src":"9086:34:25"},"nodeType":"YulExpressionStatement","src":"9086:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9140:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9151:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9136:3:25"},"nodeType":"YulFunctionCall","src":"9136:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"9156:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9129:6:25"},"nodeType":"YulFunctionCall","src":"9129:34:25"},"nodeType":"YulExpressionStatement","src":"9129:34:25"}]},"name":"abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8876:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8887:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8895:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8903:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8911:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8922:4:25","type":""}],"src":"8750:419:25"},{"body":{"nodeType":"YulBlock","src":"9293:475:25","statements":[{"body":{"nodeType":"YulBlock","src":"9340:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9349:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9352:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9342:6:25"},"nodeType":"YulFunctionCall","src":"9342:12:25"},"nodeType":"YulExpressionStatement","src":"9342:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9314:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9323:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9310:3:25"},"nodeType":"YulFunctionCall","src":"9310:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9335:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9306:3:25"},"nodeType":"YulFunctionCall","src":"9306:33:25"},"nodeType":"YulIf","src":"9303:53:25"},{"nodeType":"YulVariableDeclaration","src":"9365:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9391:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9378:12:25"},"nodeType":"YulFunctionCall","src":"9378:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9369:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9434:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"9410:23:25"},"nodeType":"YulFunctionCall","src":"9410:30:25"},"nodeType":"YulExpressionStatement","src":"9410:30:25"},{"nodeType":"YulAssignment","src":"9449:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"9459:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9449:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9473:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9505:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9516:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9501:3:25"},"nodeType":"YulFunctionCall","src":"9501:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9488:12:25"},"nodeType":"YulFunctionCall","src":"9488:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"9477:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"9553:7:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"9529:23:25"},"nodeType":"YulFunctionCall","src":"9529:32:25"},"nodeType":"YulExpressionStatement","src":"9529:32:25"},{"nodeType":"YulAssignment","src":"9570:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"9580:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9570:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9596:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9628:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9639:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9624:3:25"},"nodeType":"YulFunctionCall","src":"9624:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9611:12:25"},"nodeType":"YulFunctionCall","src":"9611:32:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"9600:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"9677:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"9652:24:25"},"nodeType":"YulFunctionCall","src":"9652:33:25"},"nodeType":"YulExpressionStatement","src":"9652:33:25"},{"nodeType":"YulAssignment","src":"9694:17:25","value":{"name":"value_2","nodeType":"YulIdentifier","src":"9704:7:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9694:6:25"}]},{"nodeType":"YulAssignment","src":"9720:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9747:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9758:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9743:3:25"},"nodeType":"YulFunctionCall","src":"9743:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9730:12:25"},"nodeType":"YulFunctionCall","src":"9730:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9720:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9235:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9246:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9258:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9266:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9274:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9282:6:25","type":""}],"src":"9174:594:25"},{"body":{"nodeType":"YulBlock","src":"9947:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9964:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9975:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9957:6:25"},"nodeType":"YulFunctionCall","src":"9957:21:25"},"nodeType":"YulExpressionStatement","src":"9957:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10009:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9994:3:25"},"nodeType":"YulFunctionCall","src":"9994:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"10014:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9987:6:25"},"nodeType":"YulFunctionCall","src":"9987:30:25"},"nodeType":"YulExpressionStatement","src":"9987:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10037:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10048:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10033:3:25"},"nodeType":"YulFunctionCall","src":"10033:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"10053:32:25","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10026:6:25"},"nodeType":"YulFunctionCall","src":"10026:60:25"},"nodeType":"YulExpressionStatement","src":"10026:60:25"},{"nodeType":"YulAssignment","src":"10095:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10107:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10118:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10103:3:25"},"nodeType":"YulFunctionCall","src":"10103:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10095:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9924:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9938:4:25","type":""}],"src":"9773:354:25"},{"body":{"nodeType":"YulBlock","src":"10187:325:25","statements":[{"nodeType":"YulAssignment","src":"10197:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10211:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"10214:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10207:3:25"},"nodeType":"YulFunctionCall","src":"10207:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10197:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10228:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"10258:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"10264:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10254:3:25"},"nodeType":"YulFunctionCall","src":"10254:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"10232:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10305:31:25","statements":[{"nodeType":"YulAssignment","src":"10307:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10321:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10329:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10317:3:25"},"nodeType":"YulFunctionCall","src":"10317:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10307:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10285:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10278:6:25"},"nodeType":"YulFunctionCall","src":"10278:26:25"},"nodeType":"YulIf","src":"10275:61:25"},{"body":{"nodeType":"YulBlock","src":"10395:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10416:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10423:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10428:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10419:3:25"},"nodeType":"YulFunctionCall","src":"10419:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10409:6:25"},"nodeType":"YulFunctionCall","src":"10409:31:25"},"nodeType":"YulExpressionStatement","src":"10409:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10460:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10463:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10453:6:25"},"nodeType":"YulFunctionCall","src":"10453:15:25"},"nodeType":"YulExpressionStatement","src":"10453:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10488:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10491:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10481:6:25"},"nodeType":"YulFunctionCall","src":"10481:15:25"},"nodeType":"YulExpressionStatement","src":"10481:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10351:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10374:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"10382:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10371:2:25"},"nodeType":"YulFunctionCall","src":"10371:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10348:2:25"},"nodeType":"YulFunctionCall","src":"10348:38:25"},"nodeType":"YulIf","src":"10345:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10167:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10176:6:25","type":""}],"src":"10132:380:25"},{"body":{"nodeType":"YulBlock","src":"10664:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10687:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"10692:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"10700:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"10674:12:25"},"nodeType":"YulFunctionCall","src":"10674:33:25"},"nodeType":"YulExpressionStatement","src":"10674:33:25"},{"nodeType":"YulVariableDeclaration","src":"10716:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10730:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"10735:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10726:3:25"},"nodeType":"YulFunctionCall","src":"10726:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10758:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"10762:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10751:6:25"},"nodeType":"YulFunctionCall","src":"10751:13:25"},"nodeType":"YulExpressionStatement","src":"10751:13:25"},{"nodeType":"YulAssignment","src":"10773:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"10780:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10773:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10632:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10637:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10645:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10656:3:25","type":""}],"src":"10517:271:25"},{"body":{"nodeType":"YulBlock","src":"10967:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10977:6:25"},"nodeType":"YulFunctionCall","src":"10977:21:25"},"nodeType":"YulExpressionStatement","src":"10977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11014:3:25"},"nodeType":"YulFunctionCall","src":"11014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11034:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11007:6:25"},"nodeType":"YulFunctionCall","src":"11007:30:25"},"nodeType":"YulExpressionStatement","src":"11007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11053:3:25"},"nodeType":"YulFunctionCall","src":"11053:18:25"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nodeType":"YulLiteral","src":"11073:34:25","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11046:6:25"},"nodeType":"YulFunctionCall","src":"11046:62:25"},"nodeType":"YulExpressionStatement","src":"11046:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11124:3:25"},"nodeType":"YulFunctionCall","src":"11124:18:25"},{"hexValue":"6e7472616374","kind":"string","nodeType":"YulLiteral","src":"11144:8:25","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11117:6:25"},"nodeType":"YulFunctionCall","src":"11117:36:25"},"nodeType":"YulExpressionStatement","src":"11117:36:25"},{"nodeType":"YulAssignment","src":"11162:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11174:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11185:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11170:3:25"},"nodeType":"YulFunctionCall","src":"11170:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11162:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10958:4:25","type":""}],"src":"10793:402:25"},{"body":{"nodeType":"YulBlock","src":"11299:89:25","statements":[{"nodeType":"YulAssignment","src":"11309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11317:3:25"},"nodeType":"YulFunctionCall","src":"11317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11351:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11366:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11374:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11362:3:25"},"nodeType":"YulFunctionCall","src":"11362:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11344:6:25"},"nodeType":"YulFunctionCall","src":"11344:38:25"},"nodeType":"YulExpressionStatement","src":"11344:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11290:4:25","type":""}],"src":"11200:188:25"},{"body":{"nodeType":"YulBlock","src":"11459:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11476:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"11481:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11469:6:25"},"nodeType":"YulFunctionCall","src":"11469:19:25"},"nodeType":"YulExpressionStatement","src":"11469:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11514:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"11519:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11510:3:25"},"nodeType":"YulFunctionCall","src":"11510:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"11526:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"11533:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11497:12:25"},"nodeType":"YulFunctionCall","src":"11497:43:25"},"nodeType":"YulExpressionStatement","src":"11497:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11564:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"11569:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11560:3:25"},"nodeType":"YulFunctionCall","src":"11560:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"11578:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11556:3:25"},"nodeType":"YulFunctionCall","src":"11556:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"11585:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11549:6:25"},"nodeType":"YulFunctionCall","src":"11549:38:25"},"nodeType":"YulExpressionStatement","src":"11549:38:25"},{"nodeType":"YulAssignment","src":"11596:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11611:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11624:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11632:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11620:3:25"},"nodeType":"YulFunctionCall","src":"11620:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11641:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11637:3:25"},"nodeType":"YulFunctionCall","src":"11637:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11616:3:25"},"nodeType":"YulFunctionCall","src":"11616:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11607:3:25"},"nodeType":"YulFunctionCall","src":"11607:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"11648:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11603:3:25"},"nodeType":"YulFunctionCall","src":"11603:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11596:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"11428:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"11435:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11443:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11451:3:25","type":""}],"src":"11393:266:25"},{"body":{"nodeType":"YulBlock","src":"11819:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11836:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11851:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"11859:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11847:3:25"},"nodeType":"YulFunctionCall","src":"11847:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11829:6:25"},"nodeType":"YulFunctionCall","src":"11829:38:25"},"nodeType":"YulExpressionStatement","src":"11829:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11887:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11898:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11883:3:25"},"nodeType":"YulFunctionCall","src":"11883:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"11903:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11876:6:25"},"nodeType":"YulFunctionCall","src":"11876:30:25"},"nodeType":"YulExpressionStatement","src":"11876:30:25"},{"nodeType":"YulAssignment","src":"11915:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11949:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"11957:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11969:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11980:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11965:3:25"},"nodeType":"YulFunctionCall","src":"11965:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"11923:25:25"},"nodeType":"YulFunctionCall","src":"11923:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11915:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11772:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11783:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11791:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11799:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11810:4:25","type":""}],"src":"11664:326:25"},{"body":{"nodeType":"YulBlock","src":"12169:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12186:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12197:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12179:6:25"},"nodeType":"YulFunctionCall","src":"12179:21:25"},"nodeType":"YulExpressionStatement","src":"12179:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12220:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12231:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12216:3:25"},"nodeType":"YulFunctionCall","src":"12216:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12209:6:25"},"nodeType":"YulFunctionCall","src":"12209:30:25"},"nodeType":"YulExpressionStatement","src":"12209:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12259:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12270:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12255:3:25"},"nodeType":"YulFunctionCall","src":"12255:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nodeType":"YulLiteral","src":"12275:34:25","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12248:6:25"},"nodeType":"YulFunctionCall","src":"12248:62:25"},"nodeType":"YulExpressionStatement","src":"12248:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12330:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12341:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12326:3:25"},"nodeType":"YulFunctionCall","src":"12326:18:25"},{"hexValue":"204c7a417070","kind":"string","nodeType":"YulLiteral","src":"12346:8:25","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12319:6:25"},"nodeType":"YulFunctionCall","src":"12319:36:25"},"nodeType":"YulExpressionStatement","src":"12319:36:25"},{"nodeType":"YulAssignment","src":"12364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12372:3:25"},"nodeType":"YulFunctionCall","src":"12372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12146:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12160:4:25","type":""}],"src":"11995:402:25"},{"body":{"nodeType":"YulBlock","src":"12576:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12586:6:25"},"nodeType":"YulFunctionCall","src":"12586:21:25"},"nodeType":"YulExpressionStatement","src":"12586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12623:3:25"},"nodeType":"YulFunctionCall","src":"12623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"12643:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12616:6:25"},"nodeType":"YulFunctionCall","src":"12616:30:25"},"nodeType":"YulExpressionStatement","src":"12616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12662:3:25"},"nodeType":"YulFunctionCall","src":"12662:18:25"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nodeType":"YulLiteral","src":"12682:31:25","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12655:6:25"},"nodeType":"YulFunctionCall","src":"12655:59:25"},"nodeType":"YulExpressionStatement","src":"12655:59:25"},{"nodeType":"YulAssignment","src":"12723:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12735:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12746:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12731:3:25"},"nodeType":"YulFunctionCall","src":"12731:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12723:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12567:4:25","type":""}],"src":"12402:353:25"},{"body":{"nodeType":"YulBlock","src":"12792:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12809:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12816:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12821:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12812:3:25"},"nodeType":"YulFunctionCall","src":"12812:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12802:6:25"},"nodeType":"YulFunctionCall","src":"12802:31:25"},"nodeType":"YulExpressionStatement","src":"12802:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12849:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12852:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12842:6:25"},"nodeType":"YulFunctionCall","src":"12842:15:25"},"nodeType":"YulExpressionStatement","src":"12842:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12873:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12876:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12866:6:25"},"nodeType":"YulFunctionCall","src":"12866:15:25"},"nodeType":"YulExpressionStatement","src":"12866:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12760:127:25"},{"body":{"nodeType":"YulBlock","src":"12941:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"12963:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12965:16:25"},"nodeType":"YulFunctionCall","src":"12965:18:25"},"nodeType":"YulExpressionStatement","src":"12965:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12957:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"12960:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12954:2:25"},"nodeType":"YulFunctionCall","src":"12954:8:25"},"nodeType":"YulIf","src":"12951:34:25"},{"nodeType":"YulAssignment","src":"12994:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13006:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"13009:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13002:3:25"},"nodeType":"YulFunctionCall","src":"13002:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12994:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12923:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"12926:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"12932:4:25","type":""}],"src":"12892:125:25"},{"body":{"nodeType":"YulBlock","src":"13197:207:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13220:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"13225:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"13233:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"13207:12:25"},"nodeType":"YulFunctionCall","src":"13207:33:25"},"nodeType":"YulExpressionStatement","src":"13207:33:25"},{"nodeType":"YulVariableDeclaration","src":"13249:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13263:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"13268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13259:3:25"},"nodeType":"YulFunctionCall","src":"13259:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13253:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13291:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"13295:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13284:6:25"},"nodeType":"YulFunctionCall","src":"13284:13:25"},"nodeType":"YulExpressionStatement","src":"13284:13:25"},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13313:2:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13325:2:25","type":"","value":"96"},{"name":"value2","nodeType":"YulIdentifier","src":"13329:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13321:3:25"},"nodeType":"YulFunctionCall","src":"13321:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13342:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13338:3:25"},"nodeType":"YulFunctionCall","src":"13338:31:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13317:3:25"},"nodeType":"YulFunctionCall","src":"13317:53:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13306:6:25"},"nodeType":"YulFunctionCall","src":"13306:65:25"},"nodeType":"YulExpressionStatement","src":"13306:65:25"},{"nodeType":"YulAssignment","src":"13380:18:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13391:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"13395:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13387:3:25"},"nodeType":"YulFunctionCall","src":"13387:11:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13380:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13157:3:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13162:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13170:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13178:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13189:3:25","type":""}],"src":"13022:382:25"},{"body":{"nodeType":"YulBlock","src":"13618:289:25","statements":[{"nodeType":"YulVariableDeclaration","src":"13628:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"13638:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13632:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13660:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13675:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"13683:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13671:3:25"},"nodeType":"YulFunctionCall","src":"13671:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13653:6:25"},"nodeType":"YulFunctionCall","src":"13653:34:25"},"nodeType":"YulExpressionStatement","src":"13653:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13707:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13718:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13703:3:25"},"nodeType":"YulFunctionCall","src":"13703:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13727:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"13735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13723:3:25"},"nodeType":"YulFunctionCall","src":"13723:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13696:6:25"},"nodeType":"YulFunctionCall","src":"13696:43:25"},"nodeType":"YulExpressionStatement","src":"13696:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13759:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13770:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13755:3:25"},"nodeType":"YulFunctionCall","src":"13755:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"13775:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13748:6:25"},"nodeType":"YulFunctionCall","src":"13748:34:25"},"nodeType":"YulExpressionStatement","src":"13748:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13802:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13813:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13798:3:25"},"nodeType":"YulFunctionCall","src":"13798:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"13818:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13791:6:25"},"nodeType":"YulFunctionCall","src":"13791:31:25"},"nodeType":"YulExpressionStatement","src":"13791:31:25"},{"nodeType":"YulAssignment","src":"13831:70:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13865:6:25"},{"name":"value4","nodeType":"YulIdentifier","src":"13873:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13885:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13896:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13881:3:25"},"nodeType":"YulFunctionCall","src":"13881:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13839:25:25"},"nodeType":"YulFunctionCall","src":"13839:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13831:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13555:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13566:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13574:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13582:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13590:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13598:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13609:4:25","type":""}],"src":"13409:498:25"},{"body":{"nodeType":"YulBlock","src":"14086:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14103:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14114:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14096:6:25"},"nodeType":"YulFunctionCall","src":"14096:21:25"},"nodeType":"YulExpressionStatement","src":"14096:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14137:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14148:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14133:3:25"},"nodeType":"YulFunctionCall","src":"14133:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14153:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14126:6:25"},"nodeType":"YulFunctionCall","src":"14126:30:25"},"nodeType":"YulExpressionStatement","src":"14126:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14176:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14187:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14172:3:25"},"nodeType":"YulFunctionCall","src":"14172:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nodeType":"YulLiteral","src":"14192:34:25","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14165:6:25"},"nodeType":"YulFunctionCall","src":"14165:62:25"},"nodeType":"YulExpressionStatement","src":"14165:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14247:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14258:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14243:3:25"},"nodeType":"YulFunctionCall","src":"14243:18:25"},{"hexValue":"616765","kind":"string","nodeType":"YulLiteral","src":"14263:5:25","type":"","value":"age"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14236:6:25"},"nodeType":"YulFunctionCall","src":"14236:33:25"},"nodeType":"YulExpressionStatement","src":"14236:33:25"},{"nodeType":"YulAssignment","src":"14278:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14290:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14301:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14286:3:25"},"nodeType":"YulFunctionCall","src":"14286:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14278:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14063:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14077:4:25","type":""}],"src":"13912:399:25"},{"body":{"nodeType":"YulBlock","src":"14490:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14507:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14518:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14500:6:25"},"nodeType":"YulFunctionCall","src":"14500:21:25"},"nodeType":"YulExpressionStatement","src":"14500:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14552:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14537:3:25"},"nodeType":"YulFunctionCall","src":"14537:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"14557:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14530:6:25"},"nodeType":"YulFunctionCall","src":"14530:30:25"},"nodeType":"YulExpressionStatement","src":"14530:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14580:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14591:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14576:3:25"},"nodeType":"YulFunctionCall","src":"14576:18:25"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nodeType":"YulLiteral","src":"14596:34:25","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14569:6:25"},"nodeType":"YulFunctionCall","src":"14569:62:25"},"nodeType":"YulExpressionStatement","src":"14569:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14662:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14647:3:25"},"nodeType":"YulFunctionCall","src":"14647:18:25"},{"hexValue":"64","kind":"string","nodeType":"YulLiteral","src":"14667:3:25","type":"","value":"d"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14640:6:25"},"nodeType":"YulFunctionCall","src":"14640:31:25"},"nodeType":"YulExpressionStatement","src":"14640:31:25"},{"nodeType":"YulAssignment","src":"14680:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"14703:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14688:3:25"},"nodeType":"YulFunctionCall","src":"14688:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14680:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14467:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14481:4:25","type":""}],"src":"14316:397:25"},{"body":{"nodeType":"YulBlock","src":"14927:284:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14944:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14959:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14967:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14955:3:25"},"nodeType":"YulFunctionCall","src":"14955:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14937:6:25"},"nodeType":"YulFunctionCall","src":"14937:38:25"},"nodeType":"YulExpressionStatement","src":"14937:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14995:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15006:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14991:3:25"},"nodeType":"YulFunctionCall","src":"14991:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15011:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14984:6:25"},"nodeType":"YulFunctionCall","src":"14984:31:25"},"nodeType":"YulExpressionStatement","src":"14984:31:25"},{"nodeType":"YulAssignment","src":"15024:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15058:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15066:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15078:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15089:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15074:3:25"},"nodeType":"YulFunctionCall","src":"15074:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15032:25:25"},"nodeType":"YulFunctionCall","src":"15032:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15024:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15125:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15110:3:25"},"nodeType":"YulFunctionCall","src":"15110:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15134:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15130:3:25"},"nodeType":"YulFunctionCall","src":"15130:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15103:6:25"},"nodeType":"YulFunctionCall","src":"15103:59:25"},"nodeType":"YulExpressionStatement","src":"15103:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15182:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15193:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15178:3:25"},"nodeType":"YulFunctionCall","src":"15178:18:25"},{"name":"value4","nodeType":"YulIdentifier","src":"15198:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15171:6:25"},"nodeType":"YulFunctionCall","src":"15171:34:25"},"nodeType":"YulExpressionStatement","src":"15171:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14864:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14875:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14883:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14891:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14899:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14907:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14918:4:25","type":""}],"src":"14718:493:25"},{"body":{"nodeType":"YulBlock","src":"15390:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15407:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15418:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15400:6:25"},"nodeType":"YulFunctionCall","src":"15400:21:25"},"nodeType":"YulExpressionStatement","src":"15400:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15441:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15452:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15437:3:25"},"nodeType":"YulFunctionCall","src":"15437:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15457:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15430:6:25"},"nodeType":"YulFunctionCall","src":"15430:30:25"},"nodeType":"YulExpressionStatement","src":"15430:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15480:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15491:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15476:3:25"},"nodeType":"YulFunctionCall","src":"15476:18:25"},{"hexValue":"4c7a4170703a20696e76616c6964206d696e476173","kind":"string","nodeType":"YulLiteral","src":"15496:23:25","type":"","value":"LzApp: invalid minGas"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15469:6:25"},"nodeType":"YulFunctionCall","src":"15469:51:25"},"nodeType":"YulExpressionStatement","src":"15469:51:25"},{"nodeType":"YulAssignment","src":"15529:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15552:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15537:3:25"},"nodeType":"YulFunctionCall","src":"15537:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15529:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15367:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15381:4:25","type":""}],"src":"15216:345:25"},{"body":{"nodeType":"YulBlock","src":"15719:205:25","statements":[{"nodeType":"YulAssignment","src":"15729:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15741:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15752:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15737:3:25"},"nodeType":"YulFunctionCall","src":"15737:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15729:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"15764:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"15774:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15768:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15796:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15811:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"15819:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15807:3:25"},"nodeType":"YulFunctionCall","src":"15807:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15789:6:25"},"nodeType":"YulFunctionCall","src":"15789:34:25"},"nodeType":"YulExpressionStatement","src":"15789:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15843:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15854:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15839:3:25"},"nodeType":"YulFunctionCall","src":"15839:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15863:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"15871:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15859:3:25"},"nodeType":"YulFunctionCall","src":"15859:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15832:6:25"},"nodeType":"YulFunctionCall","src":"15832:43:25"},"nodeType":"YulExpressionStatement","src":"15832:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15895:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15906:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15891:3:25"},"nodeType":"YulFunctionCall","src":"15891:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"15911:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15884:6:25"},"nodeType":"YulFunctionCall","src":"15884:34:25"},"nodeType":"YulExpressionStatement","src":"15884:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15672:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15683:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15691:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15699:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15710:4:25","type":""}],"src":"15566:358:25"},{"body":{"nodeType":"YulBlock","src":"16103:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16120:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16131:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16113:6:25"},"nodeType":"YulFunctionCall","src":"16113:21:25"},"nodeType":"YulExpressionStatement","src":"16113:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16154:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16165:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16150:3:25"},"nodeType":"YulFunctionCall","src":"16150:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16170:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16143:6:25"},"nodeType":"YulFunctionCall","src":"16143:30:25"},"nodeType":"YulExpressionStatement","src":"16143:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16193:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16204:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16189:3:25"},"nodeType":"YulFunctionCall","src":"16189:18:25"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"16209:34:25","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16182:6:25"},"nodeType":"YulFunctionCall","src":"16182:62:25"},"nodeType":"YulExpressionStatement","src":"16182:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16264:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16275:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16260:3:25"},"nodeType":"YulFunctionCall","src":"16260:18:25"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"16280:8:25","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16253:6:25"},"nodeType":"YulFunctionCall","src":"16253:36:25"},"nodeType":"YulExpressionStatement","src":"16253:36:25"},{"nodeType":"YulAssignment","src":"16298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16306:3:25"},"nodeType":"YulFunctionCall","src":"16306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16080:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16094:4:25","type":""}],"src":"15929:402:25"},{"body":{"nodeType":"YulBlock","src":"16517:275:25","statements":[{"nodeType":"YulAssignment","src":"16527:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16539:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16550:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16535:3:25"},"nodeType":"YulFunctionCall","src":"16535:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16527:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"16563:16:25","value":{"kind":"number","nodeType":"YulLiteral","src":"16573:6:25","type":"","value":"0xffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16567:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16595:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16610:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"16618:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16606:3:25"},"nodeType":"YulFunctionCall","src":"16606:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16588:6:25"},"nodeType":"YulFunctionCall","src":"16588:34:25"},"nodeType":"YulExpressionStatement","src":"16588:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16642:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16653:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16638:3:25"},"nodeType":"YulFunctionCall","src":"16638:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16662:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"16670:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16658:3:25"},"nodeType":"YulFunctionCall","src":"16658:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16631:6:25"},"nodeType":"YulFunctionCall","src":"16631:43:25"},"nodeType":"YulExpressionStatement","src":"16631:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16694:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16705:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16690:3:25"},"nodeType":"YulFunctionCall","src":"16690:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"16714:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16730:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16735:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16726:3:25"},"nodeType":"YulFunctionCall","src":"16726:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"16739:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16722:3:25"},"nodeType":"YulFunctionCall","src":"16722:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16710:3:25"},"nodeType":"YulFunctionCall","src":"16710:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16683:6:25"},"nodeType":"YulFunctionCall","src":"16683:60:25"},"nodeType":"YulExpressionStatement","src":"16683:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16763:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16774:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16759:3:25"},"nodeType":"YulFunctionCall","src":"16759:18:25"},{"name":"value3","nodeType":"YulIdentifier","src":"16779:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16752:6:25"},"nodeType":"YulFunctionCall","src":"16752:34:25"},"nodeType":"YulExpressionStatement","src":"16752:34:25"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16462:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16473:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16481:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16489:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16497:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16508:4:25","type":""}],"src":"16336:456:25"},{"body":{"nodeType":"YulBlock","src":"16887:544:25","statements":[{"body":{"nodeType":"YulBlock","src":"16933:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16942:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16945:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16935:6:25"},"nodeType":"YulFunctionCall","src":"16935:12:25"},"nodeType":"YulExpressionStatement","src":"16935:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16908:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"16917:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16904:3:25"},"nodeType":"YulFunctionCall","src":"16904:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"16929:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16900:3:25"},"nodeType":"YulFunctionCall","src":"16900:32:25"},"nodeType":"YulIf","src":"16897:52:25"},{"nodeType":"YulVariableDeclaration","src":"16958:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16978:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16972:5:25"},"nodeType":"YulFunctionCall","src":"16972:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16962:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"17031:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17040:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17043:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17033:6:25"},"nodeType":"YulFunctionCall","src":"17033:12:25"},"nodeType":"YulExpressionStatement","src":"17033:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"17003:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17011:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17000:2:25"},"nodeType":"YulFunctionCall","src":"17000:30:25"},"nodeType":"YulIf","src":"16997:50:25"},{"nodeType":"YulVariableDeclaration","src":"17056:32:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17070:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"17081:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17066:3:25"},"nodeType":"YulFunctionCall","src":"17066:22:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17060:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"17136:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17145:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17148:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17138:6:25"},"nodeType":"YulFunctionCall","src":"17138:12:25"},"nodeType":"YulExpressionStatement","src":"17138:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17115:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"17119:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17111:3:25"},"nodeType":"YulFunctionCall","src":"17111:13:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17126:7:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17107:3:25"},"nodeType":"YulFunctionCall","src":"17107:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17100:6:25"},"nodeType":"YulFunctionCall","src":"17100:35:25"},"nodeType":"YulIf","src":"17097:55:25"},{"nodeType":"YulVariableDeclaration","src":"17161:19:25","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17177:2:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17171:5:25"},"nodeType":"YulFunctionCall","src":"17171:9:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"17165:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17189:61:25","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"17246:2:25"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"17218:27:25"},"nodeType":"YulFunctionCall","src":"17218:31:25"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"17202:15:25"},"nodeType":"YulFunctionCall","src":"17202:48:25"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"17193:5:25","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17266:5:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17273:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17259:6:25"},"nodeType":"YulFunctionCall","src":"17259:17:25"},"nodeType":"YulExpressionStatement","src":"17259:17:25"},{"body":{"nodeType":"YulBlock","src":"17322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17324:6:25"},"nodeType":"YulFunctionCall","src":"17324:12:25"},"nodeType":"YulExpressionStatement","src":"17324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17299:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17303:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17295:3:25"},"nodeType":"YulFunctionCall","src":"17295:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17308:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17291:3:25"},"nodeType":"YulFunctionCall","src":"17291:20:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17313:7:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17288:2:25"},"nodeType":"YulFunctionCall","src":"17288:33:25"},"nodeType":"YulIf","src":"17285:53:25"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17373:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"17377:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17369:3:25"},"nodeType":"YulFunctionCall","src":"17369:11:25"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17386:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"17393:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17382:3:25"},"nodeType":"YulFunctionCall","src":"17382:14:25"},{"name":"_2","nodeType":"YulIdentifier","src":"17398:2:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"17347:21:25"},"nodeType":"YulFunctionCall","src":"17347:54:25"},"nodeType":"YulExpressionStatement","src":"17347:54:25"},{"nodeType":"YulAssignment","src":"17410:15:25","value":{"name":"array","nodeType":"YulIdentifier","src":"17420:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"17410:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16853:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"16864:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"16876:6:25","type":""}],"src":"16797:634:25"},{"body":{"nodeType":"YulBlock","src":"17653:338:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17670:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17685:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17693:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17681:3:25"},"nodeType":"YulFunctionCall","src":"17681:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17663:6:25"},"nodeType":"YulFunctionCall","src":"17663:38:25"},"nodeType":"YulExpressionStatement","src":"17663:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17721:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17732:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17717:3:25"},"nodeType":"YulFunctionCall","src":"17717:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17737:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17710:6:25"},"nodeType":"YulFunctionCall","src":"17710:31:25"},"nodeType":"YulExpressionStatement","src":"17710:31:25"},{"nodeType":"YulVariableDeclaration","src":"17750:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17781:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17793:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17804:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17789:3:25"},"nodeType":"YulFunctionCall","src":"17789:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"17764:16:25"},"nodeType":"YulFunctionCall","src":"17764:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"17754:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17840:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17825:3:25"},"nodeType":"YulFunctionCall","src":"17825:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17849:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17857:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17845:3:25"},"nodeType":"YulFunctionCall","src":"17845:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17818:6:25"},"nodeType":"YulFunctionCall","src":"17818:59:25"},"nodeType":"YulExpressionStatement","src":"17818:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17897:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17908:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17893:3:25"},"nodeType":"YulFunctionCall","src":"17893:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17913:3:25"},"nodeType":"YulFunctionCall","src":"17913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17886:6:25"},"nodeType":"YulFunctionCall","src":"17886:50:25"},"nodeType":"YulExpressionStatement","src":"17886:50:25"},{"nodeType":"YulAssignment","src":"17945:40:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17970:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17978:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"17953:16:25"},"nodeType":"YulFunctionCall","src":"17953:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17945:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17598:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17609:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17617:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17625:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17633:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17644:4:25","type":""}],"src":"17436:555:25"},{"body":{"nodeType":"YulBlock","src":"18133:137:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18143:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18163:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18157:5:25"},"nodeType":"YulFunctionCall","src":"18157:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"18147:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18205:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18213:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18201:3:25"},"nodeType":"YulFunctionCall","src":"18201:17:25"},{"name":"pos","nodeType":"YulIdentifier","src":"18220:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"18225:6:25"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"18179:21:25"},"nodeType":"YulFunctionCall","src":"18179:53:25"},"nodeType":"YulExpressionStatement","src":"18179:53:25"},{"nodeType":"YulAssignment","src":"18241:23:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18252:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"18257:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18248:3:25"},"nodeType":"YulFunctionCall","src":"18248:16:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18241:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18109:3:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18114:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18125:3:25","type":""}],"src":"17996:274:25"},{"body":{"nodeType":"YulBlock","src":"18538:453:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18555:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18570:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18578:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18566:3:25"},"nodeType":"YulFunctionCall","src":"18566:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18548:6:25"},"nodeType":"YulFunctionCall","src":"18548:38:25"},"nodeType":"YulExpressionStatement","src":"18548:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18606:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18617:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18602:3:25"},"nodeType":"YulFunctionCall","src":"18602:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18622:3:25","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18595:6:25"},"nodeType":"YulFunctionCall","src":"18595:31:25"},"nodeType":"YulExpressionStatement","src":"18595:31:25"},{"nodeType":"YulVariableDeclaration","src":"18635:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18666:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18678:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18689:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18674:3:25"},"nodeType":"YulFunctionCall","src":"18674:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18649:16:25"},"nodeType":"YulFunctionCall","src":"18649:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"18639:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18714:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18725:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18710:3:25"},"nodeType":"YulFunctionCall","src":"18710:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18734:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"18742:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18730:3:25"},"nodeType":"YulFunctionCall","src":"18730:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18703:6:25"},"nodeType":"YulFunctionCall","src":"18703:59:25"},"nodeType":"YulExpressionStatement","src":"18703:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18782:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18793:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18778:3:25"},"nodeType":"YulFunctionCall","src":"18778:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"18802:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"18810:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18798:3:25"},"nodeType":"YulFunctionCall","src":"18798:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18771:6:25"},"nodeType":"YulFunctionCall","src":"18771:50:25"},"nodeType":"YulExpressionStatement","src":"18771:50:25"},{"nodeType":"YulVariableDeclaration","src":"18830:46:25","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18861:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"18869:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18844:16:25"},"nodeType":"YulFunctionCall","src":"18844:32:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"18834:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18907:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18892:3:25"},"nodeType":"YulFunctionCall","src":"18892:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"18917:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"18925:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18913:3:25"},"nodeType":"YulFunctionCall","src":"18913:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18885:6:25"},"nodeType":"YulFunctionCall","src":"18885:51:25"},"nodeType":"YulExpressionStatement","src":"18885:51:25"},{"nodeType":"YulAssignment","src":"18945:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"18970:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"18978:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18953:16:25"},"nodeType":"YulFunctionCall","src":"18953:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18945:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18475:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"18486:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18494:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18502:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18529:4:25","type":""}],"src":"18275:716:25"},{"body":{"nodeType":"YulBlock","src":"19170:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19187:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19198:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19180:6:25"},"nodeType":"YulFunctionCall","src":"19180:21:25"},"nodeType":"YulExpressionStatement","src":"19180:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19221:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19232:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19217:3:25"},"nodeType":"YulFunctionCall","src":"19217:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19237:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19210:6:25"},"nodeType":"YulFunctionCall","src":"19210:30:25"},"nodeType":"YulExpressionStatement","src":"19210:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19260:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19271:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19256:3:25"},"nodeType":"YulFunctionCall","src":"19256:18:25"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"19276:34:25","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19249:6:25"},"nodeType":"YulFunctionCall","src":"19249:62:25"},"nodeType":"YulExpressionStatement","src":"19249:62:25"},{"nodeType":"YulAssignment","src":"19320:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19332:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19343:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19328:3:25"},"nodeType":"YulFunctionCall","src":"19328:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19320:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19147:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19161:4:25","type":""}],"src":"18996:356:25"},{"body":{"nodeType":"YulBlock","src":"19408:647:25","statements":[{"nodeType":"YulVariableDeclaration","src":"19418:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19440:2:25","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"19444:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"19429:10:25"},"nodeType":"YulFunctionCall","src":"19429:17:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"19422:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19455:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19477:2:25","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"19481:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"19466:10:25"},"nodeType":"YulFunctionCall","src":"19466:17:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"19459:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19492:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"19502:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19496:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19545:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19559:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19564:1:25","type":"","value":"0"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"19555:3:25"},"nodeType":"YulFunctionCall","src":"19555:11:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"19549:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19575:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19589:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19594:1:25","type":"","value":"0"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"19585:3:25"},"nodeType":"YulFunctionCall","src":"19585:11:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"19579:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19648:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19650:16:25"},"nodeType":"YulFunctionCall","src":"19650:18:25"},"nodeType":"YulExpressionStatement","src":"19650:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"19616:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"19620:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19612:3:25"},"nodeType":"YulFunctionCall","src":"19612:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19628:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19637:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19641:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"19633:3:25"},"nodeType":"YulFunctionCall","src":"19633:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19625:2:25"},"nodeType":"YulFunctionCall","src":"19625:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19608:3:25"},"nodeType":"YulFunctionCall","src":"19608:39:25"},"nodeType":"YulIf","src":"19605:65:25"},{"nodeType":"YulVariableDeclaration","src":"19679:49:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19693:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19689:3:25"},"nodeType":"YulFunctionCall","src":"19689:39:25"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"19683:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19737:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19751:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19756:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19747:3:25"},"nodeType":"YulFunctionCall","src":"19747:11:25"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"19741:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19812:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19814:16:25"},"nodeType":"YulFunctionCall","src":"19814:18:25"},"nodeType":"YulExpressionStatement","src":"19814:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"19778:2:25"},{"name":"_5","nodeType":"YulIdentifier","src":"19782:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19774:3:25"},"nodeType":"YulFunctionCall","src":"19774:11:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"19791:3:25"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"19801:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"19805:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19796:4:25"},"nodeType":"YulFunctionCall","src":"19796:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19787:3:25"},"nodeType":"YulFunctionCall","src":"19787:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19770:3:25"},"nodeType":"YulFunctionCall","src":"19770:41:25"},"nodeType":"YulIf","src":"19767:67:25"},{"nodeType":"YulVariableDeclaration","src":"19843:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19857:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"19862:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19853:3:25"},"nodeType":"YulFunctionCall","src":"19853:11:25"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"19847:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"19918:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19920:16:25"},"nodeType":"YulFunctionCall","src":"19920:18:25"},"nodeType":"YulExpressionStatement","src":"19920:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"19884:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"19888:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19880:3:25"},"nodeType":"YulFunctionCall","src":"19880:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19897:3:25"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"19907:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19911:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19902:4:25"},"nodeType":"YulFunctionCall","src":"19902:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19893:3:25"},"nodeType":"YulFunctionCall","src":"19893:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19876:3:25"},"nodeType":"YulFunctionCall","src":"19876:41:25"},"nodeType":"YulIf","src":"19873:67:25"},{"body":{"nodeType":"YulBlock","src":"19994:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19996:16:25"},"nodeType":"YulFunctionCall","src":"19996:18:25"},"nodeType":"YulExpressionStatement","src":"19996:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"19960:2:25"},{"name":"_5","nodeType":"YulIdentifier","src":"19964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19956:3:25"},"nodeType":"YulFunctionCall","src":"19956:11:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"19973:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19983:2:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"19987:3:25"}],"functionName":{"name":"sdiv","nodeType":"YulIdentifier","src":"19978:4:25"},"nodeType":"YulFunctionCall","src":"19978:13:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19969:3:25"},"nodeType":"YulFunctionCall","src":"19969:23:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19952:3:25"},"nodeType":"YulFunctionCall","src":"19952:41:25"},"nodeType":"YulIf","src":"19949:67:25"},{"nodeType":"YulAssignment","src":"20025:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20040:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20045:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"20036:3:25"},"nodeType":"YulFunctionCall","src":"20036:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"20025:7:25"}]}]},"name":"checked_mul_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19387:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"19390:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"19396:7:25","type":""}],"src":"19357:698:25"},{"body":{"nodeType":"YulBlock","src":"20108:350:25","statements":[{"nodeType":"YulVariableDeclaration","src":"20118:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20140:2:25","type":"","value":"15"},{"name":"x","nodeType":"YulIdentifier","src":"20144:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"20129:10:25"},"nodeType":"YulFunctionCall","src":"20129:17:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"20122:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20155:28:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20177:2:25","type":"","value":"15"},{"name":"y","nodeType":"YulIdentifier","src":"20181:1:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"20166:10:25"},"nodeType":"YulFunctionCall","src":"20166:17:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"20159:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20192:21:25","value":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"20206:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"20211:1:25","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20202:3:25"},"nodeType":"YulFunctionCall","src":"20202:11:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20196:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"20302:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20304:16:25"},"nodeType":"YulFunctionCall","src":"20304:18:25"},"nodeType":"YulExpressionStatement","src":"20304:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20236:2:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20229:6:25"},"nodeType":"YulFunctionCall","src":"20229:10:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20245:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20258:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20254:3:25"},"nodeType":"YulFunctionCall","src":"20254:39:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20295:3:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20250:3:25"},"nodeType":"YulFunctionCall","src":"20250:49:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20241:3:25"},"nodeType":"YulFunctionCall","src":"20241:59:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20225:3:25"},"nodeType":"YulFunctionCall","src":"20225:76:25"},"nodeType":"YulIf","src":"20222:102:25"},{"body":{"nodeType":"YulBlock","src":"20400:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20402:16:25"},"nodeType":"YulFunctionCall","src":"20402:18:25"},"nodeType":"YulExpressionStatement","src":"20402:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20340:2:25"},{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20348:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20357:34:25","type":"","value":"0x7fffffffffffffffffffffffffffffff"},{"name":"y_1","nodeType":"YulIdentifier","src":"20393:3:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20353:3:25"},"nodeType":"YulFunctionCall","src":"20353:44:25"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"20344:3:25"},"nodeType":"YulFunctionCall","src":"20344:54:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20336:3:25"},"nodeType":"YulFunctionCall","src":"20336:63:25"},"nodeType":"YulIf","src":"20333:89:25"},{"nodeType":"YulAssignment","src":"20431:21:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"20443:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"20448:3:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20439:3:25"},"nodeType":"YulFunctionCall","src":"20439:13:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"20431:4:25"}]}]},"name":"checked_sub_t_int128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20090:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"20093:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"20060:398:25"},{"body":{"nodeType":"YulBlock","src":"20637:232:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20654:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20665:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20647:6:25"},"nodeType":"YulFunctionCall","src":"20647:21:25"},"nodeType":"YulExpressionStatement","src":"20647:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20688:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20699:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20684:3:25"},"nodeType":"YulFunctionCall","src":"20684:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20704:2:25","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20677:6:25"},"nodeType":"YulFunctionCall","src":"20677:30:25"},"nodeType":"YulExpressionStatement","src":"20677:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20738:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20723:3:25"},"nodeType":"YulFunctionCall","src":"20723:18:25"},{"hexValue":"4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e2070","kind":"string","nodeType":"YulLiteral","src":"20743:34:25","type":"","value":"OmniVotingEscrowChild: unknown p"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20716:6:25"},"nodeType":"YulFunctionCall","src":"20716:62:25"},"nodeType":"YulExpressionStatement","src":"20716:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20798:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20809:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20794:3:25"},"nodeType":"YulFunctionCall","src":"20794:18:25"},{"hexValue":"61636b65742074797065","kind":"string","nodeType":"YulLiteral","src":"20814:12:25","type":"","value":"acket type"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20787:6:25"},"nodeType":"YulFunctionCall","src":"20787:40:25"},"nodeType":"YulExpressionStatement","src":"20787:40:25"},{"nodeType":"YulAssignment","src":"20836:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20848:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20859:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20844:3:25"},"nodeType":"YulFunctionCall","src":"20844:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20836:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20614:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20628:4:25","type":""}],"src":"20463:406:25"},{"body":{"nodeType":"YulBlock","src":"20922:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"20949:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20951:16:25"},"nodeType":"YulFunctionCall","src":"20951:18:25"},"nodeType":"YulExpressionStatement","src":"20951:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20938:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20945:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20941:3:25"},"nodeType":"YulFunctionCall","src":"20941:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20935:2:25"},"nodeType":"YulFunctionCall","src":"20935:13:25"},"nodeType":"YulIf","src":"20932:39:25"},{"nodeType":"YulAssignment","src":"20980:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20991:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"20994:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20987:3:25"},"nodeType":"YulFunctionCall","src":"20987:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"20980:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20905:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"20908:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"20914:3:25","type":""}],"src":"20874:128:25"},{"body":{"nodeType":"YulBlock","src":"21181:164:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21209:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21191:6:25"},"nodeType":"YulFunctionCall","src":"21191:21:25"},"nodeType":"YulExpressionStatement","src":"21191:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21232:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21243:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21228:3:25"},"nodeType":"YulFunctionCall","src":"21228:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21248:2:25","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21221:6:25"},"nodeType":"YulFunctionCall","src":"21221:30:25"},"nodeType":"YulExpressionStatement","src":"21221:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21271:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21282:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21267:3:25"},"nodeType":"YulFunctionCall","src":"21267:18:25"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"21287:16:25","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21260:6:25"},"nodeType":"YulFunctionCall","src":"21260:44:25"},"nodeType":"YulExpressionStatement","src":"21260:44:25"},{"nodeType":"YulAssignment","src":"21313:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21325:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21336:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21321:3:25"},"nodeType":"YulFunctionCall","src":"21321:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21313:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21158:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21172:4:25","type":""}],"src":"21007:338:25"},{"body":{"nodeType":"YulBlock","src":"21524:167:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21541:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21552:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21534:6:25"},"nodeType":"YulFunctionCall","src":"21534:21:25"},"nodeType":"YulExpressionStatement","src":"21534:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21575:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21586:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21571:3:25"},"nodeType":"YulFunctionCall","src":"21571:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21591:2:25","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21564:6:25"},"nodeType":"YulFunctionCall","src":"21564:30:25"},"nodeType":"YulExpressionStatement","src":"21564:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21614:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21625:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21610:3:25"},"nodeType":"YulFunctionCall","src":"21610:18:25"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nodeType":"YulLiteral","src":"21630:19:25","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21603:6:25"},"nodeType":"YulFunctionCall","src":"21603:47:25"},"nodeType":"YulExpressionStatement","src":"21603:47:25"},{"nodeType":"YulAssignment","src":"21659:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21667:3:25"},"nodeType":"YulFunctionCall","src":"21667:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21659:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21501:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21515:4:25","type":""}],"src":"21350:341:25"},{"body":{"nodeType":"YulBlock","src":"21769:656:25","statements":[{"body":{"nodeType":"YulBlock","src":"21813:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21822:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21825:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21815:6:25"},"nodeType":"YulFunctionCall","src":"21815:12:25"},"nodeType":"YulExpressionStatement","src":"21815:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"21790:3:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"21795:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21786:3:25"},"nodeType":"YulFunctionCall","src":"21786:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"21807:4:25","type":"","value":"0x80"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21782:3:25"},"nodeType":"YulFunctionCall","src":"21782:30:25"},"nodeType":"YulIf","src":"21779:50:25"},{"nodeType":"YulVariableDeclaration","src":"21838:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21858:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21852:5:25"},"nodeType":"YulFunctionCall","src":"21852:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"21842:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21870:35:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"21892:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"21900:4:25","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21888:3:25"},"nodeType":"YulFunctionCall","src":"21888:17:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"21874:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"21980:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"21982:16:25"},"nodeType":"YulFunctionCall","src":"21982:18:25"},"nodeType":"YulExpressionStatement","src":"21982:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21923:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"21935:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21920:2:25"},"nodeType":"YulFunctionCall","src":"21920:34:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"21959:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"21971:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21956:2:25"},"nodeType":"YulFunctionCall","src":"21956:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"21917:2:25"},"nodeType":"YulFunctionCall","src":"21917:62:25"},"nodeType":"YulIf","src":"21914:88:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22018:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22022:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22011:6:25"},"nodeType":"YulFunctionCall","src":"22011:22:25"},"nodeType":"YulExpressionStatement","src":"22011:22:25"},{"nodeType":"YulAssignment","src":"22042:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"22051:6:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"22042:5:25"}]},{"nodeType":"YulVariableDeclaration","src":"22066:31:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22087:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22081:5:25"},"nodeType":"YulFunctionCall","src":"22081:16:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"22070:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22130:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"22106:23:25"},"nodeType":"YulFunctionCall","src":"22106:32:25"},"nodeType":"YulExpressionStatement","src":"22106:32:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22154:6:25"},{"name":"value_1","nodeType":"YulIdentifier","src":"22162:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22147:6:25"},"nodeType":"YulFunctionCall","src":"22147:23:25"},"nodeType":"YulExpressionStatement","src":"22147:23:25"},{"nodeType":"YulVariableDeclaration","src":"22179:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22204:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22215:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22200:3:25"},"nodeType":"YulFunctionCall","src":"22200:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22194:5:25"},"nodeType":"YulFunctionCall","src":"22194:25:25"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"22183:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"22252:7:25"}],"functionName":{"name":"validator_revert_int128","nodeType":"YulIdentifier","src":"22228:23:25"},"nodeType":"YulFunctionCall","src":"22228:32:25"},"nodeType":"YulExpressionStatement","src":"22228:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22280:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22288:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22276:3:25"},"nodeType":"YulFunctionCall","src":"22276:15:25"},{"name":"value_2","nodeType":"YulIdentifier","src":"22293:7:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22269:6:25"},"nodeType":"YulFunctionCall","src":"22269:32:25"},"nodeType":"YulExpressionStatement","src":"22269:32:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22321:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22329:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22317:3:25"},"nodeType":"YulFunctionCall","src":"22317:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22344:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22355:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22340:3:25"},"nodeType":"YulFunctionCall","src":"22340:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22334:5:25"},"nodeType":"YulFunctionCall","src":"22334:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22310:6:25"},"nodeType":"YulFunctionCall","src":"22310:50:25"},"nodeType":"YulExpressionStatement","src":"22310:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22380:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22388:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22403:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22414:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22399:3:25"},"nodeType":"YulFunctionCall","src":"22399:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22393:5:25"},"nodeType":"YulFunctionCall","src":"22393:25:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22369:6:25"},"nodeType":"YulFunctionCall","src":"22369:50:25"},"nodeType":"YulExpressionStatement","src":"22369:50:25"}]},"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21740:9:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"21751:3:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"21759:5:25","type":""}],"src":"21696:729:25"},{"body":{"nodeType":"YulBlock","src":"22632:496:25","statements":[{"body":{"nodeType":"YulBlock","src":"22679:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22688:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22691:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22681:6:25"},"nodeType":"YulFunctionCall","src":"22681:12:25"},"nodeType":"YulExpressionStatement","src":"22681:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"22653:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"22662:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22649:3:25"},"nodeType":"YulFunctionCall","src":"22649:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"22674:3:25","type":"","value":"352"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"22645:3:25"},"nodeType":"YulFunctionCall","src":"22645:33:25"},"nodeType":"YulIf","src":"22642:53:25"},{"nodeType":"YulVariableDeclaration","src":"22704:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22723:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22717:5:25"},"nodeType":"YulFunctionCall","src":"22717:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"22708:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22766:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"22742:23:25"},"nodeType":"YulFunctionCall","src":"22742:30:25"},"nodeType":"YulExpressionStatement","src":"22742:30:25"},{"nodeType":"YulAssignment","src":"22781:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"22791:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"22781:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"22805:40:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22830:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22841:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22826:3:25"},"nodeType":"YulFunctionCall","src":"22826:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22820:5:25"},"nodeType":"YulFunctionCall","src":"22820:25:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"22809:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22879:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"22854:24:25"},"nodeType":"YulFunctionCall","src":"22854:33:25"},"nodeType":"YulExpressionStatement","src":"22854:33:25"},{"nodeType":"YulAssignment","src":"22896:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"22906:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"22896:6:25"}]},{"nodeType":"YulAssignment","src":"22922:35:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22942:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22953:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22938:3:25"},"nodeType":"YulFunctionCall","src":"22938:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22932:5:25"},"nodeType":"YulFunctionCall","src":"22932:25:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"22922:6:25"}]},{"nodeType":"YulAssignment","src":"22966:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23015:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23026:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23011:3:25"},"nodeType":"YulFunctionCall","src":"23011:18:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23031:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"22976:34:25"},"nodeType":"YulFunctionCall","src":"22976:63:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"22966:6:25"}]},{"nodeType":"YulAssignment","src":"23048:74:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23097:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23108:3:25","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23093:3:25"},"nodeType":"YulFunctionCall","src":"23093:19:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23114:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"23058:34:25"},"nodeType":"YulFunctionCall","src":"23058:64:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"23048:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22566:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"22577:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"22589:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22597:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22605:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22613:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22621:6:25","type":""}],"src":"22430:698:25"},{"body":{"nodeType":"YulBlock","src":"23182:241:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23199:3:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23215:2:25","type":"","value":"15"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23225:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23219:5:25"},"nodeType":"YulFunctionCall","src":"23219:12:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"23204:10:25"},"nodeType":"YulFunctionCall","src":"23204:28:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23192:6:25"},"nodeType":"YulFunctionCall","src":"23192:41:25"},"nodeType":"YulExpressionStatement","src":"23192:41:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23253:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23258:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23249:3:25"},"nodeType":"YulFunctionCall","src":"23249:14:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23276:2:25","type":"","value":"15"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23290:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23297:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23286:3:25"},"nodeType":"YulFunctionCall","src":"23286:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23280:5:25"},"nodeType":"YulFunctionCall","src":"23280:23:25"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"23265:10:25"},"nodeType":"YulFunctionCall","src":"23265:39:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23242:6:25"},"nodeType":"YulFunctionCall","src":"23242:63:25"},"nodeType":"YulExpressionStatement","src":"23242:63:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23325:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23330:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23321:3:25"},"nodeType":"YulFunctionCall","src":"23321:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23347:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23354:4:25","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23343:3:25"},"nodeType":"YulFunctionCall","src":"23343:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23337:5:25"},"nodeType":"YulFunctionCall","src":"23337:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23314:6:25"},"nodeType":"YulFunctionCall","src":"23314:47:25"},"nodeType":"YulExpressionStatement","src":"23314:47:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23381:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23386:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23377:3:25"},"nodeType":"YulFunctionCall","src":"23377:14:25"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23403:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"23410:4:25","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23399:3:25"},"nodeType":"YulFunctionCall","src":"23399:16:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23393:5:25"},"nodeType":"YulFunctionCall","src":"23393:23:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23370:6:25"},"nodeType":"YulFunctionCall","src":"23370:47:25"},"nodeType":"YulExpressionStatement","src":"23370:47:25"}]},"name":"abi_encode_struct_Point","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"23166:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"23173:3:25","type":""}],"src":"23133:290:25"},{"body":{"nodeType":"YulBlock","src":"23703:280:25","statements":[{"nodeType":"YulAssignment","src":"23713:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23725:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23736:3:25","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23721:3:25"},"nodeType":"YulFunctionCall","src":"23721:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23713:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23756:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23771:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23779:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23767:3:25"},"nodeType":"YulFunctionCall","src":"23767:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23749:6:25"},"nodeType":"YulFunctionCall","src":"23749:38:25"},"nodeType":"YulExpressionStatement","src":"23749:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23803:3:25"},"nodeType":"YulFunctionCall","src":"23803:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23827:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23843:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23848:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23839:3:25"},"nodeType":"YulFunctionCall","src":"23839:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"23852:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23835:3:25"},"nodeType":"YulFunctionCall","src":"23835:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23823:3:25"},"nodeType":"YulFunctionCall","src":"23823:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23796:6:25"},"nodeType":"YulFunctionCall","src":"23796:60:25"},"nodeType":"YulExpressionStatement","src":"23796:60:25"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23889:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23901:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23912:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23897:3:25"},"nodeType":"YulFunctionCall","src":"23897:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"23865:23:25"},"nodeType":"YulFunctionCall","src":"23865:51:25"},"nodeType":"YulExpressionStatement","src":"23865:51:25"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23949:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23961:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23972:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23957:3:25"},"nodeType":"YulFunctionCall","src":"23957:19:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"23925:23:25"},"nodeType":"YulFunctionCall","src":"23925:52:25"},"nodeType":"YulExpressionStatement","src":"23925:52:25"}]},"name":"abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23648:9:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23659:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23667:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23675:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23683:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23694:4:25","type":""}],"src":"23428:555:25"},{"body":{"nodeType":"YulBlock","src":"24108:252:25","statements":[{"body":{"nodeType":"YulBlock","src":"24155:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24164:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24167:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24157:6:25"},"nodeType":"YulFunctionCall","src":"24157:12:25"},"nodeType":"YulExpressionStatement","src":"24157:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"24129:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"24138:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24125:3:25"},"nodeType":"YulFunctionCall","src":"24125:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"24150:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"24121:3:25"},"nodeType":"YulFunctionCall","src":"24121:33:25"},"nodeType":"YulIf","src":"24118:53:25"},{"nodeType":"YulVariableDeclaration","src":"24180:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24199:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24193:5:25"},"nodeType":"YulFunctionCall","src":"24193:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"24184:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24242:5:25"}],"functionName":{"name":"validator_revert_uint16","nodeType":"YulIdentifier","src":"24218:23:25"},"nodeType":"YulFunctionCall","src":"24218:30:25"},"nodeType":"YulExpressionStatement","src":"24218:30:25"},{"nodeType":"YulAssignment","src":"24257:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"24267:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"24257:6:25"}]},{"nodeType":"YulAssignment","src":"24281:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24330:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24341:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24326:3:25"},"nodeType":"YulFunctionCall","src":"24326:18:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"24346:7:25"}],"functionName":{"name":"abi_decode_struct_Point_fromMemory","nodeType":"YulIdentifier","src":"24291:34:25"},"nodeType":"YulFunctionCall","src":"24291:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"24281:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24066:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"24077:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"24089:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24097:6:25","type":""}],"src":"23988:372:25"},{"body":{"nodeType":"YulBlock","src":"24538:150:25","statements":[{"nodeType":"YulAssignment","src":"24548:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24560:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24571:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24556:3:25"},"nodeType":"YulFunctionCall","src":"24556:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24548:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24591:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24606:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"24614:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24602:3:25"},"nodeType":"YulFunctionCall","src":"24602:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24584:6:25"},"nodeType":"YulFunctionCall","src":"24584:38:25"},"nodeType":"YulExpressionStatement","src":"24584:38:25"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24655:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"24678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24663:3:25"},"nodeType":"YulFunctionCall","src":"24663:18:25"}],"functionName":{"name":"abi_encode_struct_Point","nodeType":"YulIdentifier","src":"24631:23:25"},"nodeType":"YulFunctionCall","src":"24631:51:25"},"nodeType":"YulExpressionStatement","src":"24631:51:25"}]},"name":"abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24499:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24510:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24518:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24529:4:25","type":""}],"src":"24365:323:25"}]},"contents":"{\n { }\n function validator_revert_uint16(value)\n {\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n value3 := abi_decode_uint64(add(headStart, 64))\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(0, 0) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function validator_revert_int128(value)\n {\n if iszero(eq(value, signextend(15, value))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Point_$4477_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 128)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let value := calldataload(headStart)\n validator_revert_int128(value)\n mstore(memPtr, value)\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_int128(value_1)\n mstore(add(memPtr, 32), value_1)\n mstore(add(memPtr, 64), calldataload(add(headStart, 64)))\n mstore(add(memPtr, 96), calldataload(add(headStart, 96)))\n value0 := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := calldataload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(array, 32), add(_1, 32), _2)\n mstore(add(add(array, _2), 32), 0)\n value1 := array\n value2 := abi_decode_uint64(add(headStart, 64))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_contract$_IL2LayerZeroDelegation_$4411__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$144__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_int128_t_int128_t_uint256_t_uint256__to_t_int128_t_int128_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, signextend(15, value0))\n mstore(add(headStart, 32), signextend(15, value1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint16(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n value3 := calldataload(add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LzApp: invalid endpoint caller\")\n tail := add(headStart, 96)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LzApp: invalid source sending co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"NonblockingLzApp: caller must be\")\n mstore(add(headStart, 96), \" LzApp\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LzApp: no trusted path record\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n mstore(_1, and(shl(96, value2), not(0xffffffffffffffffffffffff)))\n end := add(_1, 20)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"NonblockingLzApp: no stored mess\")\n mstore(add(headStart, 96), \"age\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"NonblockingLzApp: invalid payloa\")\n mstore(add(headStart, 96), \"d\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), value4)\n }\n function abi_encode_tuple_t_stringliteral_170b524e2f6dce4d59ce169fe07ac17c10010b9aa611a4f22b7dd0fbb2a8548e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"LzApp: invalid minGas\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := 0xffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value3, tail_1)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes(value3, tail_1)\n mstore(add(headStart, 128), sub(tail_2, headStart))\n tail := abi_encode_bytes(value4, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_int128(x, y) -> product\n {\n let x_1 := signextend(15, x)\n let y_1 := signextend(15, y)\n let _1 := 0x7fffffffffffffffffffffffffffffff\n let _2 := sgt(y_1, 0)\n let _3 := sgt(x_1, 0)\n if and(and(_3, _2), gt(x_1, div(_1, y_1))) { panic_error_0x11() }\n let _4 := not(0x7fffffffffffffffffffffffffffffff)\n let _5 := slt(y_1, 0)\n if and(and(_3, _5), slt(y_1, sdiv(_4, x_1))) { panic_error_0x11() }\n let _6 := slt(x_1, 0)\n if and(and(_6, _2), slt(x_1, sdiv(_4, y_1))) { panic_error_0x11() }\n if and(and(_6, _5), slt(x_1, sdiv(_1, y_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_sub_t_int128(x, y) -> diff\n {\n let x_1 := signextend(15, x)\n let y_1 := signextend(15, y)\n let _1 := slt(y_1, 0)\n if and(iszero(_1), slt(x_1, add(not(0x7fffffffffffffffffffffffffffffff), y_1))) { panic_error_0x11() }\n if and(_1, sgt(x_1, add(0x7fffffffffffffffffffffffffffffff, y_1))) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function abi_encode_tuple_t_stringliteral_f02d7085096562c459247bb7f90b7f7b631ea5c1dd55bbef7cbd5a9efb34b219__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"OmniVotingEscrowChild: unknown p\")\n mstore(add(headStart, 96), \"acket type\")\n tail := add(headStart, 128)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"slice_overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"slice_outOfBounds\")\n tail := add(headStart, 96)\n }\n function abi_decode_struct_Point_fromMemory(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x80) { revert(0, 0) }\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x80)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n value := memPtr\n let value_1 := mload(headStart)\n validator_revert_int128(value_1)\n mstore(memPtr, value_1)\n let value_2 := mload(add(headStart, 32))\n validator_revert_int128(value_2)\n mstore(add(memPtr, 32), value_2)\n mstore(add(memPtr, 64), mload(add(headStart, 64)))\n mstore(add(memPtr, 96), mload(add(headStart, 96)))\n }\n function abi_decode_tuple_t_uint16t_address_payablet_uint256t_struct$_Point_$4477_memory_ptrt_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 352) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint16(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := mload(add(headStart, 64))\n value3 := abi_decode_struct_Point_fromMemory(add(headStart, 96), dataEnd)\n value4 := abi_decode_struct_Point_fromMemory(add(headStart, 224), dataEnd)\n }\n function abi_encode_struct_Point(value, pos)\n {\n mstore(pos, signextend(15, mload(value)))\n mstore(add(pos, 0x20), signextend(15, mload(add(value, 0x20))))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n }\n function abi_encode_tuple_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_address_t_struct$_Point_$4477_memory_ptr_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 320)\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n abi_encode_struct_Point(value2, add(headStart, 64))\n abi_encode_struct_Point(value3, add(headStart, 192))\n }\n function abi_decode_tuple_t_uint16t_struct$_Point_$4477_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint16(value)\n value0 := value\n value1 := abi_decode_struct_Point_fromMemory(add(headStart, 32), dataEnd)\n }\n function abi_encode_tuple_t_uint16_t_struct$_Point_$4477_memory_ptr__to_t_uint16_t_struct$_Point_$4477_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, and(value0, 0xffff))\n abi_encode_struct_Point(value1, add(headStart, 32))\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"446":[{"length":32,"start":1234},{"length":32,"start":1643},{"length":32,"start":2234},{"length":32,"start":2371},{"length":32,"start":2749},{"length":32,"start":3879},{"length":32,"start":4969}],"4123":[{"length":32,"start":886},{"length":32,"start":6374},{"length":32,"start":6616}]},"linkReferences":{},"object":"6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea2646970667358221220570e1801cb2ac804d712ad851aeb331dab0e074f86b201032a7cf28a48777cff64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xCBED8B9C GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xF4182ACB EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xF50DDBC7 EQ PUSH2 0x5FD JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x648 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x514 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA6C3D165 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x473 JUMPI DUP1 PUSH4 0xADC63589 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 GT PUSH2 0x164 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x34F JUMPI DUP1 PUSH4 0x74D2495F EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x378EF708 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x208 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x1E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x97A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF1 JUMP JUMPDEST PUSH2 0x9C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x9D1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xA9E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE0 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xB24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0xC5B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x370 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xC6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x1F10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F23 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x398 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x398 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7F JUMP JUMPDEST PUSH2 0xD09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x48E CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0xE19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x50F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0xEAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x520 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x52F CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5C JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0xF9D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x562 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FCE JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x573 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D65 JUMP JUMPDEST PUSH2 0x1265 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E6 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH2 0x12BF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD PUSH1 0x9 SLOAD PUSH2 0x5D5 SWAP3 PUSH1 0xF DUP2 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SWAP2 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF SWAP6 DUP7 SIGNEXTEND DUP2 MSTORE SWAP4 SWAP1 SWAP5 SIGNEXTEND PUSH1 0x20 DUP5 ADD MSTORE SWAP3 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 ADD PUSH2 0x247 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D5 PUSH2 0x618 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E97 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xF DUP3 DUP2 SIGNEXTEND SWAP4 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP4 DIV SWAP1 SIGNEXTEND SWAP2 SWAP1 DUP5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x654 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D0 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x200F JUMP JUMPDEST PUSH2 0x1338 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x703 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x72F SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x77C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x751 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x77C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x75F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x797 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x7BF JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x7B5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x890 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x13E9 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8A1 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x91B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x92A PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0x8ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x7 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH2 0x9BB SWAP1 PUSH2 0x154D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CB DUP3 PUSH2 0x154D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x9F2 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA1E SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA6B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA40 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA6B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA4E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA82 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAA6 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0xAF6 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x890 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xBF8 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND DUP4 MSTORE PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV SWAP1 SIGNEXTEND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x9CB SWAP1 PUSH2 0x154D JUMP JUMPDEST PUSH2 0xC63 PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xC6D PUSH1 0x0 PUSH2 0x1646 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xC88 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCB4 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD2C SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD58 SWAP1 PUSH2 0x2060 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD88 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xA97 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0xE11 SWAP2 SWAP1 PUSH2 0x2108 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xE21 PUSH2 0x14F3 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE36 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x211F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP2 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0xE6B SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1A69 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xEB4 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xF10 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0xF64 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2145 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF92 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFC0 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x1040 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1051 SWAP3 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x10B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10D3 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x209B JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x116B SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x15A5 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x11A2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x217E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11BB PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x1203 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4C7A4170703A20696E76616C6964206D696E476173 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x126D PUSH2 0x14F3 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x128B SWAP1 DUP4 DUP4 PUSH2 0x1AED JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x12C7 PUSH2 0x14F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x132C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x1335 DUP2 PUSH2 0x1646 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x13E0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21B9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x144C GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1411 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x17A3 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0xBF8 JUMPI DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x4 PUSH1 0x0 DUP9 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1486 SWAP2 SWAP1 PUSH2 0x2264 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x14E3 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH2 0x2280 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x1563 SWAP1 TIMESTAMP PUSH2 0x2108 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1572 SWAP2 SWAP1 PUSH2 0x22DE JUMP JUMPDEST DUP3 MLOAD PUSH2 0x157E SWAP2 SWAP1 PUSH2 0x237C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND SLT PUSH2 0x159A JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x159D JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xA SLOAD PUSH2 0xFFFF DUP1 DUP4 AND SWAP2 AND EQ ISZERO PUSH2 0x15CA JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x91B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0xFFFF DUP3 DUP2 AND PUSH3 0x10000 SWAP1 SWAP3 DIV AND EQ ISZERO PUSH2 0x15EB JUMPI PUSH2 0x15C5 DUP6 DUP4 PUSH2 0x1978 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69566F74696E67457363726F774368696C643A20756E6B6E6F776E2070 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x61636B65742074797065 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x16A4 DUP2 PUSH1 0x1F PUSH2 0x23CC JUMP JUMPDEST LT ISZERO PUSH2 0x16E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH2 0x16ED DUP3 DUP5 PUSH2 0x23CC JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1750 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x179A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1789 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1771 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17C8 JUMPI PUSH2 0x17C8 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x17F2 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x1814 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1847 SWAP2 SWAP1 PUSH2 0x245D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 SWAP1 SSTORE PUSH1 0x6 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP8 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP2 DUP4 AND DUP3 MUL OR DUP4 SSTORE DUP9 DUP6 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE PUSH1 0x60 DUP1 DUP11 ADD MLOAD PUSH1 0x2 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE DUP8 MLOAD SWAP4 DUP9 ADD MLOAD SWAP4 DUP3 AND SWAP4 SWAP1 SWAP2 AND MUL SWAP2 SWAP1 SWAP2 OR PUSH1 0x7 SSTORE DUP5 DUP3 ADD MLOAD PUSH1 0x8 SSTORE DUP5 ADD MLOAD PUSH1 0x9 SSTORE MLOAD PUSH4 0x6F8985FF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP PUSH32 0x0 AND SWAP2 POP PUSH4 0xDF130BFE SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x193F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0xAE0E70D8538C5776F9975183D965B1722A0E8FA0256C8301CB707F64A9821F83 DUP7 DUP6 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x14E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x198E SWAP2 SWAP1 PUSH2 0x2546 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP2 AND OR PUSH1 0x7 SSTORE PUSH1 0x40 DUP1 DUP3 ADD MLOAD PUSH1 0x8 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x9 SSTORE DUP1 MLOAD PUSH4 0x96345FB5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 POP PUSH4 0x96345FB5 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9048DA34D2DAC99755410B6E83E1EAAB692909FF964F5BC920756AB49C73DF9A DUP4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xE9F SWAP3 SWAP2 SWAP1 PUSH2 0x257C JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1A75 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1A97 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1AB0 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1AC2 JUMP JUMPDEST POP PUSH2 0x1AE9 SWAP3 SWAP2 POP PUSH2 0x1B61 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x1AF9 SWAP1 PUSH2 0x2060 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1B1B JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1B34 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1ADD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1ADD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1ADD JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1B46 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1AE9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1B62 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1BAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1BC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x1C0E DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1C2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C36 DUP11 DUP4 DUP12 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x1C4A PUSH1 0x40 DUP11 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1C60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6D DUP10 DUP3 DUP11 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1CDA JUMPI PUSH2 0x1CDA PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0xF SIGNEXTEND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1D25 JUMPI PUSH2 0x1D25 PUSH2 0x1C9C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD PUSH2 0x1D33 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1D43 DUP2 PUSH2 0x1CE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 SWAP3 DUP4 ADD CALLDATALOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1D7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1D85 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1DA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DAC DUP7 DUP3 DUP8 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1DD2 JUMPI PUSH2 0x1DD2 PUSH2 0x1C9C JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1E00 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1E1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x1E2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E3F PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST PUSH2 0x1CB2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1E54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x1E79 PUSH1 0x40 DUP6 ADD PUSH2 0x1BCE JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA97 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ECF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1EDE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EFC DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1F41 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1F51 DUP2 PUSH2 0x1B76 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x1F7F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x1F8F DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1FB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FBD DUP9 DUP3 DUP10 ADD PUSH2 0x1B86 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1FE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1FEE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1FFE DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2025 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2030 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2040 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2050 DUP2 PUSH2 0x1E82 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2074 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x13E0 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x211A JUMPI PUSH2 0x211A PUSH2 0x20F2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2173 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x20AB JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x219C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x20AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x21E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x21F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2200 PUSH2 0x1E3A DUP3 PUSH2 0x1DB9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E0 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB4 JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2243 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2173 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2276 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x229D PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x1EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x22BE DUP2 DUP7 PUSH2 0x1EE4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x22D2 DUP2 DUP6 PUSH2 0x1EE4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB PUSH1 0x0 DUP3 SGT PUSH1 0x0 DUP5 SGT DUP4 DUP4 DIV DUP6 GT DUP3 DUP3 AND AND ISZERO PUSH2 0x230E JUMPI PUSH2 0x230E PUSH2 0x20F2 JUMP JUMPDEST PUSH16 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x0 DUP6 SLT DUP3 DUP2 AND DUP8 DUP4 SDIV DUP8 SLT AND ISZERO PUSH2 0x233A JUMPI PUSH2 0x233A PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x0 DUP8 SLT SWAP3 POP DUP6 DUP3 SDIV DUP8 SLT DUP5 DUP5 AND AND ISZERO PUSH2 0x2356 JUMPI PUSH2 0x2356 PUSH2 0x20F2 JUMP JUMPDEST DUP6 DUP6 SDIV DUP8 SLT DUP2 DUP5 AND AND ISZERO PUSH2 0x236C JUMPI PUSH2 0x236C PUSH2 0x20F2 JUMP JUMPDEST POP POP POP SWAP3 SWAP1 SWAP2 MUL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xF SIGNEXTEND DUP4 PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 SLT DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB NOT ADD DUP4 SLT DUP2 ISZERO AND ISZERO PUSH2 0x23A7 JUMPI PUSH2 0x23A7 PUSH2 0x20F2 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x7F SHL SUB ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x23C2 JUMPI PUSH2 0x23C2 PUSH2 0x20F2 JUMP JUMPDEST POP SWAP1 SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x23DF JUMPI PUSH2 0x23DF PUSH2 0x20F2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2418 JUMPI PUSH2 0x2418 PUSH2 0x1C9C JUMP JUMPDEST DUP1 PUSH1 0x40 MSTORE POP DUP1 SWAP2 POP DUP3 MLOAD PUSH2 0x242B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x243B DUP2 PUSH2 0x1CE2 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x160 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH2 0x2481 DUP2 PUSH2 0x1B76 JUMP JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD SWAP1 SWAP6 POP PUSH2 0x2492 DUP2 PUSH2 0x1E82 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD SWAP1 SWAP5 POP SWAP3 POP PUSH2 0x24A9 DUP8 PUSH1 0x60 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP2 POP PUSH2 0x24B8 DUP8 PUSH1 0xE0 DUP9 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x140 DUP2 ADD PUSH2 0x2513 PUSH1 0x40 DUP4 ADD DUP6 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST DUP3 MLOAD PUSH1 0xF SWAP1 DUP2 SIGNEXTEND PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SIGNEXTEND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x13E0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xA0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x2564 DUP2 PUSH2 0x1B76 JUMP JUMPDEST SWAP2 POP PUSH2 0x2573 DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x23E4 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0xA97 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0xF SIGNEXTEND DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0xE XOR ADD 0xCB 0x2A 0xC8 DIV 0xD7 SLT 0xAD DUP6 BYTE 0xEB CALLER SAR 0xAB 0xE SMOD 0x4F DUP7 0xB2 ADD SUB 0x2A PUSH29 0xF28A48777CFF64736F6C634300080A0033000000000000000000000000 ","sourceMap":"255:3271:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:753:4;;;;;;;;;;-1:-1:-1;1035:753:4;;;;;:::i;:::-;;:::i;:::-;;3834:121;;;;;;;;;;-1:-1:-1;3834:121:4;;;;;:::i;:::-;;:::i;3961:127::-;;;;;;;;;;-1:-1:-1;3961:127:4;;;;;:::i;:::-;;:::i;2967:106:15:-;;;;;;;;;;;;;:::i;:::-;;;1988:25:25;;;1976:2;1961:18;2967:106:15;;;;;;;;3107:133;;;;;;;;;;-1:-1:-1;3107:133:15;;;;;:::i;:::-;;:::i;5744:247:4:-;;;;;;;;;;-1:-1:-1;5744:247:4;;;;;:::i;:::-;;:::i;:::-;;;4052:14:25;;4045:22;4027:41;;4015:2;4000:18;5744:247:4;3887:187:25;4094:176:4;;;;;;;;;;-1:-1:-1;4094:176:4;;;;;:::i;:::-;;:::i;617:85:5:-;;;;;;;;;;-1:-1:-1;617:85:5;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1577:342;;;;;;;;;;-1:-1:-1;1577:342:5;;;;;:::i;:::-;;:::i;2843:118:15:-;;;;;;;;;;-1:-1:-1;2843:118:15;;;;;:::i;:::-;;:::i;1831:101:9:-;;;;;;;;;;;;;:::i;681:54:15:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5916:32:25;;;5898:51;;5886:2;5871:18;681:54:15;5721:234:25;520:51:4;;;;;;;;;;-1:-1:-1;520:51:4;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;577:65::-;;;;;;;;;;-1:-1:-1;577:65:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:9;;;;;;;;;;-1:-1:-1;1247:7:9;1273:6;-1:-1:-1;;;;;1273:6:9;1201:85;;648:23:4;;;;;;;;;;-1:-1:-1;648:23:4;;;;-1:-1:-1;;;;;648:23:4;;;4898:326;;;;;;;;;;-1:-1:-1;4898:326:4;;;;;:::i;:::-;;:::i;4614:278::-;;;;;;;;;;-1:-1:-1;4614:278:4;;;;;:::i;:::-;;:::i;312:43:15:-;;;;;;;;;;-1:-1:-1;312:43:15;;;;;:::i;:::-;;;;;;;;;;;;;;468:46:4;;;;;;;;;;;;;;;5230:133;;;;;;;;;;-1:-1:-1;5230:133:4;;;;;:::i;:::-;;:::i;3626:202::-;;;;;;;;;;-1:-1:-1;3626:202:4;;;;;:::i;:::-;;:::i;2100:757:5:-;;;;;;:::i;:::-;;:::i;5369:280:4:-;;;;;;;;;;-1:-1:-1;5369:280:4;;;;;:::i;:::-;;:::i;4413:195::-;;;;;;;;;;-1:-1:-1;4413:195:4;;;;;:::i;:::-;;:::i;2081:198:9:-;;;;;;;;;;-1:-1:-1;2081:198:9;;;;;:::i;:::-;;:::i;465:43:15:-;;;;;;;;;;-1:-1:-1;465:43:15;;;;;;;;;;;;;-1:-1:-1;;;465:43:15;;;;;;;;;;;;9006:2:25;8995:22;;;8977:41;;9054:22;;;;9049:2;9034:18;;9027:50;9093:18;;;9086:34;9151:2;9136:18;;9129:34;;;;8964:3;8949:19;465:43:15;8750:419:25;386:57:15;;;;;;;;;;-1:-1:-1;386:57:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;386:57:15;;;;;;;;;3358:209:4;;;;;;;;;;-1:-1:-1;3358:209:4;;;;;:::i;:::-;;:::i;1035:753::-;719:10:13;1273::4;-1:-1:-1;;;;;1249:35:4;;1241:78;;;;-1:-1:-1;;;1241:78:4;;9975:2:25;1241:78:4;;;9957:21:25;10014:2;9994:18;;;9987:30;10053:32;10033:18;;;10026:60;10103:18;;1241:78:4;;;;;;;;;1359:32;;;1330:26;1359:32;;;:19;:32;;;;;1330:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:13;:20;1541:11;;:18;;:42;:70;;;;;1610:1;1587:13;:20;:24;1541:70;:124;;;;-1:-1:-1;1641:24:4;;;;;;1615:22;;;;1625:11;;;;1615:22;:::i;:::-;;;;;;;;:50;1541:124;1533:175;;;;-1:-1:-1;;;1533:175:4;;10995:2:25;1533:175:4;;;10977:21:25;11034:2;11014:18;;;11007:30;11073:34;11053:18;;;11046:62;-1:-1:-1;;;11124:18:25;;;11117:36;11170:19;;1533:175:4;10793:402:25;1533:175:4;1719:62;1738:11;1751;;1719:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1719:62:4;;;;;;;;;;;;;;;;;;;;;;1764:6;;-1:-1:-1;1719:62:4;-1:-1:-1;1772:8:4;;;;;;1719:62;;1772:8;;;;1719:62;;;;;;;;;-1:-1:-1;1719:18:4;;-1:-1:-1;;;1719:62:4:i;:::-;1166:622;1035:753;;;;;;:::o;3834:121::-;1094:13:9;:11;:13::i;:::-;3913:35:4::1;::::0;-1:-1:-1;;;3913:35:4;;11374:6:25;11362:19;;3913:35:4::1;::::0;::::1;11344:38:25::0;3913:10:4::1;-1:-1:-1::0;;;;;3913:25:4::1;::::0;::::1;::::0;11317:18:25;;3913:35:4::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3834:121:::0;:::o;3961:127::-;1094:13:9;:11;:13::i;:::-;4043:38:4::1;::::0;-1:-1:-1;;;4043:38:4;;11374:6:25;11362:19;;4043:38:4::1;::::0;::::1;11344::25::0;4043:10:4::1;-1:-1:-1::0;;;;;4043:28:4::1;::::0;::::1;::::0;11317:18:25;;4043:38:4::1;11200:188:25::0;2967:106:15;3034:32;;;;;;;;3049:16;3034:32;;;;;;;-1:-1:-1;;;3034:32:15;;;;;;;;;;;;;;;;;;;;;;;;3011:4;;3034:32;;:14;:32::i;:::-;3027:39;;2967:106;:::o;3107:133::-;3188:4;3211:22;3226:6;3211:14;:22::i;:::-;3204:29;3107:133;-1:-1:-1;;3107:133:15:o;5744:247:4:-;5885:32;;;5840:4;5885:32;;;:19;:32;;;;;5856:61;;5840:4;;5885:32;5856:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5972:11;;5962:22;;;;;;;:::i;:::-;;;;;;;;5944:13;5934:24;;;;;;:50;5927:57;;;5744:247;;;;;;:::o;4094:176::-;1094:13:9;:11;:13::i;:::-;4208:55:4::1;::::0;-1:-1:-1;;;4208:55:4;;-1:-1:-1;;;;;4208:10:4::1;:29;::::0;::::1;::::0;:55:::1;::::0;4238:11;;4251;;;;4208:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;1577:342:5::0;719:10:13;1789:4:5;1765:29;1757:80;;;;-1:-1:-1;;;1757:80:5;;12197:2:25;1757:80:5;;;12179:21:25;12236:2;12216:18;;;12209:30;12275:34;12255:18;;;12248:62;-1:-1:-1;;;12326:18:25;;;12319:36;12372:19;;1757:80:5;11995:402:25;1757:80:5;1847:65;1869:11;1882;;1847:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1847:65:5;;;;;;;;;;;;;;;;;;;;;;1895:6;;-1:-1:-1;1847:65:5;-1:-1:-1;1903:8:5;;;;;;1847:65;;1903:8;;;;1847:65;;;;;;;;;-1:-1:-1;1847:21:5;;-1:-1:-1;;;1847:65:5:i;:::-;1577:342;;;;;;:::o;2843:118:15:-;-1:-1:-1;;;;;2936:17:15;;2898:4;2936:17;;;:10;:17;;;;;;;;2921:33;;;;;;;;;;;;;;;-1:-1:-1;;;2921:33:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:33::i;1831:101:9:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;520:51:4:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4898:326::-;5021:35;;;5001:17;5021:35;;;:19;:35;;;;;5001:55;;4977:12;;5001:17;5021:35;5001:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5074:4;:11;5089:1;5074:16;;5066:58;;;;-1:-1:-1;;;5066:58:4;;12604:2:25;5066:58:4;;;12586:21:25;12643:2;12623:18;;;12616:30;12682:31;12662:18;;;12655:59;12731:18;;5066:58:4;12402:353:25;5066:58:4;5141:31;5152:1;5169:2;5155:4;:11;:16;;;;:::i;:::-;5141:4;;:31;:10;:31::i;4614:278::-;1094:13:9;:11;:13::i;:::-;4785:14:4::1;;4809:4;4768:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4768:47:4;;::::1;::::0;;;;;;4730:35:::1;::::0;::::1;;::::0;;;:19:::1;4768:47;4730:35:::0;;;;;;:85;;::::1;::::0;:35;;:85;;::::1;::::0;::::1;:::i;:::-;;4830:55;4854:14;4870;;4830:55;;;;;;;;:::i;:::-;;;;;;;;4614:278:::0;;;:::o;5230:133::-;1094:13:9;:11;:13::i;:::-;5299:8:4::1;:20:::0;;-1:-1:-1;;;;;;5299:20:4::1;-1:-1:-1::0;;;;;5299:20:4;::::1;::::0;;::::1;::::0;;;5334:22:::1;::::0;5898:51:25;;;5334:22:4::1;::::0;5886:2:25;5871:18;5334:22:4::1;;;;;;;5230:133:::0;:::o;3626:202::-;1094:13:9;:11;:13::i;:::-;3759:62:4::1;::::0;-1:-1:-1;;;3759:62:4;;-1:-1:-1;;;;;3759:10:4::1;:20;::::0;::::1;::::0;:62:::1;::::0;3780:8;;3790;;3800:11;;3813:7;;;;3759:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3626:202:::0;;;;;:::o;2100:757:5:-;2309:27;;;2287:19;2309:27;;;:14;:27;;;;;;:40;;;;2337:11;;;;2309:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2309:48:5;;;;;;;;;;;;-1:-1:-1;2309:48:5;2367:73;;;;-1:-1:-1;;;2367:73:5;;14114:2:25;2367:73:5;;;14096:21:25;14153:2;14133:18;;;14126:30;14192:34;14172:18;;;14165:62;-1:-1:-1;;;14243:18:25;;;14236:33;14286:19;;2367:73:5;13912:399:25;2367:73:5;2481:11;2468:8;;2458:19;;;;;;;:::i;:::-;;;;;;;;:34;2450:80;;;;-1:-1:-1;;;2450:80:5;;14518:2:25;2450:80:5;;;14500:21:25;14557:2;14537:18;;;14530:30;14596:34;14576:18;;;14569:62;-1:-1:-1;;;14647:18:25;;;14640:31;14688:19;;2450:80:5;14316:397:25;2450:80:5;2576:27;;;2635:1;2576:27;;;:14;:27;;;;;;:40;;;;2604:11;;;;2576:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2576:48:5;;;;;;;;;;;;:61;;;;2704:65;;;;;;;;;;;;;;;;;;;2726:11;;2739;;2704:65;;;;;;2739:11;2704:65;;2739:11;2704:65;;;;;;;;;-1:-1:-1;;2704:65:5;;;;;;;;;;;;;;;;;;;;;;2752:6;;-1:-1:-1;2704:65:5;-1:-1:-1;2760:8:5;;;;;;2704:65;;2760:8;;;;2704:65;;;;;;;;;-1:-1:-1;2704:21:5;;-1:-1:-1;;;2704:65:5:i;:::-;2784:66;2804:11;2817;;2830:6;2838:11;2784:66;;;;;;;;;;:::i;:::-;;;;;;;;2233:624;2100:757;;;;;;:::o;5369:280:4:-;1094:13:9;:11;:13::i;:::-;5492:1:4::1;5482:7;:11;5474:45;;;::::0;-1:-1:-1;;;5474:45:4;;15418:2:25;5474:45:4::1;::::0;::::1;15400:21:25::0;15457:2;15437:18;;;15430:30;-1:-1:-1;;;15476:18:25;;;15469:51;15537:18;;5474:45:4::1;15216:345:25::0;5474:45:4::1;5529:28;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;;;:51;;;5595:47;;15789:34:25;;;15839:18;;15832:43;;;;15891:18;;;15884:34;;;5595:47:4::1;::::0;15752:2:25;15737:18;5595:47:4::1;15566:358:25::0;4413:195:4;1094:13:9;:11;:13::i;:::-;4510:32:4::1;::::0;::::1;;::::0;;;:19:::1;:32;::::0;;;;:40:::1;::::0;4545:5;;4510:40:::1;:::i;:::-;;4565:36;4582:11;4595:5;;4565:36;;;;;;;;:::i;2081:198:9:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:9;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:9;;16131:2:25;2161:73:9::1;::::0;::::1;16113:21:25::0;16170:2;16150:18;;;16143:30;16209:34;16189:18;;;16182:62;-1:-1:-1;;;16260:18:25;;;16253:36;16306:19;;2161:73:9::1;15929:402:25::0;2161:73:9::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3358:209:4:-;3492:68;;-1:-1:-1;;;3492:68:4;;16573:6:25;16606:15;;;3492:68:4;;;16588:34:25;16658:15;;16638:18;;;16631:43;3541:4:4;16690:18:25;;;16683:60;16759:18;;;16752:34;;;3461:12:4;;3492:10;-1:-1:-1;;;;;3492:20:4;;;;16535:19:25;;3492:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3492:68:4;;;;;;;;;;;;:::i;:::-;3485:75;3358:209;-1:-1:-1;;;;;3358:209:4:o;980:591:5:-;1129:12;1143:19;1166:153;1200:9;1211:3;1239:34;;;1275:11;1288;1301:6;1309:8;1216:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1216:102:5;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:102:5;-1:-1:-1;;;;;;1216:102:5;;;;;;;;;;1174:4;;1166:153;;:33;:153::i;:::-;1128:191;;;;1377:7;1372:193;;1461:8;1451:19;;;;;;1400:14;:27;1415:11;1400:27;;;;;;;;;;;;;;;1428:11;1400:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1400:48:5;;;;;;;;;:70;;;;1489:65;;;;1503:11;;1516;;1441:6;;1537:8;;1547:6;;1489:65;:::i;:::-;;;;;;;;1118:453;;980:591;;;;:::o;1359:130:9:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:9;719:10:13;1422:23:9;1414:68;;;;-1:-1:-1;;;1414:68:9;;19198:2:25;1414:68:9;;;19180:21:25;;;19217:18;;;19210:30;19276:34;19256:18;;;19249:62;19328:18;;1414:68:9;18996:356:25;3246:278:15;3459:4;;;;3328;;3375:6;;3328:4;;3441:22;;:15;:22;:::i;:::-;3416:1;:7;;;:49;;;;:::i;:::-;3406:6;;:60;;;;:::i;:::-;3392:74;;3490:1;3483:4;:8;;;:34;;3511:4;-1:-1:-1;;;;;3498:19:15;3483:34;;;3494:1;3483:34;3476:41;3246:278;-1:-1:-1;;;;3246:278:15:o;1235:609::-;1516:2;1502:17;;1496:24;1558:7;;;1544:21;;;1558:7;;1544:21;1540:298;;;1581:57;1616:11;1629:8;1581:34;:57::i;:::-;1540:298;;;1673:5;;;1659:19;;;1673:5;;;;;1659:19;1655:183;;;1694:50;1722:11;1735:8;1694:27;:50::i;1655:183::-;1775:52;;-1:-1:-1;;;1775:52:15;;20665:2:25;1775:52:15;;;20647:21:25;20704:2;20684:18;;;20677:30;20743:34;20723:18;;;20716:62;-1:-1:-1;;;20794:18:25;;;20787:40;20844:19;;1775:52:15;20463:406:25;2433:187:9;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:9;;;-1:-1:-1;;;;;;2541:17:9;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;8865:2712:7:-;8999:12;9051:7;9035:12;9051:7;9045:2;9035:12;:::i;:::-;:23;;9027:50;;;;-1:-1:-1;;;9027:50:7;;21209:2:25;9027:50:7;;;21191:21:25;21248:2;21228:18;;;21221:30;-1:-1:-1;;;21267:18:25;;;21260:44;21321:18;;9027:50:7;21007:338:25;9027:50:7;9112:16;9121:7;9112:6;:16;:::i;:::-;9095:6;:13;:33;;9087:63;;;;-1:-1:-1;;;9087:63:7;;21552:2:25;9087:63:7;;;21534:21:25;21591:2;21571:18;;;21564:30;-1:-1:-1;;;21610:18:25;;;21603:47;21667:18;;9087:63:7;21350:341:25;9087:63:7;9161:22;9224:15;;9252:1895;;;;11288:4;11282:11;11269:24;;11466:1;11455:9;11448:20;11514:4;11503:9;11499:20;11493:4;11486:34;9217:2317;;9252:1895;9426:4;9420:11;9407:24;;10053:2;10044:7;10040:16;10419:9;10412:17;10406:4;10402:28;10390:9;10379;10375:25;10371:60;10467:7;10463:2;10459:16;10711:6;10697:9;10690:17;10684:4;10680:28;10668:9;10660:6;10656:22;10652:57;10648:70;10493:417;10744:3;10740:2;10737:11;10493:417;;;10882:9;;10871:21;;10785:4;10777:13;;;;10817;10493:417;;;-1:-1:-1;;10928:26:7;;;11128:2;11111:11;-1:-1:-1;;11107:25:7;11101:4;11094:39;-1:-1:-1;9217:2317:7;-1:-1:-1;11561:9:7;8865:2712;-1:-1:-1;;;;8865:2712:7:o;1118:1240:8:-;1275:4;1281:12;1341:15;1366:13;1389:24;1426:8;1416:19;;-1:-1:-1;;;;;1416:19:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1416:19:8;;1389:46;;1904:1;1879;1846:9;1840:16;1812:4;1801:9;1797:20;1767:1;1733:7;1708:4;1690:239;1678:251;;1992:16;1981:27;;2036:8;2027:7;2024:21;2021:76;;;2075:8;2064:19;;2021:76;2178:7;2165:11;2158:28;2294:7;2291:1;2284:4;2271:11;2267:22;2252:50;2329:8;;;;-1:-1:-1;1118:1240:8;-1:-1:-1;;;;;;1118:1240:8:o;1850:613:15:-;1959:20;1981:15;1998:37;2037:44;2096:8;2085:87;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2182:25:15;;;;;;;:11;:25;;;;;;;;:38;;;2230:10;:24;;;;;;:37;;;;;;-1:-1:-1;;;;;2230:37:15;;;-1:-1:-1;;;2230:37:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:36;;;;;;;;;;;;;;;;;;:16;:36;;;;;;;;;;;;2324:43;-1:-1:-1;;;2324:43:15;;;;;5898:51:25;;;;2182:25:15;;-1:-1:-1;2182:38:15;;-1:-1:-1;2230:37:15;;-1:-1:-1;2277:36:15;-1:-1:-1;2324:14:15;:29;;-1:-1:-1;2324:29:15;;5871:18:25;;2324:43:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2382:74;2399:11;2412:12;2426:10;2438:17;2382:74;;;;;;;;;:::i;2469:368::-;2571:44;2630:8;2619:51;;;;;;;;;;;;:::i;:::-;2680:36;;;;;;-1:-1:-1;;;;;2680:36:15;;;-1:-1:-1;;;2680:36:15;;;;:16;:36;;;;;;;;;;;;;;2727;;-1:-1:-1;;;2727:36:15;;;;2568:102;;-1:-1:-1;;;;;;2727:14:15;:34;;-1:-1:-1;2727:34:15;;:36;;;;;2680;;2727;;;;;;;2680;2727:34;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2778:52;2799:11;2812:17;2778:52;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:117:25;99:6;92:5;88:18;81:5;78:29;68:57;;121:1;118;111:12;136:347;187:8;197:6;251:3;244:4;236:6;232:17;228:27;218:55;;269:1;266;259:12;218:55;-1:-1:-1;292:20:25;;-1:-1:-1;;;;;324:30:25;;321:50;;;367:1;364;357:12;321:50;404:4;396:6;392:17;380:29;;456:3;449:4;440:6;432;428:19;424:30;421:39;418:59;;;473:1;470;463:12;418:59;136:347;;;;;:::o;488:171::-;555:20;;-1:-1:-1;;;;;604:30:25;;594:41;;584:69;;649:1;646;639:12;584:69;488:171;;;:::o;664:923::-;770:6;778;786;794;802;810;863:3;851:9;842:7;838:23;834:33;831:53;;;880:1;877;870:12;831:53;919:9;906:23;938:30;962:5;938:30;:::i;:::-;987:5;-1:-1:-1;1043:2:25;1028:18;;1015:32;-1:-1:-1;;;;;1096:14:25;;;1093:34;;;1123:1;1120;1113:12;1093:34;1162:58;1212:7;1203:6;1192:9;1188:22;1162:58;:::i;:::-;1239:8;;-1:-1:-1;1136:84:25;-1:-1:-1;1136:84:25;;-1:-1:-1;1293:37:25;1326:2;1311:18;;1293:37;:::i;:::-;1283:47;;1383:2;1372:9;1368:18;1355:32;1339:48;;1412:2;1402:8;1399:16;1396:36;;;1428:1;1425;1418:12;1396:36;;1467:60;1519:7;1508:8;1497:9;1493:24;1467:60;:::i;:::-;664:923;;;;-1:-1:-1;664:923:25;;-1:-1:-1;664:923:25;;1546:8;;664:923;-1:-1:-1;;;664:923:25:o;1592:245::-;1650:6;1703:2;1691:9;1682:7;1678:23;1674:32;1671:52;;;1719:1;1716;1709:12;1671:52;1758:9;1745:23;1777:30;1801:5;1777:30;:::i;2024:127::-;2085:10;2080:3;2076:20;2073:1;2066:31;2116:4;2113:1;2106:15;2140:4;2137:1;2130:15;2156:275;2227:2;2221:9;2292:2;2273:13;;-1:-1:-1;;2269:27:25;2257:40;;-1:-1:-1;;;;;2312:34:25;;2348:22;;;2309:62;2306:88;;;2374:18;;:::i;:::-;2410:2;2403:22;2156:275;;-1:-1:-1;2156:275:25:o;2436:120::-;2525:5;2521:2;2510:21;2503:5;2500:32;2490:60;;2546:1;2543;2536:12;2561:774;2643:6;2696:3;2684:9;2675:7;2671:23;2667:33;2664:53;;;2713:1;2710;2703:12;2664:53;2746:2;2740:9;2788:3;2780:6;2776:16;2858:6;2846:10;2843:22;-1:-1:-1;;;;;2810:10:25;2807:34;2804:62;2801:88;;;2869:18;;:::i;:::-;2905:2;2898:22;2942:23;;2974:30;2942:23;2974:30;:::i;:::-;3013:21;;3086:2;3071:18;;3058:32;3099;3058;3099;:::i;:::-;3159:2;3147:15;;3140:32;3233:2;3218:18;;;3205:32;3188:15;;;3181:57;3299:2;3284:18;;;3271:32;3254:15;;;3247:57;;;;-1:-1:-1;3151:6:25;2561:774;-1:-1:-1;2561:774:25:o;3340:542::-;3418:6;3426;3434;3487:2;3475:9;3466:7;3462:23;3458:32;3455:52;;;3503:1;3500;3493:12;3455:52;3542:9;3529:23;3561:30;3585:5;3561:30;:::i;:::-;3610:5;-1:-1:-1;3666:2:25;3651:18;;3638:32;-1:-1:-1;;;;;3682:30:25;;3679:50;;;3725:1;3722;3715:12;3679:50;3764:58;3814:7;3805:6;3794:9;3790:22;3764:58;:::i;:::-;3340:542;;3841:8;;-1:-1:-1;3738:84:25;;-1:-1:-1;;;;3340:542:25:o;4079:186::-;4127:4;-1:-1:-1;;;;;4152:6:25;4149:30;4146:56;;;4182:18;;:::i;:::-;-1:-1:-1;4248:2:25;4227:15;-1:-1:-1;;4223:29:25;4254:4;4219:40;;4079:186::o;4270:876::-;4354:6;4362;4370;4423:2;4411:9;4402:7;4398:23;4394:32;4391:52;;;4439:1;4436;4429:12;4391:52;4478:9;4465:23;4497:30;4521:5;4497:30;:::i;:::-;4546:5;-1:-1:-1;4602:2:25;4587:18;;4574:32;-1:-1:-1;;;;;4618:30:25;;4615:50;;;4661:1;4658;4651:12;4615:50;4684:22;;4737:4;4729:13;;4725:27;-1:-1:-1;4715:55:25;;4766:1;4763;4756:12;4715:55;4802:2;4789:16;4827:48;4843:31;4871:2;4843:31;:::i;:::-;4827:48;:::i;:::-;4898:2;4891:5;4884:17;4938:7;4933:2;4928;4924;4920:11;4916:20;4913:33;4910:53;;;4959:1;4956;4949:12;4910:53;5014:2;5009;5005;5001:11;4996:2;4989:5;4985:14;4972:45;5058:1;5053:2;5048;5041:5;5037:14;5033:23;5026:34;5079:5;5069:15;;;;;5103:37;5136:2;5125:9;5121:18;5103:37;:::i;:::-;5093:47;;4270:876;;;;;:::o;5333:131::-;-1:-1:-1;;;;;5408:31:25;;5398:42;;5388:70;;5454:1;5451;5444:12;5469:247;5528:6;5581:2;5569:9;5560:7;5556:23;5552:32;5549:52;;;5597:1;5594;5587:12;5549:52;5636:9;5623:23;5655:31;5680:5;5655:31;:::i;5960:258::-;6032:1;6042:113;6056:6;6053:1;6050:13;6042:113;;;6132:11;;;6126:18;6113:11;;;6106:39;6078:2;6071:10;6042:113;;;6173:6;6170:1;6167:13;6164:48;;;6208:1;6199:6;6194:3;6190:16;6183:27;6164:48;;5960:258;;;:::o;6223:257::-;6264:3;6302:5;6296:12;6329:6;6324:3;6317:19;6345:63;6401:6;6394:4;6389:3;6385:14;6378:4;6371:5;6367:16;6345:63;:::i;:::-;6462:2;6441:15;-1:-1:-1;;6437:29:25;6428:39;;;;6469:4;6424:50;;6223:257;-1:-1:-1;;6223:257:25:o;6485:217::-;6632:2;6621:9;6614:21;6595:4;6652:44;6692:2;6681:9;6677:18;6669:6;6652:44;:::i;6707:384::-;6773:6;6781;6834:2;6822:9;6813:7;6809:23;6805:32;6802:52;;;6850:1;6847;6840:12;6802:52;6889:9;6876:23;6908:30;6932:5;6908:30;:::i;:::-;6957:5;-1:-1:-1;7014:2:25;6999:18;;6986:32;7027;6986;7027;:::i;:::-;7078:7;7068:17;;;6707:384;;;;;:::o;7538:750::-;7633:6;7641;7649;7657;7665;7718:3;7706:9;7697:7;7693:23;7689:33;7686:53;;;7735:1;7732;7725:12;7686:53;7774:9;7761:23;7793:30;7817:5;7793:30;:::i;:::-;7842:5;-1:-1:-1;7899:2:25;7884:18;;7871:32;7912;7871;7912;:::i;:::-;7963:7;-1:-1:-1;8017:2:25;8002:18;;7989:32;;-1:-1:-1;8072:2:25;8057:18;;8044:32;-1:-1:-1;;;;;8088:30:25;;8085:50;;;8131:1;8128;8121:12;8085:50;8170:58;8220:7;8211:6;8200:9;8196:22;8170:58;:::i;:::-;7538:750;;;;-1:-1:-1;7538:750:25;;-1:-1:-1;8247:8:25;;8144:84;7538:750;-1:-1:-1;;;7538:750:25:o;8293:452::-;8368:6;8376;8384;8437:2;8425:9;8416:7;8412:23;8408:32;8405:52;;;8453:1;8450;8443:12;8405:52;8492:9;8479:23;8511:30;8535:5;8511:30;:::i;:::-;8560:5;-1:-1:-1;8617:2:25;8602:18;;8589:32;8630;8589;8630;:::i;:::-;8293:452;;8681:7;;-1:-1:-1;;;8735:2:25;8720:18;;;;8707:32;;8293:452::o;9174:594::-;9258:6;9266;9274;9282;9335:3;9323:9;9314:7;9310:23;9306:33;9303:53;;;9352:1;9349;9342:12;9303:53;9391:9;9378:23;9410:30;9434:5;9410:30;:::i;:::-;9459:5;-1:-1:-1;9516:2:25;9501:18;;9488:32;9529;9488;9529;:::i;:::-;9580:7;-1:-1:-1;9639:2:25;9624:18;;9611:32;9652:33;9611:32;9652:33;:::i;:::-;9174:594;;;;-1:-1:-1;9704:7:25;;9758:2;9743:18;9730:32;;-1:-1:-1;;9174:594:25:o;10132:380::-;10211:1;10207:12;;;;10254;;;10275:61;;10329:4;10321:6;10317:17;10307:27;;10275:61;10382:2;10374:6;10371:14;10351:18;10348:38;10345:161;;;10428:10;10423:3;10419:20;10416:1;10409:31;10463:4;10460:1;10453:15;10491:4;10488:1;10481:15;10345:161;;10132:380;;;:::o;10517:271::-;10700:6;10692;10687:3;10674:33;10656:3;10726:16;;10751:13;;;10726:16;10517:271;-1:-1:-1;10517:271:25:o;11393:266::-;11481:6;11476:3;11469:19;11533:6;11526:5;11519:4;11514:3;11510:14;11497:43;-1:-1:-1;11585:1:25;11560:16;;;11578:4;11556:27;;;11549:38;;;;11641:2;11620:15;;;-1:-1:-1;;11616:29:25;11607:39;;;11603:50;;11393:266::o;11664:326::-;11859:6;11851;11847:19;11836:9;11829:38;11903:2;11898;11887:9;11883:18;11876:30;11810:4;11923:61;11980:2;11969:9;11965:18;11957:6;11949;11923:61;:::i;12760:127::-;12821:10;12816:3;12812:20;12809:1;12802:31;12852:4;12849:1;12842:15;12876:4;12873:1;12866:15;12892:125;12932:4;12960:1;12957;12954:8;12951:34;;;12965:18;;:::i;:::-;-1:-1:-1;13002:9:25;;12892:125::o;13022:382::-;13233:6;13225;13220:3;13207:33;13325:2;13321:15;;;;-1:-1:-1;;13317:53:25;13259:16;;13306:65;;;13395:2;13387:11;;13022:382;-1:-1:-1;13022:382:25:o;13409:498::-;13609:4;13638:6;13683:2;13675:6;13671:15;13660:9;13653:34;13735:2;13727:6;13723:15;13718:2;13707:9;13703:18;13696:43;;13775:6;13770:2;13759:9;13755:18;13748:34;13818:3;13813:2;13802:9;13798:18;13791:31;13839:62;13896:3;13885:9;13881:19;13873:6;13865;13839:62;:::i;:::-;13831:70;13409:498;-1:-1:-1;;;;;;;13409:498:25:o;14718:493::-;14967:6;14959;14955:19;14944:9;14937:38;15011:3;15006:2;14995:9;14991:18;14984:31;14918:4;15032:62;15089:3;15078:9;15074:19;15066:6;15058;15032:62;:::i;:::-;-1:-1:-1;;;;;15130:31:25;;;;15125:2;15110:18;;15103:59;-1:-1:-1;15193:2:25;15178:18;15171:34;15024:70;14718:493;-1:-1:-1;;;14718:493:25:o;16797:634::-;16876:6;16929:2;16917:9;16908:7;16904:23;16900:32;16897:52;;;16945:1;16942;16935:12;16897:52;16978:9;16972:16;-1:-1:-1;;;;;17003:6:25;17000:30;16997:50;;;17043:1;17040;17033:12;16997:50;17066:22;;17119:4;17111:13;;17107:27;-1:-1:-1;17097:55:25;;17148:1;17145;17138:12;17097:55;17177:2;17171:9;17202:48;17218:31;17246:2;17218:31;:::i;17202:48::-;17273:2;17266:5;17259:17;17313:7;17308:2;17303;17299;17295:11;17291:20;17288:33;17285:53;;;17334:1;17331;17324:12;17285:53;17347:54;17398:2;17393;17386:5;17382:14;17377:2;17373;17369:11;17347:54;:::i;17436:555::-;17693:6;17685;17681:19;17670:9;17663:38;17737:3;17732:2;17721:9;17717:18;17710:31;17644:4;17764:45;17804:3;17793:9;17789:19;17781:6;17764:45;:::i;:::-;-1:-1:-1;;;;;17849:6:25;17845:31;17840:2;17829:9;17825:18;17818:59;17925:9;17917:6;17913:22;17908:2;17897:9;17893:18;17886:50;17953:32;17978:6;17970;17953:32;:::i;17996:274::-;18125:3;18163:6;18157:13;18179:53;18225:6;18220:3;18213:4;18205:6;18201:17;18179:53;:::i;:::-;18248:16;;;;;17996:274;-1:-1:-1;;17996:274:25:o;18275:716::-;18578:6;18570;18566:19;18555:9;18548:38;18622:3;18617:2;18606:9;18602:18;18595:31;18529:4;18649:45;18689:3;18678:9;18674:19;18666:6;18649:45;:::i;:::-;-1:-1:-1;;;;;18734:6:25;18730:31;18725:2;18714:9;18710:18;18703:59;18810:9;18802:6;18798:22;18793:2;18782:9;18778:18;18771:50;18844:32;18869:6;18861;18844:32;:::i;:::-;18830:46;;18925:9;18917:6;18913:22;18907:3;18896:9;18892:19;18885:51;18953:32;18978:6;18970;18953:32;:::i;:::-;18945:40;18275:716;-1:-1:-1;;;;;;;;18275:716:25:o;19357:698::-;19396:7;19444:1;19440:2;19429:17;19481:1;19477:2;19466:17;-1:-1:-1;;;;;19564:1:25;19559:3;19555:11;19594:1;19589:3;19585:11;19641:3;19637:2;19633:12;19628:3;19625:21;19620:2;19616;19612:11;19608:39;19605:65;;;19650:18;;:::i;:::-;-1:-1:-1;;19756:1:25;19747:11;;19774;;;19796:13;;;19787:23;;19770:41;19767:67;;;19814:18;;:::i;:::-;19862:1;19857:3;19853:11;19843:21;;19911:3;19907:2;19902:13;19897:3;19893:23;19888:2;19884;19880:11;19876:41;19873:67;;;19920:18;;:::i;:::-;19987:3;19983:2;19978:13;19973:3;19969:23;19964:2;19960;19956:11;19952:41;19949:67;;;19996:18;;:::i;:::-;-1:-1:-1;;;20036:13:25;;;;;19357:698;-1:-1:-1;;;;;19357:698:25:o;20060:398::-;20099:4;20144:1;20140:2;20129:17;20181:1;20177:2;20166:17;20211:1;20206:3;20202:11;20295:3;-1:-1:-1;;;;;20254:39:25;20250:49;20245:3;20241:59;20236:2;20229:10;20225:76;20222:102;;;20304:18;;:::i;:::-;20393:3;-1:-1:-1;;;;;20353:44:25;20348:3;20344:54;20340:2;20336:63;20333:89;;;20402:18;;:::i;:::-;-1:-1:-1;20439:13:25;;;20060:398;-1:-1:-1;;;20060:398:25:o;20874:128::-;20914:3;20945:1;20941:6;20938:1;20935:13;20932:39;;;20951:18;;:::i;:::-;-1:-1:-1;20987:9:25;;20874:128::o;21696:729::-;21759:5;21807:4;21795:9;21790:3;21786:19;21782:30;21779:50;;;21825:1;21822;21815:12;21779:50;21858:2;21852:9;21900:4;21892:6;21888:17;21971:6;21959:10;21956:22;-1:-1:-1;;;;;21923:10:25;21920:34;21917:62;21914:88;;;21982:18;;:::i;:::-;22022:10;22018:2;22011:22;;22051:6;22042:15;;22087:9;22081:16;22106:32;22130:7;22106:32;:::i;:::-;22147:23;;22215:2;22200:18;;22194:25;22228:32;22194:25;22228:32;:::i;:::-;22293:7;22288:2;22280:6;22276:15;22269:32;;22355:2;22344:9;22340:18;22334:25;22329:2;22321:6;22317:15;22310:50;22414:2;22403:9;22399:18;22393:25;22388:2;22380:6;22376:15;22369:50;;21696:729;;;;:::o;22430:698::-;22589:6;22597;22605;22613;22621;22674:3;22662:9;22653:7;22649:23;22645:33;22642:53;;;22691:1;22688;22681:12;22642:53;22723:9;22717:16;22742:30;22766:5;22742:30;:::i;:::-;22841:2;22826:18;;22820:25;22791:5;;-1:-1:-1;22854:33:25;22820:25;22854:33;:::i;:::-;22953:2;22938:18;;22932:25;22906:7;;-1:-1:-1;22932:25:25;-1:-1:-1;22976:63:25;23031:7;23026:2;23011:18;;22976:63;:::i;:::-;22966:73;;23058:64;23114:7;23108:3;23097:9;23093:19;23058:64;:::i;:::-;23048:74;;22430:698;;;;;;;;:::o;23428:555::-;23779:6;23767:19;;23749:38;;-1:-1:-1;;;;;23823:32:25;;23818:2;23803:18;;23796:60;23736:3;23721:19;;23865:51;23912:2;23897:18;;23889:6;23225:5;23219:12;23215:2;23204:28;23199:3;23192:41;23297:4;23290:5;23286:16;23280:23;23276:2;23265:39;23258:4;23253:3;23249:14;23242:63;23354:4;23347:5;23343:16;23337:23;23330:4;23325:3;23321:14;23314:47;23410:4;23403:5;23399:16;23393:23;23386:4;23381:3;23377:14;23370:47;;;23133:290;23865:51;23219:12;;23215:2;23204:28;;;23972:3;23957:19;;23192:41;23297:4;23286:16;;23280:23;23265:39;;23249:14;;;23242:63;23354:4;23343:16;;23337:23;23321:14;;;23314:47;23410:4;23399:16;;23393:23;23377:14;;;23370:47;23925:52;23133:290;23988:372;24089:6;24097;24150:3;24138:9;24129:7;24125:23;24121:33;24118:53;;;24167:1;24164;24157:12;24118:53;24199:9;24193:16;24218:30;24242:5;24218:30;:::i;:::-;24267:5;-1:-1:-1;24291:63:25;24346:7;24341:2;24326:18;;24291:63;:::i;:::-;24281:73;;23988:372;;;;;:::o;24365:323::-;24614:6;24602:19;;24584:38;;24571:3;24556:19;;24631:51;24678:2;24663:18;;24655:6;23225:5;23219:12;23215:2;23204:28;23199:3;23192:41;23297:4;23290:5;23286:16;23280:23;23276:2;23265:39;23258:4;23253:3;23249:14;23242:63;23354:4;23347:5;23343:16;23337:23;23330:4;23325:3;23321:14;23314:47;23410:4;23403:5;23399:16;23393:23;23386:4;23381:3;23377:14;23370:47;;;23133:290"},"gasEstimates":{"creation":{"codeDepositCost":"1942600","executionCost":"infinite","totalCost":"infinite"},"external":{"balanceOf(address)":"7744","delegationHook()":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getPointValue((int128,int128,uint256,uint256))":"infinite","getTrustedRemoteAddress(uint16)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","locked__end(address)":"2569","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","owner()":"2377","precrime()":"2405","renounceOwnership()":"infinite","retryMessage(uint16,bytes,uint64,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMinDstGas(uint16,uint16,uint256)":"infinite","setPrecrime(address)":"27893","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","totalSupply()":"7438","totalSupplyPoint()":"6700","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","userPoints(address)":"6958"},"internal":{"_getPointValue(struct IVotingEscrow.Point memory)":"infinite","_nonblockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite","_updateTotalSupplyFromChain(uint16,bytes memory)":"infinite","_updateUserAndTotalSupplyFromChain(uint16,bytes memory)":"infinite"}},"methodIdentifiers":{"balanceOf(address)":"70a08231","delegationHook()":"74d2495f","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getPointValue((int128,int128,uint256,uint256))":"378ef708","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","locked__end(address)":"adc63589","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","totalSupply()":"18160ddd","totalSupplyPoint()":"f4182acb","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","userPoints(address)":"f50ddbc7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegationHook\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"TotalSupplyFromChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"userPoint\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"totalSupplyPoint\",\"type\":\"tuple\"}],\"name\":\"UserBalFromChain\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationHook\",\"outputs\":[{\"internalType\":\"contract IL2LayerZeroDelegation\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"_point\",\"type\":\"tuple\"}],\"name\":\"getPointValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"locked__end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupplyPoint\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userPoints\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OmniVotingEscrowChild.sol\":\"OmniVotingEscrowChild\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../util/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n using BytesLib for bytes;\\n\\n ILayerZeroEndpoint public immutable lzEndpoint;\\n mapping(uint16 => bytes) public trustedRemoteLookup;\\n mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n address public precrime;\\n\\n event SetPrecrime(address precrime);\\n event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n constructor(address _endpoint) {\\n lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n }\\n\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual override {\\n // lzReceive must be called by the endpoint for security\\n require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n require(_srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote), \\\"LzApp: invalid source sending contract\\\");\\n\\n _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function _lzSend(uint16 _dstChainId, bytes memory _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams, uint _nativeFee) internal virtual {\\n bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n }\\n\\n function _checkGasLimit(uint16 _dstChainId, uint16 _type, bytes memory _adapterParams, uint _extraGas) internal view virtual {\\n uint providedGasLimit = _getGasLimit(_adapterParams);\\n uint minGasLimit = minDstGasLookup[_dstChainId][_type] + _extraGas;\\n require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n require(providedGasLimit >= minGasLimit, \\\"LzApp: gas limit is too low\\\");\\n }\\n\\n function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n //---------------------------UserApplication config----------------------------------------\\n function getConfig(uint16 _version, uint16 _chainId, address, uint _configType) external view returns (bytes memory) {\\n return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n }\\n\\n // generic config for LayerZero user Application\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override onlyOwner {\\n lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n }\\n\\n function setSendVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setSendVersion(_version);\\n }\\n\\n function setReceiveVersion(uint16 _version) external override onlyOwner {\\n lzEndpoint.setReceiveVersion(_version);\\n }\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n }\\n\\n // _path = abi.encodePacked(remoteAddress, localAddress)\\n // this function set the trusted path for the cross-chain communication\\n function setTrustedRemote(uint16 _srcChainId, bytes calldata _path) external onlyOwner {\\n trustedRemoteLookup[_srcChainId] = _path;\\n emit SetTrustedRemote(_srcChainId, _path);\\n }\\n\\n function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n }\\n\\n function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n bytes memory path = trustedRemoteLookup[_remoteChainId];\\n require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n }\\n\\n function setPrecrime(address _precrime) external onlyOwner {\\n precrime = _precrime;\\n emit SetPrecrime(_precrime);\\n }\\n\\n function setMinDstGas(uint16 _dstChainId, uint16 _packetType, uint _minGas) external onlyOwner {\\n require(_minGas > 0, \\\"LzApp: invalid minGas\\\");\\n minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n }\\n\\n //--------------------------- VIEW FUNCTION ----------------------------------------\\n function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n return keccak256(trustedSource) == keccak256(_srcAddress);\\n }\\n}\\n\",\"keccak256\":\"0x9f057e6b7c9006828f7711122743dd068225d3d331989a6660a8f964b5977a1e\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../util/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n using ExcessivelySafeCall for address;\\n\\n constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n // overriding the virtual function in LzReceiver\\n function _blockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual override {\\n (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft(), 150, abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload));\\n // try-catch all errors/exceptions\\n if (!success) {\\n failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n }\\n }\\n\\n function nonblockingLzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public virtual {\\n // only internal transaction\\n require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n }\\n\\n //@notice override this function\\n function _nonblockingLzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) internal virtual;\\n\\n function retryMessage(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) public payable virtual {\\n // assert there is message to retry\\n bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n // clear the stored message\\n failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n // execute the message. revert if it fails again\\n _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n }\\n}\\n\",\"keccak256\":\"0x8da2c853945fbd9e3720975d33c6384f3f086a7f521a474953e78c3c87578e65\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/util/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0x2255aadad70e87ed42b158776330175644b07fbbc7e77ed32cd6330974abbcee\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/util/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n uint256 constant LOW_28_MASK =\\n 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := call(\\n _gas, // gas\\n _target, // recipient\\n 0, // ether value\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /// @notice Use when you _really_ really _really_ don't trust the called\\n /// contract. This prevents the called contract from causing reversion of\\n /// the caller in as many ways as we can.\\n /// @dev The main difference between this and a solidity low-level call is\\n /// that we limit the number of bytes that the callee can cause to be\\n /// copied to caller memory. This prevents stupid things like malicious\\n /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n /// to memory.\\n /// @param _target The address to call\\n /// @param _gas The amount of gas to forward to the remote contract\\n /// @param _maxCopy The maximum number of bytes of returndata to copy\\n /// to memory.\\n /// @param _calldata The data to send to the remote contract\\n /// @return success and returndata, as `.call()`. Returndata is capped to\\n /// `_maxCopy` bytes.\\n function excessivelySafeStaticCall(\\n address _target,\\n uint256 _gas,\\n uint16 _maxCopy,\\n bytes memory _calldata\\n ) internal view returns (bool, bytes memory) {\\n // set up for assembly call\\n uint256 _toCopy;\\n bool _success;\\n bytes memory _returnData = new bytes(_maxCopy);\\n // dispatch message to recipient\\n // by assembly calling \\\"handle\\\" function\\n // we call via assembly to avoid memcopying a very large returndata\\n // returned by a malicious contract\\n assembly {\\n _success := staticcall(\\n _gas, // gas\\n _target, // recipient\\n add(_calldata, 0x20), // inloc\\n mload(_calldata), // inlen\\n 0, // outloc\\n 0 // outlen\\n )\\n // limit our copy to 256 bytes\\n _toCopy := returndatasize()\\n if gt(_toCopy, _maxCopy) {\\n _toCopy := _maxCopy\\n }\\n // Store the length of the copied bytes\\n mstore(_returnData, _toCopy)\\n // copy the bytes from returndata[0:_toCopy]\\n returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n }\\n return (_success, _returnData);\\n }\\n\\n /**\\n * @notice Swaps function selectors in encoded contract calls\\n * @dev Allows reuse of encoded calldata for functions with identical\\n * argument types but different names. It simply swaps out the first 4 bytes\\n * for the new selector. This function modifies memory in place, and should\\n * only be used with caution.\\n * @param _newSelector The new 4-byte selector\\n * @param _buf The encoded contract args\\n */\\n function swapSelector(bytes4 _newSelector, bytes memory _buf)\\n internal\\n pure\\n {\\n require(_buf.length >= 4);\\n uint256 _mask = LOW_28_MASK;\\n assembly {\\n // load the first word of\\n let _word := mload(add(_buf, 0x20))\\n // mask out the top 4 bytes\\n // /x\\n _word := and(_word, _mask)\\n _word := or(_newSelector, _word)\\n mstore(add(_buf, 0x20), _word)\\n }\\n }\\n}\\n\",\"keccak256\":\"0x23942250ddd277c443fa27c6b4ab51e6b3b5e654548b6b9e8d785a88ebec4dfe\",\"license\":\"MIT OR Apache-2.0\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor() {\\n _transferOwnership(_msgSender());\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/OmniVotingEscrowChild.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"./interfaces/IVotingEscrow.sol\\\";\\nimport \\\"./interfaces/IL2LayerZeroDelegation.sol\\\";\\nimport \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\n\\ncontract OmniVotingEscrowChild is NonblockingLzApp {\\n mapping(address => uint) public locked__end; // -> end of lock period\\n mapping(address => IVotingEscrow.Point) public userPoints; // -> balanceOf\\n IVotingEscrow.Point public totalSupplyPoint; // -> totalSupply\\n\\n // Packet types for child chains:\\n uint16 PT_USER = 0; // user balance and total supply update\\n uint16 PT_TS = 1; // total supply update\\n\\n IL2LayerZeroDelegation public immutable delegationHook;\\n\\n event UserBalFromChain(uint16 srcChainId, address user, IVotingEscrow.Point userPoint, IVotingEscrow.Point totalSupplyPoint);\\n event TotalSupplyFromChain(uint16 srcChainId, IVotingEscrow.Point totalSupplyPoint);\\n\\n constructor(address _lzEndpoint, address _delegationHook) NonblockingLzApp(_lzEndpoint) {\\n require(_delegationHook != address(0x0), \\\"OmniVotingEscrowChild: delegation hook cannot be 0x0\\\");\\n delegationHook = IL2LayerZeroDelegation(_delegationHook);\\n }\\n\\n function _nonblockingLzReceive(\\n uint16 _srcChainId,\\n bytes memory, /*_srcAddress*/\\n uint64, /*_nonce*/\\n bytes memory _payload\\n ) internal virtual override {\\n uint16 packetType;\\n assembly {\\n packetType := mload(add(_payload, 32))\\n }\\n\\n if (packetType == PT_USER) {\\n _updateUserAndTotalSupplyFromChain(_srcChainId, _payload);\\n } else if (packetType == PT_TS) {\\n _updateTotalSupplyFromChain(_srcChainId, _payload);\\n } else {\\n revert(\\\"OmniVotingEscrowChild: unknown packet type\\\");\\n }\\n }\\n\\n function _updateUserAndTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\\n (, address _userAddress, uint _lockedEnd, IVotingEscrow.Point memory _userPoint, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, address, uint, IVotingEscrow.Point, IVotingEscrow.Point));\\n locked__end[_userAddress] = _lockedEnd;\\n userPoints[_userAddress] = _userPoint;\\n totalSupplyPoint = _totalSupplyPoint;\\n\\n delegationHook.onVeBalBridged(_userAddress);\\n emit UserBalFromChain(_srcChainId, _userAddress, _userPoint, _totalSupplyPoint);\\n }\\n\\n function _updateTotalSupplyFromChain(uint16 _srcChainId, bytes memory _payload) internal {\\n (, IVotingEscrow.Point memory _totalSupplyPoint) = abi.decode(_payload, (uint16, IVotingEscrow.Point));\\n totalSupplyPoint = _totalSupplyPoint;\\n\\n delegationHook.onVeBalSupplyUpdate();\\n emit TotalSupplyFromChain(_srcChainId, _totalSupplyPoint);\\n }\\n\\n function balanceOf(address _user) public view returns (uint) {\\n return _getPointValue(userPoints[_user]);\\n }\\n\\n function totalSupply() public view returns (uint) {\\n return _getPointValue(totalSupplyPoint);\\n }\\n\\n // external for testing\\n function getPointValue(IVotingEscrow.Point memory _point) external view returns (uint) {\\n return _getPointValue(_point);\\n }\\n\\n function _getPointValue(IVotingEscrow.Point memory _point) internal view returns (uint) {\\n IVotingEscrow.Point memory p = _point;\\n\\n int128 bias = p.bias - (p.slope * int128(uint128(block.timestamp - p.ts)));\\n return bias < 0 ? 0 : uint(uint128(bias));\\n }\\n}\\n\",\"keccak256\":\"0xdd98676f42d4b6900bcdb52ce8311b15fc4beb6eed5e197613d2c3dd6b105d4c\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2891,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":450,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":456,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":458,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"precrime","offset":0,"slot":"3","type":"t_address"},{"astId":943,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"failedMessages","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":4106,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"locked__end","offset":0,"slot":"5","type":"t_mapping(t_address,t_uint256)"},{"astId":4111,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"userPoints","offset":0,"slot":"6","type":"t_mapping(t_address,t_struct(Point)4477_storage)"},{"astId":4114,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"totalSupplyPoint","offset":0,"slot":"7","type":"t_struct(Point)4477_storage"},{"astId":4117,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"PT_USER","offset":0,"slot":"10","type":"t_uint16"},{"astId":4120,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"PT_TS","offset":2,"slot":"10","type":"t_uint16"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_address,t_struct(Point)4477_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct IVotingEscrow.Point)","numberOfBytes":"32","value":"t_struct(Point)4477_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_struct(Point)4477_storage":{"encoding":"inplace","label":"struct IVotingEscrow.Point","members":[{"astId":4470,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"bias","offset":0,"slot":"0","type":"t_int128"},{"astId":4472,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"slope","offset":16,"slot":"0","type":"t_int128"},{"astId":4474,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"ts","offset":0,"slot":"1","type":"t_uint256"},{"astId":4476,"contract":"contracts/OmniVotingEscrowChild.sol:OmniVotingEscrowChild","label":"blk","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IL2LayerZeroDelegation.sol":{"IL2LayerZeroDelegation":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"onVeBalBridged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onVeBalSupplyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"onVeBalBridged(address)":"df130bfe","onVeBalSupplyUpdate()":"96345fb5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"onVeBalBridged\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onVeBalSupplyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":\"IL2LayerZeroDelegation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.","version":1}}},"contracts/interfaces/IOmniVotingEscrow.sol":{"IOmniVotingEscrow":{"abi":[{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendTotalSupply","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendUserBalance","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendTotalSupply","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"sendUserBalance","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"Partial voting escrow bridge interface. See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"estimateSendTotalSupply(uint16,bool,bytes)":"16334c8f","estimateSendUserBalance(uint16,bool,bytes)":"65d092d0","sendTotalSupply(uint16,address,address,bytes)":"416b154a","sendUserBalance(address,uint16,address,address,bytes)":"4a759489"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendUserBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendTotalSupply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"sendUserBalance\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Partial voting escrow bridge interface. See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":\"IOmniVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IVotingEscrow.sol":{"IVotingEscrow":{"abi":[{"inputs":[],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"locked__end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"point_history","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"user_point_epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"user_point_history","outputs":[{"components":[{"internalType":"int128","name":"bias","type":"int128"},{"internalType":"int128","name":"slope","type":"int128"},{"internalType":"uint256","name":"ts","type":"uint256"},{"internalType":"uint256","name":"blk","type":"uint256"}],"internalType":"struct IVotingEscrow.Point","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"checkpoint()":"c2c4c5c1","epoch()":"900cf0cf","locked__end(address)":"adc63589","point_history(uint256)":"d1febfb9","user_point_epoch(address)":"010ae757","user_point_history(address,uint256)":"28d09d47"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"locked__end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"point_history\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"user_point_epoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"user_point_history\",\"outputs\":[{\"components\":[{\"internalType\":\"int128\",\"name\":\"bias\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"slope\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"ts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blk\",\"type\":\"uint256\"}],\"internalType\":\"struct IVotingEscrow.Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IVotingEscrow.sol\":\"IVotingEscrow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IVotingEscrowRemapper.sol":{"IVotingEscrowRemapper":{"abi":[{"inputs":[{"internalType":"address","name":"localUser","type":"address"},{"internalType":"uint16","name":"chainId","type":"uint16"}],"name":"getRemoteUser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVotingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"getRemoteUser(address,uint16)":{"details":"Returns `address(0)` if the remapping does not exist for the given local user.","params":{"chainId":"- The chain ID of the network which the remote user is on.","localUser":"- Address of the user on the local chain which are querying the remote address for."}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRemoteUser(address,uint16)":"bda75c38","getVotingEscrow()":"08b0308a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"getRemoteUser\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVotingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRemoteUser(address,uint16)\":{\"details\":\"Returns `address(0)` if the remapping does not exist for the given local user.\",\"params\":{\"chainId\":\"- The chain ID of the network which the remote user is on.\",\"localUser\":\"- Address of the user on the local chain which are querying the remote address for.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getRemoteUser(address,uint16)\":{\"notice\":\"Returns the remote user corresponding to an address on the local chain.\"},\"getVotingEscrow()\":{\"notice\":\"Returns Voting Escrow contract address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IVotingEscrowRemapper.sol\":\"IVotingEscrowRemapper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"getRemoteUser(address,uint16)":{"notice":"Returns the remote user corresponding to an address on the local chain."},"getVotingEscrow()":{"notice":"Returns Voting Escrow contract address."}},"version":1}}},"contracts/mocks/ERC20Mock.sol":{"ERC20Mock":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"@_4557":{"entryPoint":null,"id":4557,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":298,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":481,"id":null,"parameterSlots":2,"returnSlots":2},"extract_byte_array_length":{"entryPoint":587,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":276,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1985:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1658:325:25","statements":[{"nodeType":"YulAssignment","src":"1668:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1682:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1685:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1678:3:25"},"nodeType":"YulFunctionCall","src":"1678:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1668:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1699:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1729:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"1735:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1725:3:25"},"nodeType":"YulFunctionCall","src":"1725:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1703:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1776:31:25","statements":[{"nodeType":"YulAssignment","src":"1778:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1792:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1800:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1788:3:25"},"nodeType":"YulFunctionCall","src":"1788:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1778:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1756:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:25"},"nodeType":"YulFunctionCall","src":"1749:26:25"},"nodeType":"YulIf","src":"1746:61:25"},{"body":{"nodeType":"YulBlock","src":"1866:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1887:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1894:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1899:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1890:3:25"},"nodeType":"YulFunctionCall","src":"1890:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:25"},"nodeType":"YulFunctionCall","src":"1880:31:25"},"nodeType":"YulExpressionStatement","src":"1880:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1934:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1924:6:25"},"nodeType":"YulFunctionCall","src":"1924:15:25"},"nodeType":"YulExpressionStatement","src":"1924:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1962:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1952:6:25"},"nodeType":"YulFunctionCall","src":"1952:15:25"},"nodeType":"YulExpressionStatement","src":"1952:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1822:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1845:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1842:2:25"},"nodeType":"YulFunctionCall","src":"1842:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1819:2:25"},"nodeType":"YulFunctionCall","src":"1819:38:25"},"nodeType":"YulIf","src":"1816:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1638:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1603:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000be238038062000be28339810160408190526200003491620001e1565b8151829082906200004d9060039060208501906200006e565b508051620000639060049060208401906200006e565b505050505062000288565b8280546200007c906200024b565b90600052602060002090601f016020900481019282620000a05760008555620000eb565b82601f10620000bb57805160ff1916838001178555620000eb565b82800160010185558215620000eb579182015b82811115620000eb578251825591602001919060010190620000ce565b50620000f9929150620000fd565b5090565b5b80821115620000f95760008155600101620000fe565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013c57600080fd5b81516001600160401b038082111562000159576200015962000114565b604051601f8301601f19908116603f0116810190828211818310171562000184576200018462000114565b81604052838152602092508683858801011115620001a157600080fd5b600091505b83821015620001c55785820183015181830184015290820190620001a6565b83821115620001d75760008385830101525b9695505050505050565b60008060408385031215620001f557600080fd5b82516001600160401b03808211156200020d57600080fd5b6200021b868387016200012a565b935060208501519150808211156200023257600080fd5b5062000241858286016200012a565b9150509250929050565b600181811c908216806200026057607f821691505b602082108114156200028257634e487b7160e01b600052602260045260246000fd5b50919050565b61094a80620002986000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220a999ce877599ec6ac1fad0880e2252e30ef43d5fc38a48310c06dcb2d702326a64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xBE2 CODESIZE SUB DUP1 PUSH3 0xBE2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1E1 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH3 0x4D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x6E JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x63 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x6E JUMP JUMPDEST POP POP POP POP POP PUSH3 0x288 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x7C SWAP1 PUSH3 0x24B JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0xA0 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xEB JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xBB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xEB JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xEB JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xEB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xCE JUMP JUMPDEST POP PUSH3 0xF9 SWAP3 SWAP2 POP PUSH3 0xFD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xFE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x159 JUMPI PUSH3 0x159 PUSH3 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x184 JUMPI PUSH3 0x184 PUSH3 0x114 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x1A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1C5 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x1A6 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1D7 JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x21B DUP7 DUP4 DUP8 ADD PUSH3 0x12A JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x241 DUP6 DUP3 DUP7 ADD PUSH3 0x12A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x260 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x282 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94A DUP1 PUSH3 0x298 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 SWAP10 0xCE DUP8 PUSH22 0x99EC6AC1FAD0880E2252E30EF43D5FC38A48310C06DC 0xB2 0xD7 MUL ORIGIN PUSH11 0x64736F6C634300080A0033 ","sourceMap":"132:206:20:-:0;;;166:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13:10;;228:5:20;;235:7;;2042:13:10;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;166:80:20;;132:206;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;132:206:20;;;-1:-1:-1;132:206:20;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1603:380::-;1682:1;1678:12;;;;1725;;;1746:61;;1800:4;1792:6;1788:17;1778:27;;1746:61;1853:2;1845:6;1842:14;1822:18;1819:38;1816:161;;;1899:10;1894:3;1890:20;1887:1;1880:31;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1816:161;;1603:380;;;:::o;:::-;132:206:20;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":902,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":1736,"id":3400,"parameterSlots":2,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1194,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1316,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":859,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":594,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":717,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":654,"id":3225,"parameterSlots":2,"returnSlots":1},"@mint_4570":{"entryPoint":688,"id":4570,"parameterSlots":2,"returnSlots":0},"@name_3051":{"entryPoint":448,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":702,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":618,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":845,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2012,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2176,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2082,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2040,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1927,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2286,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2227,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6166:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"},{"body":{"nodeType":"YulBlock","src":"5983:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6011:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:25"},"nodeType":"YulFunctionCall","src":"5993:21:25"},"nodeType":"YulExpressionStatement","src":"5993:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6034:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6045:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6030:3:25"},"nodeType":"YulFunctionCall","src":"6030:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6050:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6023:6:25"},"nodeType":"YulFunctionCall","src":"6023:30:25"},"nodeType":"YulExpressionStatement","src":"6023:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6069:3:25"},"nodeType":"YulFunctionCall","src":"6069:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"6089:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6062:6:25"},"nodeType":"YulFunctionCall","src":"6062:61:25"},"nodeType":"YulExpressionStatement","src":"6062:61:25"},{"nodeType":"YulAssignment","src":"6132:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6155:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6140:3:25"},"nodeType":"YulFunctionCall","src":"6140:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6132:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5960:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5974:4:25","type":""}],"src":"5809:355:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220a999ce877599ec6ac1fad0880e2252e30ef43d5fc38a48310c06dcb2d702326a64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 SWAP10 0xCE DUP8 PUSH22 0x99EC6AC1FAD0880E2252E30EF43D5FC38A48310C06DC 0xB2 0xD7 MUL ORIGIN PUSH11 0x64736F6C634300080A0033 ","sourceMap":"132:206:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:10;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;252:84:20:-;;;;;;:::i;:::-;;:::i;:::-;;3406:125:10;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;252:84:20:-;310:19;316:3;321:7;310:5;:19::i;:::-;252:84;;:::o;2365:102:10:-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;8567:535;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;6011:2:25;8642:65:10;;;5993:21:25;6050:2;6030:18;;;6023:30;6089:33;6069:18;;;6062:61;6140:18;;8642:65:10;5809:355:25;8642:65:10;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1391:25:25;;;8999:37:10;;1364:18:25;8999:37:10;;;;;;;252:84:20;;:::o;14:597:25:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"475600","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"27089","mint(address,uint256)":"50800","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/ERC20Mock.sol\":\"ERC20Mock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/mocks/ERC20Mock.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\n// this is a MOCK\\ncontract ERC20Mock is ERC20 {\\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}\\n\\n function mint(address _to, uint _amount) public {\\n _mint(_to, _amount);\\n }\\n}\\n\",\"keccak256\":\"0x4077148f681740d57fff93b1cadd78b0cad1dc7b6f69cf3dac26c550c9d3afec\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"contracts/mocks/ERC20Mock.sol:ERC20Mock","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/L2LayerZeroDelegation.sol":{"L2LayerZeroDelegation":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"onVeBalBridged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onVeBalSupplyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b5060ab8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806396345fb5146037578063df130bfe146039575b600080fd5b005b603760443660046047565b50565b600060208284031215605857600080fd5b81356001600160a01b0381168114606e57600080fd5b939250505056fea26469706673582212207f5e44f660c3cf1b86fe701dee720d8b0e1c7e7ad89861f829e0eaad55a0cd8364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xAB DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x96345FB5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xDF130BFE EQ PUSH1 0x39 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x37 PUSH1 0x44 CALLDATASIZE PUSH1 0x4 PUSH1 0x47 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x5E44F660C3CF1B86FE701DEE720D8B0E1C7E7AD89861F829E0EAAD55A0CD8364 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"123:162:21:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@onVeBalBridged_4582":{"entryPoint":null,"id":4582,"parameterSlots":1,"returnSlots":0},"@onVeBalSupplyUpdate_4586":{"entryPoint":null,"id":4586,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":71,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:302:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:216:25","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:25"},"nodeType":"YulFunctionCall","src":"132:12:25"},"nodeType":"YulExpressionStatement","src":"132:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:25"},"nodeType":"YulFunctionCall","src":"101:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:25"},"nodeType":"YulFunctionCall","src":"97:32:25"},"nodeType":"YulIf","src":"94:52:25"},{"nodeType":"YulVariableDeclaration","src":"155:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"181:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"168:12:25"},"nodeType":"YulFunctionCall","src":"168:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"159:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"254:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:25"},"nodeType":"YulFunctionCall","src":"256:12:25"},"nodeType":"YulExpressionStatement","src":"256:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"213:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"244:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"235:3:25"},"nodeType":"YulFunctionCall","src":"235:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"231:3:25"},"nodeType":"YulFunctionCall","src":"231:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"220:3:25"},"nodeType":"YulFunctionCall","src":"220:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"210:2:25"},"nodeType":"YulFunctionCall","src":"210:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"203:6:25"},"nodeType":"YulFunctionCall","src":"203:50:25"},"nodeType":"YulIf","src":"200:70:25"},{"nodeType":"YulAssignment","src":"279:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"289:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"279:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:25","type":""}],"src":"14:286:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060325760003560e01c806396345fb5146037578063df130bfe146039575b600080fd5b005b603760443660046047565b50565b600060208284031215605857600080fd5b81356001600160a01b0381168114606e57600080fd5b939250505056fea26469706673582212207f5e44f660c3cf1b86fe701dee720d8b0e1c7e7ad89861f829e0eaad55a0cd8364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x96345FB5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xDF130BFE EQ PUSH1 0x39 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x37 PUSH1 0x44 CALLDATASIZE PUSH1 0x4 PUSH1 0x47 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x5E44F660C3CF1B86FE701DEE720D8B0E1C7E7AD89861F829E0EAAD55A0CD8364 PUSH20 0x6F6C634300080A00330000000000000000000000 ","sourceMap":"123:162:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241:42;;186:49;;;;;;:::i;:::-;;;14:286:25;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:25;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:25:o"},"gasEstimates":{"creation":{"codeDepositCost":"34200","executionCost":"87","totalCost":"34287"},"external":{"onVeBalBridged(address)":"257","onVeBalSupplyUpdate()":"98"}},"methodIdentifiers":{"onVeBalBridged(address)":"df130bfe","onVeBalSupplyUpdate()":"96345fb5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"onVeBalBridged\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onVeBalSupplyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/L2LayerZeroDelegation.sol\":\"L2LayerZeroDelegation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IL2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @notice Minimal hook interface to be called whenever the veBAL balance of a user is updated in a L2 chain.\\n */\\ninterface IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external;\\n\\n function onVeBalSupplyUpdate() external;\\n}\\n\",\"keccak256\":\"0xa20799b5221f24afe6936dc87d9347acaabe7a57ed42bbb15a3118aaaef5888c\",\"license\":\"GPL-3.0-or-later\"},\"contracts/mocks/L2LayerZeroDelegation.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../interfaces/IL2LayerZeroDelegation.sol\\\";\\n\\ncontract L2LayerZeroDelegation is IL2LayerZeroDelegation {\\n function onVeBalBridged(address user) external {}\\n\\n function onVeBalSupplyUpdate() external {}\\n}\\n\",\"keccak256\":\"0xf0c694b6e109e237ddd072f43d55e6605e2fe62f0cf2bb647c786a41641dbd75\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/LZEndpointMock.sol":{"LZMock":{"abi":[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ValueTransferFailed","type":"event"},{"inputs":[],"name":"blockNextMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdapterParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getLengthOfQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lzEndpointLookup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"msgsToDeliver","outputs":[{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMsgBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeConfig","outputs":[{"internalType":"uint256","name":"zroFee","type":"uint256"},{"internalType":"uint256","name":"nativeBP","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerFeeConfig","outputs":[{"internalType":"uint128","name":"dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"baseGas","type":"uint64"},{"internalType":"uint64","name":"gasPerByte","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"setDefaultAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destAddr","type":"address"},{"internalType":"address","name":"lzEndpointAddr","type":"address"}],"name":"setDestLzEndpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleFee","type":"uint256"}],"name":"setOracleFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"},{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"_dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"_dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"_baseGas","type":"uint64"},{"internalType":"uint64","name":"_gasPerByte","type":"uint64"}],"name":"setRelayerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1343":{"entryPoint":null,"id":1343,"parameterSlots":1,"returnSlots":0},"@_4602":{"entryPoint":null,"id":4602,"parameterSlots":1,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":299,"id":258,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":506,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"extract_byte_array_length":{"entryPoint":551,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:958:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"94:196:25","statements":[{"body":{"nodeType":"YulBlock","src":"140:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"149:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"152:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"142:6:25"},"nodeType":"YulFunctionCall","src":"142:12:25"},"nodeType":"YulExpressionStatement","src":"142:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"115:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"124:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"111:3:25"},"nodeType":"YulFunctionCall","src":"111:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"136:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"107:3:25"},"nodeType":"YulFunctionCall","src":"107:32:25"},"nodeType":"YulIf","src":"104:52:25"},{"nodeType":"YulVariableDeclaration","src":"165:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"184:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"178:5:25"},"nodeType":"YulFunctionCall","src":"178:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"246:6:25"},"nodeType":"YulFunctionCall","src":"246:12:25"},"nodeType":"YulExpressionStatement","src":"246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"234:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"223:3:25"},"nodeType":"YulFunctionCall","src":"223:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"213:2:25"},"nodeType":"YulFunctionCall","src":"213:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"206:6:25"},"nodeType":"YulFunctionCall","src":"206:37:25"},"nodeType":"YulIf","src":"203:57:25"},{"nodeType":"YulAssignment","src":"269:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"279:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"269:6:25"}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"60:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"71:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"83:6:25","type":""}],"src":"14:276:25"},{"body":{"nodeType":"YulBlock","src":"440:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"457:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"475:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"466:3:25"},"nodeType":"YulFunctionCall","src":"466:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"488:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"493:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"484:3:25"},"nodeType":"YulFunctionCall","src":"484:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"462:3:25"},"nodeType":"YulFunctionCall","src":"462:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"450:6:25"},"nodeType":"YulFunctionCall","src":"450:51:25"},"nodeType":"YulExpressionStatement","src":"450:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"521:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"526:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"530:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"510:6:25"},"nodeType":"YulFunctionCall","src":"510:27:25"},"nodeType":"YulExpressionStatement","src":"510:27:25"},{"nodeType":"YulAssignment","src":"546:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"557:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"562:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"553:3:25"},"nodeType":"YulFunctionCall","src":"553:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"546:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"408:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"413:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"421:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"432:3:25","type":""}],"src":"295:276:25"},{"body":{"nodeType":"YulBlock","src":"631:325:25","statements":[{"nodeType":"YulAssignment","src":"641:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"655:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"658:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"651:3:25"},"nodeType":"YulFunctionCall","src":"651:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"641:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"672:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"702:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"698:3:25"},"nodeType":"YulFunctionCall","src":"698:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"676:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"749:31:25","statements":[{"nodeType":"YulAssignment","src":"751:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"765:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"773:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"761:3:25"},"nodeType":"YulFunctionCall","src":"761:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"751:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"729:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"722:6:25"},"nodeType":"YulFunctionCall","src":"722:26:25"},"nodeType":"YulIf","src":"719:61:25"},{"body":{"nodeType":"YulBlock","src":"839:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"860:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"867:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"872:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"863:3:25"},"nodeType":"YulFunctionCall","src":"863:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"853:6:25"},"nodeType":"YulFunctionCall","src":"853:31:25"},"nodeType":"YulExpressionStatement","src":"853:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"907:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"897:6:25"},"nodeType":"YulFunctionCall","src":"897:15:25"},"nodeType":"YulExpressionStatement","src":"897:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"932:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"925:6:25"},"nodeType":"YulFunctionCall","src":"925:15:25"},"nodeType":"YulExpressionStatement","src":"925:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"795:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"826:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"815:2:25"},"nodeType":"YulFunctionCall","src":"815:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"792:2:25"},"nodeType":"YulFunctionCall","src":"792:38:25"},"nodeType":"YulIf","src":"789:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"611:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"620:6:25","type":""}],"src":"576:380:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff19166101011790553480156200002057600080fd5b50604051620030ba380380620030ba8339810160408190526200004391620001fa565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e8918301829052600455600555662386f26fc1000060065581906200010c9062030d40906200012b811b62001c9d17901c565b8051620001229160079160209091019062000154565b50505062000264565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b828054620001629062000227565b90600052602060002090601f016020900481019282620001865760008555620001d1565b82601f10620001a157805160ff1916838001178555620001d1565b82800160010185558215620001d1579182015b82811115620001d1578251825591602001919060010190620001b4565b50620001df929150620001e3565b5090565b5b80821115620001df5760008155600101620001e4565b6000602082840312156200020d57600080fd5b815161ffff811681146200022057600080fd5b9392505050565b600181811c908216806200023c57607f821691505b602082108114156200025e57634e487b7160e01b600052602260045260246000fd5b50919050565b612e4680620002746000396000f3fe60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fcd2d38b724f9c9e5d1ac5abffe439ca2f05c406fdb9d323fa90177d94e6804364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x30BA CODESIZE SUB DUP1 PUSH3 0x30BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x43 SWAP2 PUSH3 0x1FA JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP4 AND OR DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH5 0x2540BE400 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0x8AC7230489E80000 DUP3 DUP5 ADD MSTORE PUSH1 0x64 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH21 0x2540BE400000000000000000000000002540BE400 PUSH1 0x2 SSTORE PUSH25 0x1000000000000006400000000000000008AC7230489E80000 PUSH1 0x3 SSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH8 0xDE0B6B3A7640000 DUP1 DUP3 MSTORE PUSH2 0x3E8 SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x4 SSTORE PUSH1 0x5 SSTORE PUSH7 0x2386F26FC10000 PUSH1 0x6 SSTORE DUP2 SWAP1 PUSH3 0x10C SWAP1 PUSH3 0x30D40 SWAP1 PUSH3 0x12B DUP2 SHL PUSH3 0x1C9D OR SWAP1 SHR JUMP JUMPDEST DUP1 MLOAD PUSH3 0x122 SWAP2 PUSH1 0x7 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x154 JUMP JUMPDEST POP POP POP PUSH3 0x264 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x162 SWAP1 PUSH3 0x227 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x186 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1D1 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1A1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1D1 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1D1 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1D1 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B4 JUMP JUMPDEST POP PUSH3 0x1DF SWAP3 SWAP2 POP PUSH3 0x1E3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DF JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH3 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x23C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E46 DUP1 PUSH3 0x274 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xD2 0xD3 DUP12 PUSH19 0x4F9C9E5D1AC5ABFFE439CA2F05C406FDB9D323 STATICCALL SWAP1 OR PUSH30 0x94E6804364736F6C634300080A0033000000000000000000000000000000 ","sourceMap":"768:98:22:-:0;;;1950:38:6;;;-1:-1:-1;;1994:41:6;;;;;808:56:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3418:11:6;:22;;-1:-1:-1;;3418:22:6;;;;;;;3493:222;;;;;;;;3539:4;3493:222;;;;;;;;;;;3647:4;3493:222;;;;3674:3;3493:222;;;;;;;;;;;;3474:241;:16;:241;;;;3745:49;;;;;;;;3772:4;3745:49;;;3788:4;3745:49;;;;;;3725:17;:69;;;3826:4;3814:9;:16;3418:22;;3863:39;;3895:6;;3863:31;;;;;:39;;:::i;:::-;3840:62;;;;:20;;:62;;;;;;:::i;:::-;;3379:530;808:56:22;768:98;;918:238:3;1114:35;;;-1:-1:-1;;;1114:35:3;;;450:51:25;517:11;;;;510:27;;;;1114:35:3;;;;;;;;;;553:12:25;;1114:35:3;;;918:238::o;768:98:22:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;768:98:22;;;-1:-1:-1;768:98:22;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:276:25;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:6;227:5;223:18;216:5;213:29;203:57;;256:1;253;246:12;203:57;279:5;14:276;-1:-1:-1;;;14:276:25:o;576:380::-;655:1;651:12;;;;698;;;719:61;;773:4;765:6;761:17;751:27;;719:61;826:2;818:6;815:14;795:18;792:38;789:161;;;872:10;867:3;863:20;860:1;853:31;907:4;904:1;897:15;935:4;932:1;925:15;789:161;;576:380;;;:::o;:::-;768:98:22;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_2326":{"entryPoint":7837,"id":2326,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_2356":{"entryPoint":7776,"id":2356,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_2452":{"entryPoint":7366,"id":2452,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_2175":{"entryPoint":null,"id":2175,"parameterSlots":0,"returnSlots":0},"@buildDefaultAdapterParams_258":{"entryPoint":7325,"id":258,"parameterSlots":1,"returnSlots":1},"@decodeAdapterParams_375":{"entryPoint":8340,"id":375,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_1168":{"entryPoint":2595,"id":1168,"parameterSlots":0,"returnSlots":0},"@estimateFees_1824":{"entryPoint":2737,"id":1824,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_2150":{"entryPoint":2992,"id":2150,"parameterSlots":3,"returnSlots":0},"@getChainId_1833":{"entryPoint":null,"id":1833,"parameterSlots":0,"returnSlots":1},"@getConfig_2029":{"entryPoint":null,"id":2029,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_1743":{"entryPoint":7256,"id":1743,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_2167":{"entryPoint":3319,"id":2167,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_1760":{"entryPoint":null,"id":1760,"parameterSlots":2,"returnSlots":1},"@getReceiveLibraryAddress_1990":{"entryPoint":null,"id":1990,"parameterSlots":1,"returnSlots":1},"@getReceiveVersion_2051":{"entryPoint":null,"id":2051,"parameterSlots":1,"returnSlots":1},"@getSendLibraryAddress_1976":{"entryPoint":null,"id":1976,"parameterSlots":1,"returnSlots":1},"@getSendVersion_2040":{"entryPoint":null,"id":2040,"parameterSlots":1,"returnSlots":1},"@hasStoredPayload_1962":{"entryPoint":2272,"id":1962,"parameterSlots":3,"returnSlots":1},"@inboundNonce_1174":{"entryPoint":null,"id":1174,"parameterSlots":0,"returnSlots":0},"@isReceivingPayload_2012":{"entryPoint":null,"id":2012,"parameterSlots":0,"returnSlots":1},"@isSendingPayload_2001":{"entryPoint":null,"id":2001,"parameterSlots":0,"returnSlots":1},"@lzEndpointLookup_1154":{"entryPoint":null,"id":1154,"parameterSlots":0,"returnSlots":0},"@mockChainId_1156":{"entryPoint":null,"id":1156,"parameterSlots":0,"returnSlots":0},"@msgsToDeliver_1195":{"entryPoint":2342,"id":1195,"parameterSlots":0,"returnSlots":0},"@nextMsgBlocked_1158":{"entryPoint":null,"id":1158,"parameterSlots":0,"returnSlots":0},"@oracleFee_1166":{"entryPoint":null,"id":1166,"parameterSlots":0,"returnSlots":0},"@outboundNonce_1180":{"entryPoint":null,"id":1180,"parameterSlots":0,"returnSlots":0},"@protocolFeeConfig_1164":{"entryPoint":null,"id":1164,"parameterSlots":0,"returnSlots":0},"@receivePayload_1726":{"entryPoint":3913,"id":1726,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_1161":{"entryPoint":null,"id":1161,"parameterSlots":0,"returnSlots":0},"@retryPayload_1934":{"entryPoint":3379,"id":1934,"parameterSlots":5,"returnSlots":0},"@send_1519":{"entryPoint":5798,"id":1519,"parameterSlots":7,"returnSlots":0},"@setConfig_2064":{"entryPoint":null,"id":2064,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_2273":{"entryPoint":7233,"id":2273,"parameterSlots":1,"returnSlots":0},"@setDestLzEndpoint_2189":{"entryPoint":null,"id":2189,"parameterSlots":2,"returnSlots":0},"@setOracleFee_2263":{"entryPoint":null,"id":2263,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_2253":{"entryPoint":null,"id":2253,"parameterSlots":2,"returnSlots":0},"@setReceiveVersion_2078":{"entryPoint":null,"id":2078,"parameterSlots":1,"returnSlots":0},"@setRelayerPrice_2233":{"entryPoint":null,"id":2233,"parameterSlots":5,"returnSlots":0},"@setSendVersion_2071":{"entryPoint":null,"id":2071,"parameterSlots":1,"returnSlots":0},"@storedPayload_1187":{"entryPoint":null,"id":1187,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":9234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":9058,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":9029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":10242,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":10826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":9696,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":8981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":10034,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":9797,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9130,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":10272,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":10089,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":9957,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":10447,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":9374,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10749,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":10646,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":10217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":9597,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint128":{"entryPoint":9650,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint16":{"entryPoint":8958,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":9673,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":11007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10886,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9537,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11048,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11339,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed":{"entryPoint":11155,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11078,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11695,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11453,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10983,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":11657,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11590,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":11610,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11267,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":10902,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":11312,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint64":{"entryPoint":11228,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10961,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11568,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":11770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11290,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9212,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9008,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:26605:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"143:119:25","statements":[{"nodeType":"YulAssignment","src":"153:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"165:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"176:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"161:3:25"},"nodeType":"YulFunctionCall","src":"161:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"153:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"206:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"188:6:25"},"nodeType":"YulFunctionCall","src":"188:25:25"},"nodeType":"YulExpressionStatement","src":"188:25:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"233:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"244:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"229:3:25"},"nodeType":"YulFunctionCall","src":"229:18:25"},{"name":"value1","nodeType":"YulIdentifier","src":"249:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"222:6:25"},"nodeType":"YulFunctionCall","src":"222:34:25"},"nodeType":"YulExpressionStatement","src":"222:34:25"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"115:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"123:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"134:4:25","type":""}],"src":"14:248:25"},{"body":{"nodeType":"YulBlock","src":"315:111:25","statements":[{"nodeType":"YulAssignment","src":"325:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"347:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"334:12:25"},"nodeType":"YulFunctionCall","src":"334:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"325:5:25"}]},{"body":{"nodeType":"YulBlock","src":"404:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"413:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"416:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"406:6:25"},"nodeType":"YulFunctionCall","src":"406:12:25"},"nodeType":"YulExpressionStatement","src":"406:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"376:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"387:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"394:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"383:3:25"},"nodeType":"YulFunctionCall","src":"383:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"373:2:25"},"nodeType":"YulFunctionCall","src":"373:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"366:6:25"},"nodeType":"YulFunctionCall","src":"366:37:25"},"nodeType":"YulIf","src":"363:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"294:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"305:5:25","type":""}],"src":"267:159:25"},{"body":{"nodeType":"YulBlock","src":"500:115:25","statements":[{"body":{"nodeType":"YulBlock","src":"546:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"555:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"558:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"548:6:25"},"nodeType":"YulFunctionCall","src":"548:12:25"},"nodeType":"YulExpressionStatement","src":"548:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"521:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"530:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"517:3:25"},"nodeType":"YulFunctionCall","src":"517:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"542:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"513:3:25"},"nodeType":"YulFunctionCall","src":"513:32:25"},"nodeType":"YulIf","src":"510:52:25"},{"nodeType":"YulAssignment","src":"571:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"599:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"581:17:25"},"nodeType":"YulFunctionCall","src":"581:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"571:6:25"}]}]},"name":"abi_decode_tuple_t_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"466:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"477:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"489:6:25","type":""}],"src":"431:184:25"},{"body":{"nodeType":"YulBlock","src":"665:86:25","statements":[{"body":{"nodeType":"YulBlock","src":"729:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"738:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"741:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"731:6:25"},"nodeType":"YulFunctionCall","src":"731:12:25"},"nodeType":"YulExpressionStatement","src":"731:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"699:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"714:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"719:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"710:3:25"},"nodeType":"YulFunctionCall","src":"710:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"723:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"706:3:25"},"nodeType":"YulFunctionCall","src":"706:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"695:3:25"},"nodeType":"YulFunctionCall","src":"695:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"685:2:25"},"nodeType":"YulFunctionCall","src":"685:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"678:6:25"},"nodeType":"YulFunctionCall","src":"678:50:25"},"nodeType":"YulIf","src":"675:70:25"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"654:5:25","type":""}],"src":"620:131:25"},{"body":{"nodeType":"YulBlock","src":"826:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"872:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"881:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"884:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"874:6:25"},"nodeType":"YulFunctionCall","src":"874:12:25"},"nodeType":"YulExpressionStatement","src":"874:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"847:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"843:3:25"},"nodeType":"YulFunctionCall","src":"843:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"868:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"839:3:25"},"nodeType":"YulFunctionCall","src":"839:32:25"},"nodeType":"YulIf","src":"836:52:25"},{"nodeType":"YulVariableDeclaration","src":"897:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"923:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"910:12:25"},"nodeType":"YulFunctionCall","src":"910:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"901:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"967:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"942:24:25"},"nodeType":"YulFunctionCall","src":"942:31:25"},"nodeType":"YulExpressionStatement","src":"942:31:25"},{"nodeType":"YulAssignment","src":"982:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"992:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"792:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"803:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"815:6:25","type":""}],"src":"756:247:25"},{"body":{"nodeType":"YulBlock","src":"1107:89:25","statements":[{"nodeType":"YulAssignment","src":"1117:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1129:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1125:3:25"},"nodeType":"YulFunctionCall","src":"1125:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1117:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1159:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1174:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1182:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1170:3:25"},"nodeType":"YulFunctionCall","src":"1170:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1152:6:25"},"nodeType":"YulFunctionCall","src":"1152:38:25"},"nodeType":"YulExpressionStatement","src":"1152:38:25"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1076:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1087:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1098:4:25","type":""}],"src":"1008:188:25"},{"body":{"nodeType":"YulBlock","src":"1273:275:25","statements":[{"body":{"nodeType":"YulBlock","src":"1322:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1334:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1324:6:25"},"nodeType":"YulFunctionCall","src":"1324:12:25"},"nodeType":"YulExpressionStatement","src":"1324:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1309:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1297:3:25"},"nodeType":"YulFunctionCall","src":"1297:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"1316:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1293:3:25"},"nodeType":"YulFunctionCall","src":"1293:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1286:6:25"},"nodeType":"YulFunctionCall","src":"1286:35:25"},"nodeType":"YulIf","src":"1283:55:25"},{"nodeType":"YulAssignment","src":"1347:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1357:12:25"},"nodeType":"YulFunctionCall","src":"1357:20:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1347:6:25"}]},{"body":{"nodeType":"YulBlock","src":"1420:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1429:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1432:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1422:6:25"},"nodeType":"YulFunctionCall","src":"1422:12:25"},"nodeType":"YulExpressionStatement","src":"1422:12:25"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1392:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1400:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:25"},"nodeType":"YulFunctionCall","src":"1389:30:25"},"nodeType":"YulIf","src":"1386:50:25"},{"nodeType":"YulAssignment","src":"1445:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1461:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1469:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1457:3:25"},"nodeType":"YulFunctionCall","src":"1457:17:25"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1445:8:25"}]},{"body":{"nodeType":"YulBlock","src":"1526:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1535:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1538:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1528:6:25"},"nodeType":"YulFunctionCall","src":"1528:12:25"},"nodeType":"YulExpressionStatement","src":"1528:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1497:6:25"},{"name":"length","nodeType":"YulIdentifier","src":"1505:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:25"},"nodeType":"YulFunctionCall","src":"1493:19:25"},{"kind":"number","nodeType":"YulLiteral","src":"1514:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1489:3:25"},"nodeType":"YulFunctionCall","src":"1489:30:25"},{"name":"end","nodeType":"YulIdentifier","src":"1521:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1486:2:25"},"nodeType":"YulFunctionCall","src":"1486:39:25"},"nodeType":"YulIf","src":"1483:59:25"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1236:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"1244:3:25","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"1252:8:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"1262:6:25","type":""}],"src":"1201:347:25"},{"body":{"nodeType":"YulBlock","src":"1658:376:25","statements":[{"body":{"nodeType":"YulBlock","src":"1704:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1713:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1716:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1706:6:25"},"nodeType":"YulFunctionCall","src":"1706:12:25"},"nodeType":"YulExpressionStatement","src":"1706:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1679:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1688:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1675:3:25"},"nodeType":"YulFunctionCall","src":"1675:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1700:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1671:3:25"},"nodeType":"YulFunctionCall","src":"1671:32:25"},"nodeType":"YulIf","src":"1668:52:25"},{"nodeType":"YulAssignment","src":"1729:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1757:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1739:17:25"},"nodeType":"YulFunctionCall","src":"1739:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1729:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1776:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1807:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1818:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1803:3:25"},"nodeType":"YulFunctionCall","src":"1803:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1790:12:25"},"nodeType":"YulFunctionCall","src":"1790:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1865:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1874:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1877:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1867:6:25"},"nodeType":"YulFunctionCall","src":"1867:12:25"},"nodeType":"YulExpressionStatement","src":"1867:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1837:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1845:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1834:2:25"},"nodeType":"YulFunctionCall","src":"1834:30:25"},"nodeType":"YulIf","src":"1831:50:25"},{"nodeType":"YulVariableDeclaration","src":"1890:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1946:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1957:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1942:3:25"},"nodeType":"YulFunctionCall","src":"1942:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1966:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1916:25:25"},"nodeType":"YulFunctionCall","src":"1916:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1894:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1904:8:25","type":""}]},{"nodeType":"YulAssignment","src":"1983:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1993:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1983:6:25"}]},{"nodeType":"YulAssignment","src":"2010:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2020:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2010:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1608:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1619:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1631:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1639:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1647:6:25","type":""}],"src":"1553:481:25"},{"body":{"nodeType":"YulBlock","src":"2134:92:25","statements":[{"nodeType":"YulAssignment","src":"2144:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2156:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2167:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2152:3:25"},"nodeType":"YulFunctionCall","src":"2152:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2144:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2186:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2211:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2204:6:25"},"nodeType":"YulFunctionCall","src":"2204:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2197:6:25"},"nodeType":"YulFunctionCall","src":"2197:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:25"},"nodeType":"YulFunctionCall","src":"2179:41:25"},"nodeType":"YulExpressionStatement","src":"2179:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2103:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2114:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2125:4:25","type":""}],"src":"2039:187:25"},{"body":{"nodeType":"YulBlock","src":"2263:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2280:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2287:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2292:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2283:3:25"},"nodeType":"YulFunctionCall","src":"2283:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2273:6:25"},"nodeType":"YulFunctionCall","src":"2273:31:25"},"nodeType":"YulExpressionStatement","src":"2273:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2320:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2323:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2313:6:25"},"nodeType":"YulFunctionCall","src":"2313:15:25"},"nodeType":"YulExpressionStatement","src":"2313:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2344:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2347:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2337:6:25"},"nodeType":"YulFunctionCall","src":"2337:15:25"},"nodeType":"YulExpressionStatement","src":"2337:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2231:127:25"},{"body":{"nodeType":"YulBlock","src":"2415:666:25","statements":[{"body":{"nodeType":"YulBlock","src":"2464:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2473:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2476:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2466:6:25"},"nodeType":"YulFunctionCall","src":"2466:12:25"},"nodeType":"YulExpressionStatement","src":"2466:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2443:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2451:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2439:3:25"},"nodeType":"YulFunctionCall","src":"2439:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"2458:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2435:3:25"},"nodeType":"YulFunctionCall","src":"2435:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2428:6:25"},"nodeType":"YulFunctionCall","src":"2428:35:25"},"nodeType":"YulIf","src":"2425:55:25"},{"nodeType":"YulVariableDeclaration","src":"2489:30:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2512:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2499:12:25"},"nodeType":"YulFunctionCall","src":"2499:20:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2493:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2528:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"2538:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2532:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2579:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2581:16:25"},"nodeType":"YulFunctionCall","src":"2581:18:25"},"nodeType":"YulExpressionStatement","src":"2581:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2571:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2575:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2568:2:25"},"nodeType":"YulFunctionCall","src":"2568:10:25"},"nodeType":"YulIf","src":"2565:36:25"},{"nodeType":"YulVariableDeclaration","src":"2610:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2624:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2620:3:25"},"nodeType":"YulFunctionCall","src":"2620:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2614:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2636:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2656:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2650:5:25"},"nodeType":"YulFunctionCall","src":"2650:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2640:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2668:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2690:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2714:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"2718:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2710:3:25"},"nodeType":"YulFunctionCall","src":"2710:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2725:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2706:3:25"},"nodeType":"YulFunctionCall","src":"2706:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2702:3:25"},"nodeType":"YulFunctionCall","src":"2702:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"2735:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2698:3:25"},"nodeType":"YulFunctionCall","src":"2698:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2686:3:25"},"nodeType":"YulFunctionCall","src":"2686:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2672:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2798:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2800:16:25"},"nodeType":"YulFunctionCall","src":"2800:18:25"},"nodeType":"YulExpressionStatement","src":"2800:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2757:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"2769:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2754:2:25"},"nodeType":"YulFunctionCall","src":"2754:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2777:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2789:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2774:2:25"},"nodeType":"YulFunctionCall","src":"2774:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2751:2:25"},"nodeType":"YulFunctionCall","src":"2751:46:25"},"nodeType":"YulIf","src":"2748:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2836:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2840:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2829:6:25"},"nodeType":"YulFunctionCall","src":"2829:22:25"},"nodeType":"YulExpressionStatement","src":"2829:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2867:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2875:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2860:6:25"},"nodeType":"YulFunctionCall","src":"2860:18:25"},"nodeType":"YulExpressionStatement","src":"2860:18:25"},{"body":{"nodeType":"YulBlock","src":"2926:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2935:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2928:6:25"},"nodeType":"YulFunctionCall","src":"2928:12:25"},"nodeType":"YulExpressionStatement","src":"2928:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2901:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"2909:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"2914:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2893:3:25"},"nodeType":"YulFunctionCall","src":"2893:26:25"},{"name":"end","nodeType":"YulIdentifier","src":"2921:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2890:2:25"},"nodeType":"YulFunctionCall","src":"2890:35:25"},"nodeType":"YulIf","src":"2887:55:25"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2968:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2976:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2964:3:25"},"nodeType":"YulFunctionCall","src":"2964:17:25"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2983:3:25"},"nodeType":"YulFunctionCall","src":"2983:17:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3002:2:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2951:12:25"},"nodeType":"YulFunctionCall","src":"2951:54:25"},"nodeType":"YulExpressionStatement","src":"2951:54:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3029:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3037:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3025:3:25"},"nodeType":"YulFunctionCall","src":"3025:15:25"},{"kind":"number","nodeType":"YulLiteral","src":"3042:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:25"},"nodeType":"YulFunctionCall","src":"3021:26:25"},{"kind":"number","nodeType":"YulLiteral","src":"3049:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3014:6:25"},"nodeType":"YulFunctionCall","src":"3014:37:25"},"nodeType":"YulExpressionStatement","src":"3014:37:25"},{"nodeType":"YulAssignment","src":"3060:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3069:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3060:5:25"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2389:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"2397:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2405:5:25","type":""}],"src":"2363:718:25"},{"body":{"nodeType":"YulBlock","src":"3198:348:25","statements":[{"body":{"nodeType":"YulBlock","src":"3244:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3253:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3256:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3246:6:25"},"nodeType":"YulFunctionCall","src":"3246:12:25"},"nodeType":"YulExpressionStatement","src":"3246:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3219:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"3228:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3215:3:25"},"nodeType":"YulFunctionCall","src":"3215:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"3240:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3211:3:25"},"nodeType":"YulFunctionCall","src":"3211:32:25"},"nodeType":"YulIf","src":"3208:52:25"},{"nodeType":"YulAssignment","src":"3269:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3297:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"3279:17:25"},"nodeType":"YulFunctionCall","src":"3279:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3269:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"3316:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3347:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3358:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3343:3:25"},"nodeType":"YulFunctionCall","src":"3343:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3330:12:25"},"nodeType":"YulFunctionCall","src":"3330:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3320:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3405:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3414:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3417:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3407:6:25"},"nodeType":"YulFunctionCall","src":"3407:12:25"},"nodeType":"YulExpressionStatement","src":"3407:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3377:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3385:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3374:2:25"},"nodeType":"YulFunctionCall","src":"3374:30:25"},"nodeType":"YulIf","src":"3371:50:25"},{"nodeType":"YulAssignment","src":"3430:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3461:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"3472:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3457:3:25"},"nodeType":"YulFunctionCall","src":"3457:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3481:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3440:16:25"},"nodeType":"YulFunctionCall","src":"3440:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3430:6:25"}]},{"nodeType":"YulAssignment","src":"3498:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3536:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:25"},"nodeType":"YulFunctionCall","src":"3521:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3508:12:25"},"nodeType":"YulFunctionCall","src":"3508:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3498:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3148:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3159:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3171:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3179:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3187:6:25","type":""}],"src":"3086:460:25"},{"body":{"nodeType":"YulBlock","src":"3600:422:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3610:26:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3630:5:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3624:5:25"},"nodeType":"YulFunctionCall","src":"3624:12:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3614:6:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3652:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3657:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3645:6:25"},"nodeType":"YulFunctionCall","src":"3645:19:25"},"nodeType":"YulExpressionStatement","src":"3645:19:25"},{"nodeType":"YulVariableDeclaration","src":"3673:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3682:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3677:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"3744:110:25","statements":[{"nodeType":"YulVariableDeclaration","src":"3758:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"3768:4:25","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3762:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3800:3:25"},{"name":"i","nodeType":"YulIdentifier","src":"3805:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3796:3:25"},"nodeType":"YulFunctionCall","src":"3796:11:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3809:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:25"},"nodeType":"YulFunctionCall","src":"3792:20:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3828:5:25"},{"name":"i","nodeType":"YulIdentifier","src":"3835:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3824:3:25"},"nodeType":"YulFunctionCall","src":"3824:13:25"},{"name":"_1","nodeType":"YulIdentifier","src":"3839:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3820:3:25"},"nodeType":"YulFunctionCall","src":"3820:22:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3814:5:25"},"nodeType":"YulFunctionCall","src":"3814:29:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3785:6:25"},"nodeType":"YulFunctionCall","src":"3785:59:25"},"nodeType":"YulExpressionStatement","src":"3785:59:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3703:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3706:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3700:2:25"},"nodeType":"YulFunctionCall","src":"3700:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3714:21:25","statements":[{"nodeType":"YulAssignment","src":"3716:17:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3725:1:25"},{"kind":"number","nodeType":"YulLiteral","src":"3728:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:25"},"nodeType":"YulFunctionCall","src":"3721:12:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3716:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"3696:3:25","statements":[]},"src":"3692:162:25"},{"body":{"nodeType":"YulBlock","src":"3888:62:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3917:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"3922:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:25"},"nodeType":"YulFunctionCall","src":"3913:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"3931:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3909:3:25"},"nodeType":"YulFunctionCall","src":"3909:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"3938:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3902:6:25"},"nodeType":"YulFunctionCall","src":"3902:38:25"},"nodeType":"YulExpressionStatement","src":"3902:38:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3869:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"3872:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3866:2:25"},"nodeType":"YulFunctionCall","src":"3866:13:25"},"nodeType":"YulIf","src":"3863:87:25"},{"nodeType":"YulAssignment","src":"3959:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3974:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3987:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"3995:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:25"},"nodeType":"YulFunctionCall","src":"3983:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4004:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4000:3:25"},"nodeType":"YulFunctionCall","src":"4000:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3979:3:25"},"nodeType":"YulFunctionCall","src":"3979:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3970:3:25"},"nodeType":"YulFunctionCall","src":"3970:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:25"},"nodeType":"YulFunctionCall","src":"3966:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3959:3:25"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3577:5:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3584:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3592:3:25","type":""}],"src":"3551:471:25"},{"body":{"nodeType":"YulBlock","src":"4200:235:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4232:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4248:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4253:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4244:3:25"},"nodeType":"YulFunctionCall","src":"4244:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4240:3:25"},"nodeType":"YulFunctionCall","src":"4240:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4228:3:25"},"nodeType":"YulFunctionCall","src":"4228:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4210:6:25"},"nodeType":"YulFunctionCall","src":"4210:51:25"},"nodeType":"YulExpressionStatement","src":"4210:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4281:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4292:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4277:3:25"},"nodeType":"YulFunctionCall","src":"4277:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4301:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"4309:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4297:3:25"},"nodeType":"YulFunctionCall","src":"4297:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:25"},"nodeType":"YulFunctionCall","src":"4270:59:25"},"nodeType":"YulExpressionStatement","src":"4270:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4349:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:25"},"nodeType":"YulFunctionCall","src":"4345:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:25","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4338:6:25"},"nodeType":"YulFunctionCall","src":"4338:30:25"},"nodeType":"YulExpressionStatement","src":"4338:30:25"},{"nodeType":"YulAssignment","src":"4377:52:25","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4402:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4414:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4425:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:25"},"nodeType":"YulFunctionCall","src":"4410:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4385:16:25"},"nodeType":"YulFunctionCall","src":"4385:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4377:4:25"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4153:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4164:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4172:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4180:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4191:4:25","type":""}],"src":"4027:408:25"},{"body":{"nodeType":"YulBlock","src":"4527:161:25","statements":[{"body":{"nodeType":"YulBlock","src":"4573:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4582:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4585:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4575:6:25"},"nodeType":"YulFunctionCall","src":"4575:12:25"},"nodeType":"YulExpressionStatement","src":"4575:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4548:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"4557:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4544:3:25"},"nodeType":"YulFunctionCall","src":"4544:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"4569:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4540:3:25"},"nodeType":"YulFunctionCall","src":"4540:32:25"},"nodeType":"YulIf","src":"4537:52:25"},{"nodeType":"YulAssignment","src":"4598:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4608:12:25"},"nodeType":"YulFunctionCall","src":"4608:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4598:6:25"}]},{"nodeType":"YulAssignment","src":"4640:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4667:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4678:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4663:3:25"},"nodeType":"YulFunctionCall","src":"4663:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4650:12:25"},"nodeType":"YulFunctionCall","src":"4650:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4640:6:25"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4485:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4496:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4508:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4516:6:25","type":""}],"src":"4440:248:25"},{"body":{"nodeType":"YulBlock","src":"4812:98:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4829:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4840:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4822:6:25"},"nodeType":"YulFunctionCall","src":"4822:21:25"},"nodeType":"YulExpressionStatement","src":"4822:21:25"},{"nodeType":"YulAssignment","src":"4852:52:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:25"},"nodeType":"YulFunctionCall","src":"4885:18:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4860:16:25"},"nodeType":"YulFunctionCall","src":"4860:44:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4852:4:25"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4781:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4792:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4803:4:25","type":""}],"src":"4693:217:25"},{"body":{"nodeType":"YulBlock","src":"4964:139:25","statements":[{"nodeType":"YulAssignment","src":"4974:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4996:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4983:12:25"},"nodeType":"YulFunctionCall","src":"4983:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4974:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5081:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5090:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5093:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5083:6:25"},"nodeType":"YulFunctionCall","src":"5083:12:25"},"nodeType":"YulExpressionStatement","src":"5083:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5025:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5036:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5043:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5032:3:25"},"nodeType":"YulFunctionCall","src":"5032:46:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5022:2:25"},"nodeType":"YulFunctionCall","src":"5022:57:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5015:6:25"},"nodeType":"YulFunctionCall","src":"5015:65:25"},"nodeType":"YulIf","src":"5012:85:25"}]},"name":"abi_decode_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4943:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4954:5:25","type":""}],"src":"4915:188:25"},{"body":{"nodeType":"YulBlock","src":"5156:123:25","statements":[{"nodeType":"YulAssignment","src":"5166:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5188:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5175:12:25"},"nodeType":"YulFunctionCall","src":"5175:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5166:5:25"}]},{"body":{"nodeType":"YulBlock","src":"5257:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5266:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5269:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5259:6:25"},"nodeType":"YulFunctionCall","src":"5259:12:25"},"nodeType":"YulExpressionStatement","src":"5259:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5228:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"5235:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5224:3:25"},"nodeType":"YulFunctionCall","src":"5224:30:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5214:2:25"},"nodeType":"YulFunctionCall","src":"5214:41:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5207:6:25"},"nodeType":"YulFunctionCall","src":"5207:49:25"},"nodeType":"YulIf","src":"5204:69:25"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5135:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5146:5:25","type":""}],"src":"5108:171:25"},{"body":{"nodeType":"YulBlock","src":"5420:344:25","statements":[{"body":{"nodeType":"YulBlock","src":"5467:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5476:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5479:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:25"},"nodeType":"YulFunctionCall","src":"5469:12:25"},"nodeType":"YulExpressionStatement","src":"5469:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5441:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5450:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5437:3:25"},"nodeType":"YulFunctionCall","src":"5437:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5462:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5433:3:25"},"nodeType":"YulFunctionCall","src":"5433:33:25"},"nodeType":"YulIf","src":"5430:53:25"},{"nodeType":"YulAssignment","src":"5492:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5521:9:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5502:18:25"},"nodeType":"YulFunctionCall","src":"5502:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5492:6:25"}]},{"nodeType":"YulAssignment","src":"5540:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5573:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5584:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5569:3:25"},"nodeType":"YulFunctionCall","src":"5569:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5550:18:25"},"nodeType":"YulFunctionCall","src":"5550:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5540:6:25"}]},{"nodeType":"YulAssignment","src":"5597:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5630:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5641:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5626:3:25"},"nodeType":"YulFunctionCall","src":"5626:18:25"}],"functionName":{"name":"abi_decode_uint128","nodeType":"YulIdentifier","src":"5607:18:25"},"nodeType":"YulFunctionCall","src":"5607:38:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5597:6:25"}]},{"nodeType":"YulAssignment","src":"5654:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5686:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5697:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5682:3:25"},"nodeType":"YulFunctionCall","src":"5682:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5664:17:25"},"nodeType":"YulFunctionCall","src":"5664:37:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5654:6:25"}]},{"nodeType":"YulAssignment","src":"5710:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5753:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:25"},"nodeType":"YulFunctionCall","src":"5738:19:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"5720:17:25"},"nodeType":"YulFunctionCall","src":"5720:38:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5710:6:25"}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5354:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5365:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5377:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5385:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5393:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5401:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5409:6:25","type":""}],"src":"5284:480:25"},{"body":{"nodeType":"YulBlock","src":"5921:765:25","statements":[{"body":{"nodeType":"YulBlock","src":"5968:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5977:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5980:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5970:6:25"},"nodeType":"YulFunctionCall","src":"5970:12:25"},"nodeType":"YulExpressionStatement","src":"5970:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5942:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"5951:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5938:3:25"},"nodeType":"YulFunctionCall","src":"5938:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"5963:3:25","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5934:3:25"},"nodeType":"YulFunctionCall","src":"5934:33:25"},"nodeType":"YulIf","src":"5931:53:25"},{"nodeType":"YulAssignment","src":"5993:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6021:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"6003:17:25"},"nodeType":"YulFunctionCall","src":"6003:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5993:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6040:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6070:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6081:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6066:3:25"},"nodeType":"YulFunctionCall","src":"6066:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6053:12:25"},"nodeType":"YulFunctionCall","src":"6053:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6044:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6119:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6094:24:25"},"nodeType":"YulFunctionCall","src":"6094:31:25"},"nodeType":"YulExpressionStatement","src":"6094:31:25"},{"nodeType":"YulAssignment","src":"6134:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"6144:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6134:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6158:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6200:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6185:3:25"},"nodeType":"YulFunctionCall","src":"6185:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6172:12:25"},"nodeType":"YulFunctionCall","src":"6172:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6162:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6213:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"6223:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6217:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6268:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6280:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6270:6:25"},"nodeType":"YulFunctionCall","src":"6270:12:25"},"nodeType":"YulExpressionStatement","src":"6270:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6256:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6264:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6253:2:25"},"nodeType":"YulFunctionCall","src":"6253:14:25"},"nodeType":"YulIf","src":"6250:34:25"},{"nodeType":"YulAssignment","src":"6293:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6324:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"6335:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6320:3:25"},"nodeType":"YulFunctionCall","src":"6320:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6344:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6303:16:25"},"nodeType":"YulFunctionCall","src":"6303:49:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6293:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6361:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6393:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6404:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6389:3:25"},"nodeType":"YulFunctionCall","src":"6389:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6376:12:25"},"nodeType":"YulFunctionCall","src":"6376:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6365:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6465:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6474:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6477:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6467:6:25"},"nodeType":"YulFunctionCall","src":"6467:12:25"},"nodeType":"YulExpressionStatement","src":"6467:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6430:7:25"},{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6453:7:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6446:6:25"},"nodeType":"YulFunctionCall","src":"6446:15:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6439:6:25"},"nodeType":"YulFunctionCall","src":"6439:23:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6427:2:25"},"nodeType":"YulFunctionCall","src":"6427:36:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6420:6:25"},"nodeType":"YulFunctionCall","src":"6420:44:25"},"nodeType":"YulIf","src":"6417:64:25"},{"nodeType":"YulAssignment","src":"6490:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6500:7:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6490:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"6516:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6549:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6560:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6545:3:25"},"nodeType":"YulFunctionCall","src":"6545:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6532:12:25"},"nodeType":"YulFunctionCall","src":"6532:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6520:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"6594:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6603:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6606:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6596:6:25"},"nodeType":"YulFunctionCall","src":"6596:12:25"},"nodeType":"YulExpressionStatement","src":"6596:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6580:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"6590:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6577:2:25"},"nodeType":"YulFunctionCall","src":"6577:16:25"},"nodeType":"YulIf","src":"6574:36:25"},{"nodeType":"YulAssignment","src":"6619:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6650:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6661:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6646:3:25"},"nodeType":"YulFunctionCall","src":"6646:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6672:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6629:16:25"},"nodeType":"YulFunctionCall","src":"6629:51:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6619:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5855:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5866:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5878:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5886:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5894:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5902:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5910:6:25","type":""}],"src":"5769:917:25"},{"body":{"nodeType":"YulBlock","src":"6792:102:25","statements":[{"nodeType":"YulAssignment","src":"6802:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6814:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6825:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6810:3:25"},"nodeType":"YulFunctionCall","src":"6810:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6802:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6844:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6859:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6875:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6880:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6871:3:25"},"nodeType":"YulFunctionCall","src":"6871:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"6884:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6867:3:25"},"nodeType":"YulFunctionCall","src":"6867:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6855:3:25"},"nodeType":"YulFunctionCall","src":"6855:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6837:6:25"},"nodeType":"YulFunctionCall","src":"6837:51:25"},"nodeType":"YulExpressionStatement","src":"6837:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6761:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6772:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6783:4:25","type":""}],"src":"6691:203:25"},{"body":{"nodeType":"YulBlock","src":"6994:297:25","statements":[{"body":{"nodeType":"YulBlock","src":"7040:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7049:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7052:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7042:6:25"},"nodeType":"YulFunctionCall","src":"7042:12:25"},"nodeType":"YulExpressionStatement","src":"7042:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7015:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7011:3:25"},"nodeType":"YulFunctionCall","src":"7011:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7036:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7007:3:25"},"nodeType":"YulFunctionCall","src":"7007:32:25"},"nodeType":"YulIf","src":"7004:52:25"},{"nodeType":"YulAssignment","src":"7065:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7093:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7075:17:25"},"nodeType":"YulFunctionCall","src":"7075:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7065:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7112:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7143:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7154:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7139:3:25"},"nodeType":"YulFunctionCall","src":"7139:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7126:12:25"},"nodeType":"YulFunctionCall","src":"7126:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7116:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"7201:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7210:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7213:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7203:6:25"},"nodeType":"YulFunctionCall","src":"7203:12:25"},"nodeType":"YulExpressionStatement","src":"7203:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7173:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7181:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7170:2:25"},"nodeType":"YulFunctionCall","src":"7170:30:25"},"nodeType":"YulIf","src":"7167:50:25"},{"nodeType":"YulAssignment","src":"7226:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7257:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"7268:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:25"},"nodeType":"YulFunctionCall","src":"7253:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7277:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7236:16:25"},"nodeType":"YulFunctionCall","src":"7236:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7226:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6952:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6963:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6975:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6983:6:25","type":""}],"src":"6899:392:25"},{"body":{"nodeType":"YulBlock","src":"7451:213:25","statements":[{"nodeType":"YulAssignment","src":"7461:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7473:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7484:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7469:3:25"},"nodeType":"YulFunctionCall","src":"7469:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7461:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7503:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7518:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"7526:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7514:3:25"},"nodeType":"YulFunctionCall","src":"7514:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7496:6:25"},"nodeType":"YulFunctionCall","src":"7496:50:25"},"nodeType":"YulExpressionStatement","src":"7496:50:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7566:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7577:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7562:3:25"},"nodeType":"YulFunctionCall","src":"7562:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7586:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7602:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7607:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7598:3:25"},"nodeType":"YulFunctionCall","src":"7598:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"7611:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7594:3:25"},"nodeType":"YulFunctionCall","src":"7594:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7582:3:25"},"nodeType":"YulFunctionCall","src":"7582:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7555:6:25"},"nodeType":"YulFunctionCall","src":"7555:60:25"},"nodeType":"YulExpressionStatement","src":"7555:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7635:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7646:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7631:3:25"},"nodeType":"YulFunctionCall","src":"7631:18:25"},{"name":"value2","nodeType":"YulIdentifier","src":"7651:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7624:6:25"},"nodeType":"YulFunctionCall","src":"7624:34:25"},"nodeType":"YulExpressionStatement","src":"7624:34:25"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7404:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7415:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7423:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7431:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7442:4:25","type":""}],"src":"7296:368:25"},{"body":{"nodeType":"YulBlock","src":"7755:233:25","statements":[{"body":{"nodeType":"YulBlock","src":"7801:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7810:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7813:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7803:6:25"},"nodeType":"YulFunctionCall","src":"7803:12:25"},"nodeType":"YulExpressionStatement","src":"7803:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7776:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"7785:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7772:3:25"},"nodeType":"YulFunctionCall","src":"7772:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"7797:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7768:3:25"},"nodeType":"YulFunctionCall","src":"7768:32:25"},"nodeType":"YulIf","src":"7765:52:25"},{"nodeType":"YulAssignment","src":"7826:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7854:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"7836:17:25"},"nodeType":"YulFunctionCall","src":"7836:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7826:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"7873:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7903:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"7914:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7899:3:25"},"nodeType":"YulFunctionCall","src":"7899:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7886:12:25"},"nodeType":"YulFunctionCall","src":"7886:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7877:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7952:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7927:24:25"},"nodeType":"YulFunctionCall","src":"7927:31:25"},"nodeType":"YulExpressionStatement","src":"7927:31:25"},{"nodeType":"YulAssignment","src":"7967:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"7977:5:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7967:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7713:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7724:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7736:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7744:6:25","type":""}],"src":"7669:319:25"},{"body":{"nodeType":"YulBlock","src":"8092:101:25","statements":[{"nodeType":"YulAssignment","src":"8102:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8114:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8125:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8110:3:25"},"nodeType":"YulFunctionCall","src":"8110:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8102:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8159:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"8167:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8155:3:25"},"nodeType":"YulFunctionCall","src":"8155:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8137:6:25"},"nodeType":"YulFunctionCall","src":"8137:50:25"},"nodeType":"YulExpressionStatement","src":"8137:50:25"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8061:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8072:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8083:4:25","type":""}],"src":"7993:200:25"},{"body":{"nodeType":"YulBlock","src":"8299:76:25","statements":[{"nodeType":"YulAssignment","src":"8309:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8321:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8332:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8317:3:25"},"nodeType":"YulFunctionCall","src":"8317:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8309:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8351:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"8362:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8344:6:25"},"nodeType":"YulFunctionCall","src":"8344:25:25"},"nodeType":"YulExpressionStatement","src":"8344:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8268:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8279:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8290:4:25","type":""}],"src":"8198:177:25"},{"body":{"nodeType":"YulBlock","src":"8589:385:25","statements":[{"nodeType":"YulAssignment","src":"8599:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8611:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8622:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8607:3:25"},"nodeType":"YulFunctionCall","src":"8607:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8599:4:25"}]},{"nodeType":"YulVariableDeclaration","src":"8635:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8645:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8639:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8695:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8710:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8718:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8706:3:25"},"nodeType":"YulFunctionCall","src":"8706:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8688:6:25"},"nodeType":"YulFunctionCall","src":"8688:34:25"},"nodeType":"YulExpressionStatement","src":"8688:34:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8742:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8753:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8738:3:25"},"nodeType":"YulFunctionCall","src":"8738:18:25"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8762:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8770:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8758:3:25"},"nodeType":"YulFunctionCall","src":"8758:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8731:6:25"},"nodeType":"YulFunctionCall","src":"8731:43:25"},"nodeType":"YulExpressionStatement","src":"8731:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8805:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8790:3:25"},"nodeType":"YulFunctionCall","src":"8790:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8814:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"8822:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8810:3:25"},"nodeType":"YulFunctionCall","src":"8810:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8783:6:25"},"nodeType":"YulFunctionCall","src":"8783:43:25"},"nodeType":"YulExpressionStatement","src":"8783:43:25"},{"nodeType":"YulVariableDeclaration","src":"8835:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"8845:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8839:2:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8894:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8879:3:25"},"nodeType":"YulFunctionCall","src":"8879:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8903:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8911:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8899:3:25"},"nodeType":"YulFunctionCall","src":"8899:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8872:6:25"},"nodeType":"YulFunctionCall","src":"8872:43:25"},"nodeType":"YulExpressionStatement","src":"8872:43:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8935:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"8946:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8931:3:25"},"nodeType":"YulFunctionCall","src":"8931:19:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8956:6:25"},{"name":"_2","nodeType":"YulIdentifier","src":"8964:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8952:3:25"},"nodeType":"YulFunctionCall","src":"8952:15:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8924:6:25"},"nodeType":"YulFunctionCall","src":"8924:44:25"},"nodeType":"YulExpressionStatement","src":"8924:44:25"}]},"name":"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8526:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8537:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8545:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8553:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8561:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8569:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8580:4:25","type":""}],"src":"8380:594:25"},{"body":{"nodeType":"YulBlock","src":"9120:648:25","statements":[{"body":{"nodeType":"YulBlock","src":"9166:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9175:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9178:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9168:6:25"},"nodeType":"YulFunctionCall","src":"9168:12:25"},"nodeType":"YulExpressionStatement","src":"9168:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9141:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9137:3:25"},"nodeType":"YulFunctionCall","src":"9137:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9162:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9133:3:25"},"nodeType":"YulFunctionCall","src":"9133:32:25"},"nodeType":"YulIf","src":"9130:52:25"},{"nodeType":"YulAssignment","src":"9191:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9219:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"9201:17:25"},"nodeType":"YulFunctionCall","src":"9201:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9191:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9238:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9280:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:25"},"nodeType":"YulFunctionCall","src":"9265:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9252:12:25"},"nodeType":"YulFunctionCall","src":"9252:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9242:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9293:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"9303:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9297:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9348:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9357:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9360:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9350:6:25"},"nodeType":"YulFunctionCall","src":"9350:12:25"},"nodeType":"YulExpressionStatement","src":"9350:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9336:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9344:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9333:2:25"},"nodeType":"YulFunctionCall","src":"9333:14:25"},"nodeType":"YulIf","src":"9330:34:25"},{"nodeType":"YulVariableDeclaration","src":"9373:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9429:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"9440:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9425:3:25"},"nodeType":"YulFunctionCall","src":"9425:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9449:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9399:25:25"},"nodeType":"YulFunctionCall","src":"9399:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"9377:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"9387:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9466:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"9476:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9466:6:25"}]},{"nodeType":"YulAssignment","src":"9493:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"9503:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9493:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"9520:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9553:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"9564:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9549:3:25"},"nodeType":"YulFunctionCall","src":"9549:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9536:12:25"},"nodeType":"YulFunctionCall","src":"9536:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9524:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"9597:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9606:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9609:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9599:6:25"},"nodeType":"YulFunctionCall","src":"9599:12:25"},"nodeType":"YulExpressionStatement","src":"9599:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9583:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"9593:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9580:2:25"},"nodeType":"YulFunctionCall","src":"9580:16:25"},"nodeType":"YulIf","src":"9577:36:25"},{"nodeType":"YulVariableDeclaration","src":"9622:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9678:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9689:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9674:3:25"},"nodeType":"YulFunctionCall","src":"9674:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9700:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9648:25:25"},"nodeType":"YulFunctionCall","src":"9648:60:25"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9626:8:25","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9636:8:25","type":""}]},{"nodeType":"YulAssignment","src":"9717:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9727:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9717:6:25"}]},{"nodeType":"YulAssignment","src":"9744:18:25","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9754:8:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9744:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9054:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9065:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9077:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9085:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9093:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9101:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9109:6:25","type":""}],"src":"8979:789:25"},{"body":{"nodeType":"YulBlock","src":"9843:110:25","statements":[{"body":{"nodeType":"YulBlock","src":"9889:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9898:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9901:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9891:6:25"},"nodeType":"YulFunctionCall","src":"9891:12:25"},"nodeType":"YulExpressionStatement","src":"9891:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9864:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"9873:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9860:3:25"},"nodeType":"YulFunctionCall","src":"9860:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"9885:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9856:3:25"},"nodeType":"YulFunctionCall","src":"9856:32:25"},"nodeType":"YulIf","src":"9853:52:25"},{"nodeType":"YulAssignment","src":"9914:33:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9937:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9924:12:25"},"nodeType":"YulFunctionCall","src":"9924:23:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9914:6:25"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9809:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9820:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9832:6:25","type":""}],"src":"9773:180:25"},{"body":{"nodeType":"YulBlock","src":"10045:301:25","statements":[{"body":{"nodeType":"YulBlock","src":"10091:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10100:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10103:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10093:6:25"},"nodeType":"YulFunctionCall","src":"10093:12:25"},"nodeType":"YulExpressionStatement","src":"10093:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10066:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10075:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10062:3:25"},"nodeType":"YulFunctionCall","src":"10062:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10058:3:25"},"nodeType":"YulFunctionCall","src":"10058:32:25"},"nodeType":"YulIf","src":"10055:52:25"},{"nodeType":"YulVariableDeclaration","src":"10116:36:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10142:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10129:12:25"},"nodeType":"YulFunctionCall","src":"10129:23:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10120:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10186:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10161:24:25"},"nodeType":"YulFunctionCall","src":"10161:31:25"},"nodeType":"YulExpressionStatement","src":"10161:31:25"},{"nodeType":"YulAssignment","src":"10201:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"10211:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10201:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10225:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10257:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10268:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10253:3:25"},"nodeType":"YulFunctionCall","src":"10253:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10240:12:25"},"nodeType":"YulFunctionCall","src":"10240:32:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10229:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10306:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10281:24:25"},"nodeType":"YulFunctionCall","src":"10281:33:25"},"nodeType":"YulExpressionStatement","src":"10281:33:25"},{"nodeType":"YulAssignment","src":"10323:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10333:7:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10323:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10003:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10014:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10026:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10034:6:25","type":""}],"src":"9958:388:25"},{"body":{"nodeType":"YulBlock","src":"10542:876:25","statements":[{"body":{"nodeType":"YulBlock","src":"10589:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10598:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10601:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10591:6:25"},"nodeType":"YulFunctionCall","src":"10591:12:25"},"nodeType":"YulExpressionStatement","src":"10591:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10563:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"10572:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10559:3:25"},"nodeType":"YulFunctionCall","src":"10559:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"10584:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10555:3:25"},"nodeType":"YulFunctionCall","src":"10555:33:25"},"nodeType":"YulIf","src":"10552:53:25"},{"nodeType":"YulAssignment","src":"10614:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10642:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"10624:17:25"},"nodeType":"YulFunctionCall","src":"10624:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10614:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10661:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10692:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10703:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10688:3:25"},"nodeType":"YulFunctionCall","src":"10688:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10675:12:25"},"nodeType":"YulFunctionCall","src":"10675:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10665:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10716:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"10726:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10720:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"10771:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10780:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10783:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10773:6:25"},"nodeType":"YulFunctionCall","src":"10773:12:25"},"nodeType":"YulExpressionStatement","src":"10773:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10759:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"10767:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10756:2:25"},"nodeType":"YulFunctionCall","src":"10756:14:25"},"nodeType":"YulIf","src":"10753:34:25"},{"nodeType":"YulVariableDeclaration","src":"10796:84:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10852:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"10863:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10848:3:25"},"nodeType":"YulFunctionCall","src":"10848:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10872:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10822:25:25"},"nodeType":"YulFunctionCall","src":"10822:58:25"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"10800:8:25","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"10810:8:25","type":""}]},{"nodeType":"YulAssignment","src":"10889:18:25","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"10899:8:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10889:6:25"}]},{"nodeType":"YulAssignment","src":"10916:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"10926:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"10943:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10973:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"10984:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:25"},"nodeType":"YulFunctionCall","src":"10969:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10956:12:25"},"nodeType":"YulFunctionCall","src":"10956:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10947:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11022:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10997:24:25"},"nodeType":"YulFunctionCall","src":"10997:31:25"},"nodeType":"YulExpressionStatement","src":"10997:31:25"},{"nodeType":"YulAssignment","src":"11037:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"11047:5:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11037:6:25"}]},{"nodeType":"YulAssignment","src":"11061:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11093:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11104:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11089:3:25"},"nodeType":"YulFunctionCall","src":"11089:18:25"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"11071:17:25"},"nodeType":"YulFunctionCall","src":"11071:37:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11061:6:25"}]},{"nodeType":"YulAssignment","src":"11117:43:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11155:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11140:3:25"},"nodeType":"YulFunctionCall","src":"11140:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11127:12:25"},"nodeType":"YulFunctionCall","src":"11127:33:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"11117:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11169:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11213:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11198:3:25"},"nodeType":"YulFunctionCall","src":"11198:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11185:12:25"},"nodeType":"YulFunctionCall","src":"11185:33:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11173:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11247:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11256:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11259:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11249:6:25"},"nodeType":"YulFunctionCall","src":"11249:12:25"},"nodeType":"YulExpressionStatement","src":"11249:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"11233:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11243:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11230:2:25"},"nodeType":"YulFunctionCall","src":"11230:16:25"},"nodeType":"YulIf","src":"11227:36:25"},{"nodeType":"YulVariableDeclaration","src":"11272:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11328:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"11339:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11324:3:25"},"nodeType":"YulFunctionCall","src":"11324:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11350:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"11298:25:25"},"nodeType":"YulFunctionCall","src":"11298:60:25"},"variables":[{"name":"value6_1","nodeType":"YulTypedName","src":"11276:8:25","type":""},{"name":"value7_1","nodeType":"YulTypedName","src":"11286:8:25","type":""}]},{"nodeType":"YulAssignment","src":"11367:18:25","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"11377:8:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"11367:6:25"}]},{"nodeType":"YulAssignment","src":"11394:18:25","value":{"name":"value7_1","nodeType":"YulIdentifier","src":"11404:8:25"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"11394:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10452:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10463:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10475:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10483:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10491:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10499:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10507:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10515:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"10523:6:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"10531:6:25","type":""}],"src":"10351:1067:25"},{"body":{"nodeType":"YulBlock","src":"11622:986:25","statements":[{"body":{"nodeType":"YulBlock","src":"11669:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11678:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11681:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11671:6:25"},"nodeType":"YulFunctionCall","src":"11671:12:25"},"nodeType":"YulExpressionStatement","src":"11671:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11643:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11639:3:25"},"nodeType":"YulFunctionCall","src":"11639:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"11664:3:25","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11635:3:25"},"nodeType":"YulFunctionCall","src":"11635:33:25"},"nodeType":"YulIf","src":"11632:53:25"},{"nodeType":"YulAssignment","src":"11694:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11722:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"11704:17:25"},"nodeType":"YulFunctionCall","src":"11704:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11694:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11741:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11772:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11783:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11768:3:25"},"nodeType":"YulFunctionCall","src":"11768:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11755:12:25"},"nodeType":"YulFunctionCall","src":"11755:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11745:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11796:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"11806:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11800:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"11851:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11860:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11863:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11853:6:25"},"nodeType":"YulFunctionCall","src":"11853:12:25"},"nodeType":"YulExpressionStatement","src":"11853:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11839:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"11847:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11836:2:25"},"nodeType":"YulFunctionCall","src":"11836:14:25"},"nodeType":"YulIf","src":"11833:34:25"},{"nodeType":"YulAssignment","src":"11876:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11907:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"11918:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11903:3:25"},"nodeType":"YulFunctionCall","src":"11903:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11927:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"11886:16:25"},"nodeType":"YulFunctionCall","src":"11886:49:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11876:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"11944:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"11988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11973:3:25"},"nodeType":"YulFunctionCall","src":"11973:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11960:12:25"},"nodeType":"YulFunctionCall","src":"11960:32:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11948:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12021:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12030:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12033:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12023:6:25"},"nodeType":"YulFunctionCall","src":"12023:12:25"},"nodeType":"YulExpressionStatement","src":"12023:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12007:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12017:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12004:2:25"},"nodeType":"YulFunctionCall","src":"12004:16:25"},"nodeType":"YulIf","src":"12001:36:25"},{"nodeType":"YulVariableDeclaration","src":"12046:86:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12102:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"12113:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12098:3:25"},"nodeType":"YulFunctionCall","src":"12098:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12124:7:25"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"12072:25:25"},"nodeType":"YulFunctionCall","src":"12072:60:25"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"12050:8:25","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"12060:8:25","type":""}]},{"nodeType":"YulAssignment","src":"12141:18:25","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"12151:8:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12141:6:25"}]},{"nodeType":"YulAssignment","src":"12168:18:25","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"12178:8:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12168:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12195:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12225:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12236:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12221:3:25"},"nodeType":"YulFunctionCall","src":"12221:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12208:12:25"},"nodeType":"YulFunctionCall","src":"12208:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12199:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12274:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12249:24:25"},"nodeType":"YulFunctionCall","src":"12249:31:25"},"nodeType":"YulExpressionStatement","src":"12249:31:25"},{"nodeType":"YulAssignment","src":"12289:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"12299:5:25"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"12289:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12313:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12345:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12356:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12341:3:25"},"nodeType":"YulFunctionCall","src":"12341:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12328:12:25"},"nodeType":"YulFunctionCall","src":"12328:33:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"12317:7:25","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"12395:7:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"12370:24:25"},"nodeType":"YulFunctionCall","src":"12370:33:25"},"nodeType":"YulExpressionStatement","src":"12370:33:25"},{"nodeType":"YulAssignment","src":"12412:17:25","value":{"name":"value_1","nodeType":"YulIdentifier","src":"12422:7:25"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"12412:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12438:49:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12471:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12482:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12467:3:25"},"nodeType":"YulFunctionCall","src":"12467:19:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12454:12:25"},"nodeType":"YulFunctionCall","src":"12454:33:25"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"12442:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"12516:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12525:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12528:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12518:6:25"},"nodeType":"YulFunctionCall","src":"12518:12:25"},"nodeType":"YulExpressionStatement","src":"12518:12:25"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"12502:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"12512:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12499:2:25"},"nodeType":"YulFunctionCall","src":"12499:16:25"},"nodeType":"YulIf","src":"12496:36:25"},{"nodeType":"YulAssignment","src":"12541:61:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12572:9:25"},{"name":"offset_2","nodeType":"YulIdentifier","src":"12583:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12568:3:25"},"nodeType":"YulFunctionCall","src":"12568:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12594:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"12551:16:25"},"nodeType":"YulFunctionCall","src":"12551:51:25"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"12541:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11540:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11551:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11563:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11571:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11579:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11587:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11595:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"11603:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"11611:6:25","type":""}],"src":"11423:1185:25"},{"body":{"nodeType":"YulBlock","src":"12741:405:25","statements":[{"body":{"nodeType":"YulBlock","src":"12788:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12797:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12800:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12790:6:25"},"nodeType":"YulFunctionCall","src":"12790:12:25"},"nodeType":"YulExpressionStatement","src":"12790:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12762:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"12771:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12758:3:25"},"nodeType":"YulFunctionCall","src":"12758:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"12783:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12754:3:25"},"nodeType":"YulFunctionCall","src":"12754:33:25"},"nodeType":"YulIf","src":"12751:53:25"},{"nodeType":"YulAssignment","src":"12813:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12841:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12823:17:25"},"nodeType":"YulFunctionCall","src":"12823:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12813:6:25"}]},{"nodeType":"YulAssignment","src":"12860:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12892:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12903:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12888:3:25"},"nodeType":"YulFunctionCall","src":"12888:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"12870:17:25"},"nodeType":"YulFunctionCall","src":"12870:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12860:6:25"}]},{"nodeType":"YulAssignment","src":"12916:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12943:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"12954:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12939:3:25"},"nodeType":"YulFunctionCall","src":"12939:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12926:12:25"},"nodeType":"YulFunctionCall","src":"12926:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12916:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"12967:46:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12998:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13009:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12994:3:25"},"nodeType":"YulFunctionCall","src":"12994:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12981:12:25"},"nodeType":"YulFunctionCall","src":"12981:32:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12971:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13056:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13065:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13068:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13058:6:25"},"nodeType":"YulFunctionCall","src":"13058:12:25"},"nodeType":"YulExpressionStatement","src":"13058:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13028:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13036:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13025:2:25"},"nodeType":"YulFunctionCall","src":"13025:30:25"},"nodeType":"YulIf","src":"13022:50:25"},{"nodeType":"YulAssignment","src":"13081:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13112:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13123:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13108:3:25"},"nodeType":"YulFunctionCall","src":"13108:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13132:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13091:16:25"},"nodeType":"YulFunctionCall","src":"13091:49:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13081:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12683:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12694:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12706:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12714:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12722:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12730:6:25","type":""}],"src":"12613:533:25"},{"body":{"nodeType":"YulBlock","src":"13270:341:25","statements":[{"body":{"nodeType":"YulBlock","src":"13317:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13326:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13329:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13319:6:25"},"nodeType":"YulFunctionCall","src":"13319:12:25"},"nodeType":"YulExpressionStatement","src":"13319:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13291:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13300:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13287:3:25"},"nodeType":"YulFunctionCall","src":"13287:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13312:3:25","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13283:3:25"},"nodeType":"YulFunctionCall","src":"13283:33:25"},"nodeType":"YulIf","src":"13280:53:25"},{"nodeType":"YulAssignment","src":"13342:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13370:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13352:17:25"},"nodeType":"YulFunctionCall","src":"13352:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13342:6:25"}]},{"nodeType":"YulAssignment","src":"13389:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13421:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13432:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13417:3:25"},"nodeType":"YulFunctionCall","src":"13417:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"13399:17:25"},"nodeType":"YulFunctionCall","src":"13399:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13389:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"13445:45:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13475:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13486:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13471:3:25"},"nodeType":"YulFunctionCall","src":"13471:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13458:12:25"},"nodeType":"YulFunctionCall","src":"13458:32:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13449:5:25","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13524:5:25"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"13499:24:25"},"nodeType":"YulFunctionCall","src":"13499:31:25"},"nodeType":"YulExpressionStatement","src":"13499:31:25"},{"nodeType":"YulAssignment","src":"13539:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"13549:5:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13539:6:25"}]},{"nodeType":"YulAssignment","src":"13563:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13590:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"13601:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13586:3:25"},"nodeType":"YulFunctionCall","src":"13586:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13573:12:25"},"nodeType":"YulFunctionCall","src":"13573:32:25"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"13563:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13212:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13223:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13235:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13243:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13251:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13259:6:25","type":""}],"src":"13151:460:25"},{"body":{"nodeType":"YulBlock","src":"13695:241:25","statements":[{"body":{"nodeType":"YulBlock","src":"13741:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13750:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13753:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13743:6:25"},"nodeType":"YulFunctionCall","src":"13743:12:25"},"nodeType":"YulExpressionStatement","src":"13743:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13716:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"13725:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13712:3:25"},"nodeType":"YulFunctionCall","src":"13712:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"13737:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13708:3:25"},"nodeType":"YulFunctionCall","src":"13708:32:25"},"nodeType":"YulIf","src":"13705:52:25"},{"nodeType":"YulVariableDeclaration","src":"13766:37:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13793:9:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13780:12:25"},"nodeType":"YulFunctionCall","src":"13780:23:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13770:6:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"13846:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13855:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13858:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13848:6:25"},"nodeType":"YulFunctionCall","src":"13848:12:25"},"nodeType":"YulExpressionStatement","src":"13848:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13818:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"13826:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13815:2:25"},"nodeType":"YulFunctionCall","src":"13815:30:25"},"nodeType":"YulIf","src":"13812:50:25"},{"nodeType":"YulAssignment","src":"13871:59:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13902:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"13913:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13898:3:25"},"nodeType":"YulFunctionCall","src":"13898:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13922:7:25"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13881:16:25"},"nodeType":"YulFunctionCall","src":"13881:49:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13871:6:25"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13661:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13672:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13684:6:25","type":""}],"src":"13616:320:25"},{"body":{"nodeType":"YulBlock","src":"14088:124:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14111:3:25"},{"name":"value0","nodeType":"YulIdentifier","src":"14116:6:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14124:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"14098:12:25"},"nodeType":"YulFunctionCall","src":"14098:33:25"},"nodeType":"YulExpressionStatement","src":"14098:33:25"},{"nodeType":"YulVariableDeclaration","src":"14140:26:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14154:3:25"},{"name":"value1","nodeType":"YulIdentifier","src":"14159:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14150:3:25"},"nodeType":"YulFunctionCall","src":"14150:16:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14144:2:25","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14182:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"14186:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14175:6:25"},"nodeType":"YulFunctionCall","src":"14175:13:25"},"nodeType":"YulExpressionStatement","src":"14175:13:25"},{"nodeType":"YulAssignment","src":"14197:9:25","value":{"name":"_1","nodeType":"YulIdentifier","src":"14204:2:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14197:3:25"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14056:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14061:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14069:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14080:3:25","type":""}],"src":"13941:271:25"},{"body":{"nodeType":"YulBlock","src":"14272:325:25","statements":[{"nodeType":"YulAssignment","src":"14282:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14296:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"14299:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14292:3:25"},"nodeType":"YulFunctionCall","src":"14292:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14282:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"14313:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14343:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"14349:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14339:3:25"},"nodeType":"YulFunctionCall","src":"14339:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14317:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"14390:31:25","statements":[{"nodeType":"YulAssignment","src":"14392:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14406:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14414:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14402:3:25"},"nodeType":"YulFunctionCall","src":"14402:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14392:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14370:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14363:6:25"},"nodeType":"YulFunctionCall","src":"14363:26:25"},"nodeType":"YulIf","src":"14360:61:25"},{"body":{"nodeType":"YulBlock","src":"14480:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14501:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14508:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14513:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14504:3:25"},"nodeType":"YulFunctionCall","src":"14504:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14494:6:25"},"nodeType":"YulFunctionCall","src":"14494:31:25"},"nodeType":"YulExpressionStatement","src":"14494:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14545:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14548:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14538:6:25"},"nodeType":"YulFunctionCall","src":"14538:15:25"},"nodeType":"YulExpressionStatement","src":"14538:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14573:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14576:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14566:6:25"},"nodeType":"YulFunctionCall","src":"14566:15:25"},"nodeType":"YulExpressionStatement","src":"14566:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14436:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14459:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"14467:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14456:2:25"},"nodeType":"YulFunctionCall","src":"14456:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14433:2:25"},"nodeType":"YulFunctionCall","src":"14433:38:25"},"nodeType":"YulIf","src":"14430:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14252:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14261:6:25","type":""}],"src":"14217:380:25"},{"body":{"nodeType":"YulBlock","src":"14634:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14651:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14658:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14663:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14654:3:25"},"nodeType":"YulFunctionCall","src":"14654:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14644:6:25"},"nodeType":"YulFunctionCall","src":"14644:31:25"},"nodeType":"YulExpressionStatement","src":"14644:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14691:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14694:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14684:6:25"},"nodeType":"YulFunctionCall","src":"14684:15:25"},"nodeType":"YulExpressionStatement","src":"14684:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14715:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14718:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14708:6:25"},"nodeType":"YulFunctionCall","src":"14708:15:25"},"nodeType":"YulExpressionStatement","src":"14708:15:25"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14602:127:25"},{"body":{"nodeType":"YulBlock","src":"14782:80:25","statements":[{"body":{"nodeType":"YulBlock","src":"14809:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14811:16:25"},"nodeType":"YulFunctionCall","src":"14811:18:25"},"nodeType":"YulExpressionStatement","src":"14811:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14798:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14805:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14801:3:25"},"nodeType":"YulFunctionCall","src":"14801:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14795:2:25"},"nodeType":"YulFunctionCall","src":"14795:13:25"},"nodeType":"YulIf","src":"14792:39:25"},{"nodeType":"YulAssignment","src":"14840:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14851:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"14854:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14847:3:25"},"nodeType":"YulFunctionCall","src":"14847:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"14840:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14765:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"14768:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"14774:3:25","type":""}],"src":"14734:128:25"},{"body":{"nodeType":"YulBlock","src":"15041:182:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15051:6:25"},"nodeType":"YulFunctionCall","src":"15051:21:25"},"nodeType":"YulExpressionStatement","src":"15051:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15092:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15103:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15088:3:25"},"nodeType":"YulFunctionCall","src":"15088:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15108:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15081:6:25"},"nodeType":"YulFunctionCall","src":"15081:30:25"},"nodeType":"YulExpressionStatement","src":"15081:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15131:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15142:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15127:3:25"},"nodeType":"YulFunctionCall","src":"15127:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"15147:34:25","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15120:6:25"},"nodeType":"YulFunctionCall","src":"15120:62:25"},"nodeType":"YulExpressionStatement","src":"15120:62:25"},{"nodeType":"YulAssignment","src":"15191:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15203:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15214:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15199:3:25"},"nodeType":"YulFunctionCall","src":"15199:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15191:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15018:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15032:4:25","type":""}],"src":"14867:356:25"},{"body":{"nodeType":"YulBlock","src":"15402:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15419:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15430:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15412:6:25"},"nodeType":"YulFunctionCall","src":"15412:21:25"},"nodeType":"YulExpressionStatement","src":"15412:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15453:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15464:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15449:3:25"},"nodeType":"YulFunctionCall","src":"15449:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"15469:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15442:6:25"},"nodeType":"YulFunctionCall","src":"15442:30:25"},"nodeType":"YulExpressionStatement","src":"15442:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15492:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15503:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15488:3:25"},"nodeType":"YulFunctionCall","src":"15488:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"15508:31:25","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15481:6:25"},"nodeType":"YulFunctionCall","src":"15481:59:25"},"nodeType":"YulExpressionStatement","src":"15481:59:25"},{"nodeType":"YulAssignment","src":"15549:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"15572:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15557:3:25"},"nodeType":"YulFunctionCall","src":"15557:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15549:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15379:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15393:4:25","type":""}],"src":"15228:353:25"},{"body":{"nodeType":"YulBlock","src":"15652:200:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15669:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15674:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15662:6:25"},"nodeType":"YulFunctionCall","src":"15662:19:25"},"nodeType":"YulExpressionStatement","src":"15662:19:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15707:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"15712:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15703:3:25"},"nodeType":"YulFunctionCall","src":"15703:14:25"},{"name":"start","nodeType":"YulIdentifier","src":"15719:5:25"},{"name":"length","nodeType":"YulIdentifier","src":"15726:6:25"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"15690:12:25"},"nodeType":"YulFunctionCall","src":"15690:43:25"},"nodeType":"YulExpressionStatement","src":"15690:43:25"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15757:3:25"},{"name":"length","nodeType":"YulIdentifier","src":"15762:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15753:3:25"},"nodeType":"YulFunctionCall","src":"15753:16:25"},{"kind":"number","nodeType":"YulLiteral","src":"15771:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15749:3:25"},"nodeType":"YulFunctionCall","src":"15749:27:25"},{"kind":"number","nodeType":"YulLiteral","src":"15778:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15742:6:25"},"nodeType":"YulFunctionCall","src":"15742:38:25"},"nodeType":"YulExpressionStatement","src":"15742:38:25"},{"nodeType":"YulAssignment","src":"15789:57:25","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15804:3:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15817:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"15825:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15813:3:25"},"nodeType":"YulFunctionCall","src":"15813:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15834:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15830:3:25"},"nodeType":"YulFunctionCall","src":"15830:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15809:3:25"},"nodeType":"YulFunctionCall","src":"15809:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15800:3:25"},"nodeType":"YulFunctionCall","src":"15800:39:25"},{"kind":"number","nodeType":"YulLiteral","src":"15841:4:25","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15796:3:25"},"nodeType":"YulFunctionCall","src":"15796:50:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15789:3:25"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"15621:5:25","type":""},{"name":"length","nodeType":"YulTypedName","src":"15628:6:25","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15636:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15644:3:25","type":""}],"src":"15586:266:25"},{"body":{"nodeType":"YulBlock","src":"16012:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16029:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16044:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16052:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16040:3:25"},"nodeType":"YulFunctionCall","src":"16040:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16022:6:25"},"nodeType":"YulFunctionCall","src":"16022:38:25"},"nodeType":"YulExpressionStatement","src":"16022:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16080:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16091:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16076:3:25"},"nodeType":"YulFunctionCall","src":"16076:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16096:2:25","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16069:6:25"},"nodeType":"YulFunctionCall","src":"16069:30:25"},"nodeType":"YulExpressionStatement","src":"16069:30:25"},{"nodeType":"YulAssignment","src":"16108:69:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16142:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16150:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16162:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16173:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16158:3:25"},"nodeType":"YulFunctionCall","src":"16158:18:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16116:25:25"},"nodeType":"YulFunctionCall","src":"16116:61:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16108:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15965:9:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15976:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15984:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15992:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16003:4:25","type":""}],"src":"15857:326:25"},{"body":{"nodeType":"YulBlock","src":"16362:180:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16390:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16372:6:25"},"nodeType":"YulFunctionCall","src":"16372:21:25"},"nodeType":"YulExpressionStatement","src":"16372:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16413:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16424:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16409:3:25"},"nodeType":"YulFunctionCall","src":"16409:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16429:2:25","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16402:6:25"},"nodeType":"YulFunctionCall","src":"16402:30:25"},"nodeType":"YulExpressionStatement","src":"16402:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:25"},"nodeType":"YulFunctionCall","src":"16448:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nodeType":"YulLiteral","src":"16468:32:25","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:25"},"nodeType":"YulFunctionCall","src":"16441:60:25"},"nodeType":"YulExpressionStatement","src":"16441:60:25"},{"nodeType":"YulAssignment","src":"16510:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16522:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16533:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16518:3:25"},"nodeType":"YulFunctionCall","src":"16518:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16510:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16339:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16353:4:25","type":""}],"src":"16188:354:25"},{"body":{"nodeType":"YulBlock","src":"16784:372:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16801:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16816:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"16824:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16812:3:25"},"nodeType":"YulFunctionCall","src":"16812:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16794:6:25"},"nodeType":"YulFunctionCall","src":"16794:38:25"},"nodeType":"YulExpressionStatement","src":"16794:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16852:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16863:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16848:3:25"},"nodeType":"YulFunctionCall","src":"16848:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"16868:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16841:6:25"},"nodeType":"YulFunctionCall","src":"16841:31:25"},"nodeType":"YulExpressionStatement","src":"16841:31:25"},{"nodeType":"YulVariableDeclaration","src":"16881:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16921:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"16929:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16941:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16952:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16937:3:25"},"nodeType":"YulFunctionCall","src":"16937:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"16895:25:25"},"nodeType":"YulFunctionCall","src":"16895:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16885:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16977:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"16988:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16973:3:25"},"nodeType":"YulFunctionCall","src":"16973:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16997:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17005:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16993:3:25"},"nodeType":"YulFunctionCall","src":"16993:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16966:6:25"},"nodeType":"YulFunctionCall","src":"16966:59:25"},"nodeType":"YulExpressionStatement","src":"16966:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17045:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17056:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17041:3:25"},"nodeType":"YulFunctionCall","src":"17041:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"17065:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"17073:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17061:3:25"},"nodeType":"YulFunctionCall","src":"17061:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17034:6:25"},"nodeType":"YulFunctionCall","src":"17034:50:25"},"nodeType":"YulExpressionStatement","src":"17034:50:25"},{"nodeType":"YulAssignment","src":"17093:57:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17127:6:25"},{"name":"value5","nodeType":"YulIdentifier","src":"17135:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"17143:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17101:25:25"},"nodeType":"YulFunctionCall","src":"17101:49:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17093:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16713:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16724:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16732:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16740:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16748:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16756:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16764:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16775:4:25","type":""}],"src":"16547:609:25"},{"body":{"nodeType":"YulBlock","src":"17370:310:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17387:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17402:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17410:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17398:3:25"},"nodeType":"YulFunctionCall","src":"17398:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17380:6:25"},"nodeType":"YulFunctionCall","src":"17380:38:25"},"nodeType":"YulExpressionStatement","src":"17380:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17438:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17449:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17434:3:25"},"nodeType":"YulFunctionCall","src":"17434:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17454:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17427:6:25"},"nodeType":"YulFunctionCall","src":"17427:31:25"},"nodeType":"YulExpressionStatement","src":"17427:31:25"},{"nodeType":"YulAssignment","src":"17467:70:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17501:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"17509:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17521:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17532:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17517:3:25"},"nodeType":"YulFunctionCall","src":"17517:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"17475:25:25"},"nodeType":"YulFunctionCall","src":"17475:62:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17467:4:25"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17568:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17553:3:25"},"nodeType":"YulFunctionCall","src":"17553:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17577:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"17585:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17573:3:25"},"nodeType":"YulFunctionCall","src":"17573:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17546:6:25"},"nodeType":"YulFunctionCall","src":"17546:59:25"},"nodeType":"YulExpressionStatement","src":"17546:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17625:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17636:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17621:3:25"},"nodeType":"YulFunctionCall","src":"17621:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17645:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17661:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17666:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17657:3:25"},"nodeType":"YulFunctionCall","src":"17657:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"17670:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17653:3:25"},"nodeType":"YulFunctionCall","src":"17653:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17641:3:25"},"nodeType":"YulFunctionCall","src":"17641:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17614:6:25"},"nodeType":"YulFunctionCall","src":"17614:60:25"},"nodeType":"YulExpressionStatement","src":"17614:60:25"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17307:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17318:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17326:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17334:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17342:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17350:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17361:4:25","type":""}],"src":"17161:519:25"},{"body":{"nodeType":"YulBlock","src":"17859:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17876:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17887:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17869:6:25"},"nodeType":"YulFunctionCall","src":"17869:21:25"},"nodeType":"YulExpressionStatement","src":"17869:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17910:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17921:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17906:3:25"},"nodeType":"YulFunctionCall","src":"17906:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"17926:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17899:6:25"},"nodeType":"YulFunctionCall","src":"17899:30:25"},"nodeType":"YulExpressionStatement","src":"17899:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17949:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"17960:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17945:3:25"},"nodeType":"YulFunctionCall","src":"17945:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nodeType":"YulLiteral","src":"17965:34:25","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17938:6:25"},"nodeType":"YulFunctionCall","src":"17938:62:25"},"nodeType":"YulExpressionStatement","src":"17938:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18020:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18031:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18016:3:25"},"nodeType":"YulFunctionCall","src":"18016:18:25"},{"hexValue":"616e6379","kind":"string","nodeType":"YulLiteral","src":"18036:6:25","type":"","value":"ancy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18009:6:25"},"nodeType":"YulFunctionCall","src":"18009:34:25"},"nodeType":"YulExpressionStatement","src":"18009:34:25"},{"nodeType":"YulAssignment","src":"18052:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18064:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18075:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18060:3:25"},"nodeType":"YulFunctionCall","src":"18060:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18052:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17836:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17850:4:25","type":""}],"src":"17685:400:25"},{"body":{"nodeType":"YulBlock","src":"18136:163:25","statements":[{"nodeType":"YulVariableDeclaration","src":"18146:28:25","value":{"kind":"number","nodeType":"YulLiteral","src":"18156:18:25","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18150:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18183:29:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18202:5:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18209:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18198:3:25"},"nodeType":"YulFunctionCall","src":"18198:14:25"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"18187:7:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"18240:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18242:16:25"},"nodeType":"YulFunctionCall","src":"18242:18:25"},"nodeType":"YulExpressionStatement","src":"18242:18:25"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18227:7:25"},{"name":"_1","nodeType":"YulIdentifier","src":"18236:2:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18224:2:25"},"nodeType":"YulFunctionCall","src":"18224:15:25"},"nodeType":"YulIf","src":"18221:41:25"},{"nodeType":"YulAssignment","src":"18271:22:25","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18282:7:25"},{"kind":"number","nodeType":"YulLiteral","src":"18291:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18278:3:25"},"nodeType":"YulFunctionCall","src":"18278:15:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18271:3:25"}]}]},"name":"increment_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18118:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18128:3:25","type":""}],"src":"18090:209:25"},{"body":{"nodeType":"YulBlock","src":"18478:176:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18495:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18506:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18488:6:25"},"nodeType":"YulFunctionCall","src":"18488:21:25"},"nodeType":"YulExpressionStatement","src":"18488:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18540:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18525:3:25"},"nodeType":"YulFunctionCall","src":"18525:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"18545:2:25","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18518:6:25"},"nodeType":"YulFunctionCall","src":"18518:30:25"},"nodeType":"YulExpressionStatement","src":"18518:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18568:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18579:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18564:3:25"},"nodeType":"YulFunctionCall","src":"18564:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nodeType":"YulLiteral","src":"18584:28:25","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18557:6:25"},"nodeType":"YulFunctionCall","src":"18557:56:25"},"nodeType":"YulExpressionStatement","src":"18557:56:25"},{"nodeType":"YulAssignment","src":"18622:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"18645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18630:3:25"},"nodeType":"YulFunctionCall","src":"18630:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18622:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18455:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18469:4:25","type":""}],"src":"18304:350:25"},{"body":{"nodeType":"YulBlock","src":"18708:76:25","statements":[{"body":{"nodeType":"YulBlock","src":"18730:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18732:16:25"},"nodeType":"YulFunctionCall","src":"18732:18:25"},"nodeType":"YulExpressionStatement","src":"18732:18:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18724:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18727:1:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18721:2:25"},"nodeType":"YulFunctionCall","src":"18721:8:25"},"nodeType":"YulIf","src":"18718:34:25"},{"nodeType":"YulAssignment","src":"18761:17:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18773:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"18776:1:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18769:3:25"},"nodeType":"YulFunctionCall","src":"18769:9:25"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"18761:4:25"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18690:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"18693:1:25","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"18699:4:25","type":""}],"src":"18659:125:25"},{"body":{"nodeType":"YulBlock","src":"18821:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18838:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18845:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18850:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18841:3:25"},"nodeType":"YulFunctionCall","src":"18841:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18831:6:25"},"nodeType":"YulFunctionCall","src":"18831:31:25"},"nodeType":"YulExpressionStatement","src":"18831:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18878:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18881:4:25","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18871:6:25"},"nodeType":"YulFunctionCall","src":"18871:15:25"},"nodeType":"YulExpressionStatement","src":"18871:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18902:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18905:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18895:6:25"},"nodeType":"YulFunctionCall","src":"18895:15:25"},"nodeType":"YulExpressionStatement","src":"18895:15:25"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"18789:127:25"},{"body":{"nodeType":"YulBlock","src":"18968:88:25","statements":[{"body":{"nodeType":"YulBlock","src":"18999:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19001:16:25"},"nodeType":"YulFunctionCall","src":"19001:18:25"},"nodeType":"YulExpressionStatement","src":"19001:18:25"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18984:5:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18995:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18991:3:25"},"nodeType":"YulFunctionCall","src":"18991:6:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18981:2:25"},"nodeType":"YulFunctionCall","src":"18981:17:25"},"nodeType":"YulIf","src":"18978:43:25"},{"nodeType":"YulAssignment","src":"19030:20:25","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19041:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"19048:1:25","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19037:3:25"},"nodeType":"YulFunctionCall","src":"19037:13:25"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19030:3:25"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18950:5:25","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18960:3:25","type":""}],"src":"18921:135:25"},{"body":{"nodeType":"YulBlock","src":"19372:557:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19389:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19404:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19412:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19400:3:25"},"nodeType":"YulFunctionCall","src":"19400:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19382:6:25"},"nodeType":"YulFunctionCall","src":"19382:38:25"},"nodeType":"YulExpressionStatement","src":"19382:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19440:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19451:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19436:3:25"},"nodeType":"YulFunctionCall","src":"19436:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"19456:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19429:6:25"},"nodeType":"YulFunctionCall","src":"19429:31:25"},"nodeType":"YulExpressionStatement","src":"19429:31:25"},{"nodeType":"YulVariableDeclaration","src":"19469:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19509:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"19517:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19540:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19525:3:25"},"nodeType":"YulFunctionCall","src":"19525:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19483:25:25"},"nodeType":"YulFunctionCall","src":"19483:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19473:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19565:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19576:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19561:3:25"},"nodeType":"YulFunctionCall","src":"19561:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19585:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19601:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19606:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19597:3:25"},"nodeType":"YulFunctionCall","src":"19597:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"19610:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19593:3:25"},"nodeType":"YulFunctionCall","src":"19593:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19581:3:25"},"nodeType":"YulFunctionCall","src":"19581:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19554:6:25"},"nodeType":"YulFunctionCall","src":"19554:60:25"},"nodeType":"YulExpressionStatement","src":"19554:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19634:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19645:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:25"},"nodeType":"YulFunctionCall","src":"19630:18:25"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"19654:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"19662:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19650:3:25"},"nodeType":"YulFunctionCall","src":"19650:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19623:6:25"},"nodeType":"YulFunctionCall","src":"19623:59:25"},"nodeType":"YulExpressionStatement","src":"19623:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19702:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19713:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19698:3:25"},"nodeType":"YulFunctionCall","src":"19698:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19723:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19731:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19719:3:25"},"nodeType":"YulFunctionCall","src":"19719:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19691:6:25"},"nodeType":"YulFunctionCall","src":"19691:51:25"},"nodeType":"YulExpressionStatement","src":"19691:51:25"},{"nodeType":"YulVariableDeclaration","src":"19751:63:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"19791:6:25"},{"name":"value6","nodeType":"YulIdentifier","src":"19799:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"19807:6:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"19765:25:25"},"nodeType":"YulFunctionCall","src":"19765:49:25"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"19755:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19834:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"19845:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19830:3:25"},"nodeType":"YulFunctionCall","src":"19830:19:25"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"19855:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"19863:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19851:3:25"},"nodeType":"YulFunctionCall","src":"19851:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19823:6:25"},"nodeType":"YulFunctionCall","src":"19823:51:25"},"nodeType":"YulExpressionStatement","src":"19823:51:25"},{"nodeType":"YulAssignment","src":"19883:40:25","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"19908:6:25"},{"name":"tail_2","nodeType":"YulIdentifier","src":"19916:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19891:16:25"},"nodeType":"YulFunctionCall","src":"19891:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19883:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19285:9:25","type":""},{"name":"value7","nodeType":"YulTypedName","src":"19296:6:25","type":""},{"name":"value6","nodeType":"YulTypedName","src":"19304:6:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"19312:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19320:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19328:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19336:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19344:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19352:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19363:4:25","type":""}],"src":"19061:868:25"},{"body":{"nodeType":"YulBlock","src":"20108:223:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20125:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20136:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20118:6:25"},"nodeType":"YulFunctionCall","src":"20118:21:25"},"nodeType":"YulExpressionStatement","src":"20118:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20155:3:25"},"nodeType":"YulFunctionCall","src":"20155:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20175:2:25","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20148:6:25"},"nodeType":"YulFunctionCall","src":"20148:30:25"},"nodeType":"YulExpressionStatement","src":"20148:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20198:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20209:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20194:3:25"},"nodeType":"YulFunctionCall","src":"20194:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nodeType":"YulLiteral","src":"20214:34:25","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20187:6:25"},"nodeType":"YulFunctionCall","src":"20187:62:25"},"nodeType":"YulExpressionStatement","src":"20187:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20269:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20280:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20265:3:25"},"nodeType":"YulFunctionCall","src":"20265:18:25"},{"hexValue":"79","kind":"string","nodeType":"YulLiteral","src":"20285:3:25","type":"","value":"y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20258:6:25"},"nodeType":"YulFunctionCall","src":"20258:31:25"},"nodeType":"YulExpressionStatement","src":"20258:31:25"},{"nodeType":"YulAssignment","src":"20298:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20310:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20321:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20306:3:25"},"nodeType":"YulFunctionCall","src":"20306:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20298:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20085:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20099:4:25","type":""}],"src":"19934:397:25"},{"body":{"nodeType":"YulBlock","src":"20510:234:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20527:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20538:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20520:6:25"},"nodeType":"YulFunctionCall","src":"20520:21:25"},"nodeType":"YulExpressionStatement","src":"20520:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20561:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20572:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20557:3:25"},"nodeType":"YulFunctionCall","src":"20557:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20577:2:25","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20550:6:25"},"nodeType":"YulFunctionCall","src":"20550:30:25"},"nodeType":"YulExpressionStatement","src":"20550:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20600:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20611:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20596:3:25"},"nodeType":"YulFunctionCall","src":"20596:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nodeType":"YulLiteral","src":"20616:34:25","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20589:6:25"},"nodeType":"YulFunctionCall","src":"20589:62:25"},"nodeType":"YulExpressionStatement","src":"20589:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20671:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20682:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20667:3:25"},"nodeType":"YulFunctionCall","src":"20667:18:25"},{"hexValue":"616464726573732073697a65","kind":"string","nodeType":"YulLiteral","src":"20687:14:25","type":"","value":"address size"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20660:6:25"},"nodeType":"YulFunctionCall","src":"20660:42:25"},"nodeType":"YulExpressionStatement","src":"20660:42:25"},{"nodeType":"YulAssignment","src":"20711:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20723:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20734:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20719:3:25"},"nodeType":"YulFunctionCall","src":"20719:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20711:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20487:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20501:4:25","type":""}],"src":"20336:408:25"},{"body":{"nodeType":"YulBlock","src":"20923:245:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20951:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20933:6:25"},"nodeType":"YulFunctionCall","src":"20933:21:25"},"nodeType":"YulExpressionStatement","src":"20933:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20974:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"20985:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20970:3:25"},"nodeType":"YulFunctionCall","src":"20970:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"20990:2:25","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20963:6:25"},"nodeType":"YulFunctionCall","src":"20963:30:25"},"nodeType":"YulExpressionStatement","src":"20963:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21013:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21024:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21009:3:25"},"nodeType":"YulFunctionCall","src":"21009:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nodeType":"YulLiteral","src":"21029:34:25","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21002:6:25"},"nodeType":"YulFunctionCall","src":"21002:62:25"},"nodeType":"YulExpressionStatement","src":"21002:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21084:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21095:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21080:3:25"},"nodeType":"YulFunctionCall","src":"21080:18:25"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nodeType":"YulLiteral","src":"21100:25:25","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21073:6:25"},"nodeType":"YulFunctionCall","src":"21073:53:25"},"nodeType":"YulExpressionStatement","src":"21073:53:25"},{"nodeType":"YulAssignment","src":"21135:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21158:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21143:3:25"},"nodeType":"YulFunctionCall","src":"21143:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21135:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20900:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20914:4:25","type":""}],"src":"20749:419:25"},{"body":{"nodeType":"YulBlock","src":"21347:231:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21364:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21375:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21357:6:25"},"nodeType":"YulFunctionCall","src":"21357:21:25"},"nodeType":"YulExpressionStatement","src":"21357:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21398:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21409:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21394:3:25"},"nodeType":"YulFunctionCall","src":"21394:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"21414:2:25","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21387:6:25"},"nodeType":"YulFunctionCall","src":"21387:30:25"},"nodeType":"YulExpressionStatement","src":"21387:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21437:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21448:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21433:3:25"},"nodeType":"YulFunctionCall","src":"21433:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nodeType":"YulLiteral","src":"21453:34:25","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21426:6:25"},"nodeType":"YulFunctionCall","src":"21426:62:25"},"nodeType":"YulExpressionStatement","src":"21426:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21508:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21519:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21504:3:25"},"nodeType":"YulFunctionCall","src":"21504:18:25"},{"hexValue":"20666f722066656573","kind":"string","nodeType":"YulLiteral","src":"21524:11:25","type":"","value":" for fees"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21497:6:25"},"nodeType":"YulFunctionCall","src":"21497:39:25"},"nodeType":"YulExpressionStatement","src":"21497:39:25"},{"nodeType":"YulAssignment","src":"21545:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21557:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21568:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21553:3:25"},"nodeType":"YulFunctionCall","src":"21553:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21545:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21324:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21338:4:25","type":""}],"src":"21173:405:25"},{"body":{"nodeType":"YulBlock","src":"21774:14:25","statements":[{"nodeType":"YulAssignment","src":"21776:10:25","value":{"name":"pos","nodeType":"YulIdentifier","src":"21783:3:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21776:3:25"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21758:3:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21766:3:25","type":""}],"src":"21583:205:25"},{"body":{"nodeType":"YulBlock","src":"21967:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21984:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"21995:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21977:6:25"},"nodeType":"YulFunctionCall","src":"21977:21:25"},"nodeType":"YulExpressionStatement","src":"21977:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22018:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22029:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22014:3:25"},"nodeType":"YulFunctionCall","src":"22014:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22034:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22007:6:25"},"nodeType":"YulFunctionCall","src":"22007:30:25"},"nodeType":"YulExpressionStatement","src":"22007:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22057:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22068:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22053:3:25"},"nodeType":"YulFunctionCall","src":"22053:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nodeType":"YulLiteral","src":"22073:33:25","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22046:6:25"},"nodeType":"YulFunctionCall","src":"22046:61:25"},"nodeType":"YulExpressionStatement","src":"22046:61:25"},{"nodeType":"YulAssignment","src":"22116:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22128:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22139:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22124:3:25"},"nodeType":"YulFunctionCall","src":"22124:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22116:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21944:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21958:4:25","type":""}],"src":"21793:355:25"},{"body":{"nodeType":"YulBlock","src":"22300:186:25","statements":[{"nodeType":"YulVariableDeclaration","src":"22310:41:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22324:26:25","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22320:3:25"},"nodeType":"YulFunctionCall","src":"22320:31:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22314:2:25","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22367:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22380:2:25","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"22384:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22376:3:25"},"nodeType":"YulFunctionCall","src":"22376:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22393:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22372:3:25"},"nodeType":"YulFunctionCall","src":"22372:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22360:6:25"},"nodeType":"YulFunctionCall","src":"22360:37:25"},"nodeType":"YulExpressionStatement","src":"22360:37:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22417:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22422:2:25","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22413:3:25"},"nodeType":"YulFunctionCall","src":"22413:12:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22435:2:25","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"22439:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22431:3:25"},"nodeType":"YulFunctionCall","src":"22431:15:25"},{"name":"_1","nodeType":"YulIdentifier","src":"22448:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22427:3:25"},"nodeType":"YulFunctionCall","src":"22427:24:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22406:6:25"},"nodeType":"YulFunctionCall","src":"22406:46:25"},"nodeType":"YulExpressionStatement","src":"22406:46:25"},{"nodeType":"YulAssignment","src":"22461:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22472:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"22477:2:25","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22468:3:25"},"nodeType":"YulFunctionCall","src":"22468:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22461:3:25"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22268:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22273:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22281:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22292:3:25","type":""}],"src":"22153:333:25"},{"body":{"nodeType":"YulBlock","src":"22764:452:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22781:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22796:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"22804:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22792:3:25"},"nodeType":"YulFunctionCall","src":"22792:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22774:6:25"},"nodeType":"YulFunctionCall","src":"22774:38:25"},"nodeType":"YulExpressionStatement","src":"22774:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22832:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22843:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22828:3:25"},"nodeType":"YulFunctionCall","src":"22828:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"22848:3:25","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22821:6:25"},"nodeType":"YulFunctionCall","src":"22821:31:25"},"nodeType":"YulExpressionStatement","src":"22821:31:25"},{"nodeType":"YulVariableDeclaration","src":"22861:59:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22892:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22904:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22915:3:25","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22900:3:25"},"nodeType":"YulFunctionCall","src":"22900:19:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"22875:16:25"},"nodeType":"YulFunctionCall","src":"22875:45:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22865:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22940:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"22951:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22936:3:25"},"nodeType":"YulFunctionCall","src":"22936:18:25"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22960:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22976:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22981:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22972:3:25"},"nodeType":"YulFunctionCall","src":"22972:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"22985:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22968:3:25"},"nodeType":"YulFunctionCall","src":"22968:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22956:3:25"},"nodeType":"YulFunctionCall","src":"22956:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22929:6:25"},"nodeType":"YulFunctionCall","src":"22929:60:25"},"nodeType":"YulExpressionStatement","src":"22929:60:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23009:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23020:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23005:3:25"},"nodeType":"YulFunctionCall","src":"23005:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23029:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"23037:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23025:3:25"},"nodeType":"YulFunctionCall","src":"23025:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22998:6:25"},"nodeType":"YulFunctionCall","src":"22998:59:25"},"nodeType":"YulExpressionStatement","src":"22998:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23077:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23088:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23073:3:25"},"nodeType":"YulFunctionCall","src":"23073:19:25"},{"name":"value4","nodeType":"YulIdentifier","src":"23094:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23066:6:25"},"nodeType":"YulFunctionCall","src":"23066:35:25"},"nodeType":"YulExpressionStatement","src":"23066:35:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23121:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23132:3:25","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23117:3:25"},"nodeType":"YulFunctionCall","src":"23117:19:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"23142:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"23150:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23138:3:25"},"nodeType":"YulFunctionCall","src":"23138:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23110:6:25"},"nodeType":"YulFunctionCall","src":"23110:51:25"},"nodeType":"YulExpressionStatement","src":"23110:51:25"},{"nodeType":"YulAssignment","src":"23170:40:25","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"23195:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"23203:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23178:16:25"},"nodeType":"YulFunctionCall","src":"23178:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23170:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22693:9:25","type":""},{"name":"value5","nodeType":"YulTypedName","src":"22704:6:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22712:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22720:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22728:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22736:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22744:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22755:4:25","type":""}],"src":"22491:725:25"},{"body":{"nodeType":"YulBlock","src":"23366:131:25","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23383:3:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23396:3:25","type":"","value":"240"},{"name":"value0","nodeType":"YulIdentifier","src":"23401:6:25"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23392:3:25"},"nodeType":"YulFunctionCall","src":"23392:16:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23414:3:25","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"23419:5:25","type":"","value":"65535"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23410:3:25"},"nodeType":"YulFunctionCall","src":"23410:15:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23388:3:25"},"nodeType":"YulFunctionCall","src":"23388:38:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23376:6:25"},"nodeType":"YulFunctionCall","src":"23376:51:25"},"nodeType":"YulExpressionStatement","src":"23376:51:25"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23447:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23452:1:25","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23443:3:25"},"nodeType":"YulFunctionCall","src":"23443:11:25"},{"name":"value1","nodeType":"YulIdentifier","src":"23456:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23436:6:25"},"nodeType":"YulFunctionCall","src":"23436:27:25"},"nodeType":"YulExpressionStatement","src":"23436:27:25"},{"nodeType":"YulAssignment","src":"23472:19:25","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23483:3:25"},{"kind":"number","nodeType":"YulLiteral","src":"23488:2:25","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23479:3:25"},"nodeType":"YulFunctionCall","src":"23479:12:25"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23472:3:25"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23334:3:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23339:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23347:6:25","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23358:3:25","type":""}],"src":"23221:276:25"},{"body":{"nodeType":"YulBlock","src":"23676:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23693:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23704:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23686:6:25"},"nodeType":"YulFunctionCall","src":"23686:21:25"},"nodeType":"YulExpressionStatement","src":"23686:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23727:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23738:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23723:3:25"},"nodeType":"YulFunctionCall","src":"23723:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"23743:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23716:6:25"},"nodeType":"YulFunctionCall","src":"23716:30:25"},"nodeType":"YulExpressionStatement","src":"23716:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23766:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23777:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23762:3:25"},"nodeType":"YulFunctionCall","src":"23762:18:25"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nodeType":"YulLiteral","src":"23782:34:25","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23755:6:25"},"nodeType":"YulFunctionCall","src":"23755:62:25"},"nodeType":"YulExpressionStatement","src":"23755:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23837:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23848:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23833:3:25"},"nodeType":"YulFunctionCall","src":"23833:18:25"},{"hexValue":"6c6172676520","kind":"string","nodeType":"YulLiteral","src":"23853:8:25","type":"","value":"large "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23826:6:25"},"nodeType":"YulFunctionCall","src":"23826:36:25"},"nodeType":"YulExpressionStatement","src":"23826:36:25"},{"nodeType":"YulAssignment","src":"23871:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23883:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"23894:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23879:3:25"},"nodeType":"YulFunctionCall","src":"23879:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23871:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23653:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23667:4:25","type":""}],"src":"23502:402:25"},{"body":{"nodeType":"YulBlock","src":"23961:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"24020:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24022:16:25"},"nodeType":"YulFunctionCall","src":"24022:18:25"},"nodeType":"YulExpressionStatement","src":"24022:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23992:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23985:6:25"},"nodeType":"YulFunctionCall","src":"23985:9:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23978:6:25"},"nodeType":"YulFunctionCall","src":"23978:17:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24000:1:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24011:1:25","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24007:3:25"},"nodeType":"YulFunctionCall","src":"24007:6:25"},{"name":"x","nodeType":"YulIdentifier","src":"24015:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24003:3:25"},"nodeType":"YulFunctionCall","src":"24003:14:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23997:2:25"},"nodeType":"YulFunctionCall","src":"23997:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23974:3:25"},"nodeType":"YulFunctionCall","src":"23974:45:25"},"nodeType":"YulIf","src":"23971:71:25"},{"nodeType":"YulAssignment","src":"24051:20:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24066:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24069:1:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24062:3:25"},"nodeType":"YulFunctionCall","src":"24062:9:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24051:7:25"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23940:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"23943:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23949:7:25","type":""}],"src":"23909:168:25"},{"body":{"nodeType":"YulBlock","src":"24114:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24131:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24138:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24143:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24134:3:25"},"nodeType":"YulFunctionCall","src":"24134:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24124:6:25"},"nodeType":"YulFunctionCall","src":"24124:31:25"},"nodeType":"YulExpressionStatement","src":"24124:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24171:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24174:4:25","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24164:6:25"},"nodeType":"YulFunctionCall","src":"24164:15:25"},"nodeType":"YulExpressionStatement","src":"24164:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24195:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24198:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24188:6:25"},"nodeType":"YulFunctionCall","src":"24188:15:25"},"nodeType":"YulExpressionStatement","src":"24188:15:25"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"24082:127:25"},{"body":{"nodeType":"YulBlock","src":"24260:74:25","statements":[{"body":{"nodeType":"YulBlock","src":"24283:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24285:16:25"},"nodeType":"YulFunctionCall","src":"24285:18:25"},"nodeType":"YulExpressionStatement","src":"24285:18:25"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24280:1:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24273:6:25"},"nodeType":"YulFunctionCall","src":"24273:9:25"},"nodeType":"YulIf","src":"24270:35:25"},{"nodeType":"YulAssignment","src":"24314:14:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24323:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"24326:1:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24319:3:25"},"nodeType":"YulFunctionCall","src":"24319:9:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24314:1:25"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24245:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24248:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24254:1:25","type":""}],"src":"24214:120:25"},{"body":{"nodeType":"YulBlock","src":"24391:235:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24401:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24411:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24405:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24454:21:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24469:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24472:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24465:3:25"},"nodeType":"YulFunctionCall","src":"24465:10:25"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"24458:3:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24484:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24499:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24502:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24495:3:25"},"nodeType":"YulFunctionCall","src":"24495:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24488:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24565:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24567:16:25"},"nodeType":"YulFunctionCall","src":"24567:18:25"},"nodeType":"YulExpressionStatement","src":"24567:18:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24535:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24528:6:25"},"nodeType":"YulFunctionCall","src":"24528:11:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24521:6:25"},"nodeType":"YulFunctionCall","src":"24521:19:25"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24545:3:25"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24554:2:25"},{"name":"x_1","nodeType":"YulIdentifier","src":"24558:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24550:3:25"},"nodeType":"YulFunctionCall","src":"24550:12:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24542:2:25"},"nodeType":"YulFunctionCall","src":"24542:21:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24517:3:25"},"nodeType":"YulFunctionCall","src":"24517:47:25"},"nodeType":"YulIf","src":"24514:73:25"},{"nodeType":"YulAssignment","src":"24596:24:25","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"24611:3:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24616:3:25"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24607:3:25"},"nodeType":"YulFunctionCall","src":"24607:13:25"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24596:7:25"}]}]},"name":"checked_mul_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24370:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24373:1:25","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"24379:7:25","type":""}],"src":"24339:287:25"},{"body":{"nodeType":"YulBlock","src":"24677:170:25","statements":[{"nodeType":"YulVariableDeclaration","src":"24687:44:25","value":{"kind":"number","nodeType":"YulLiteral","src":"24697:34:25","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24691:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24740:21:25","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24755:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24758:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24751:3:25"},"nodeType":"YulFunctionCall","src":"24751:10:25"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"24744:3:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"24785:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24787:16:25"},"nodeType":"YulFunctionCall","src":"24787:18:25"},"nodeType":"YulExpressionStatement","src":"24787:18:25"}]},"condition":{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"24780:3:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24773:6:25"},"nodeType":"YulFunctionCall","src":"24773:11:25"},"nodeType":"YulIf","src":"24770:37:25"},{"nodeType":"YulAssignment","src":"24816:25:25","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24829:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"24832:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24825:3:25"},"nodeType":"YulFunctionCall","src":"24825:10:25"},{"name":"y_1","nodeType":"YulIdentifier","src":"24837:3:25"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24821:3:25"},"nodeType":"YulFunctionCall","src":"24821:20:25"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24816:1:25"}]}]},"name":"checked_div_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24662:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"24665:1:25","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24671:1:25","type":""}],"src":"24631:216:25"},{"body":{"nodeType":"YulBlock","src":"25079:355:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25096:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25111:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25119:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25107:3:25"},"nodeType":"YulFunctionCall","src":"25107:19:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25089:6:25"},"nodeType":"YulFunctionCall","src":"25089:38:25"},"nodeType":"YulExpressionStatement","src":"25089:38:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25147:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25158:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25143:3:25"},"nodeType":"YulFunctionCall","src":"25143:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25163:3:25","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25136:6:25"},"nodeType":"YulFunctionCall","src":"25136:31:25"},"nodeType":"YulExpressionStatement","src":"25136:31:25"},{"nodeType":"YulVariableDeclaration","src":"25176:76:25","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25216:6:25"},{"name":"value2","nodeType":"YulIdentifier","src":"25224:6:25"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25236:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25247:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25232:3:25"},"nodeType":"YulFunctionCall","src":"25232:19:25"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"25190:25:25"},"nodeType":"YulFunctionCall","src":"25190:62:25"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"25180:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25272:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25283:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25268:3:25"},"nodeType":"YulFunctionCall","src":"25268:18:25"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"25292:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"25300:18:25","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25288:3:25"},"nodeType":"YulFunctionCall","src":"25288:31:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25261:6:25"},"nodeType":"YulFunctionCall","src":"25261:59:25"},"nodeType":"YulExpressionStatement","src":"25261:59:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25340:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25351:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25336:3:25"},"nodeType":"YulFunctionCall","src":"25336:18:25"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"25360:6:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"25368:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25356:3:25"},"nodeType":"YulFunctionCall","src":"25356:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25329:6:25"},"nodeType":"YulFunctionCall","src":"25329:50:25"},"nodeType":"YulExpressionStatement","src":"25329:50:25"},{"nodeType":"YulAssignment","src":"25388:40:25","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25413:6:25"},{"name":"tail_1","nodeType":"YulIdentifier","src":"25421:6:25"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"25396:16:25"},"nodeType":"YulFunctionCall","src":"25396:32:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25388:4:25"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25016:9:25","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25027:6:25","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25035:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25043:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25051:6:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25059:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25070:4:25","type":""}],"src":"24852:582:25"},{"body":{"nodeType":"YulBlock","src":"25471:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25488:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25495:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"25500:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25491:3:25"},"nodeType":"YulFunctionCall","src":"25491:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25481:6:25"},"nodeType":"YulFunctionCall","src":"25481:31:25"},"nodeType":"YulExpressionStatement","src":"25481:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25528:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25531:4:25","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25521:6:25"},"nodeType":"YulFunctionCall","src":"25521:15:25"},"nodeType":"YulExpressionStatement","src":"25521:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25552:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25555:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25545:6:25"},"nodeType":"YulFunctionCall","src":"25545:15:25"},"nodeType":"YulExpressionStatement","src":"25545:15:25"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"25439:127:25"},{"body":{"nodeType":"YulBlock","src":"25745:171:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25762:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25773:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25755:6:25"},"nodeType":"YulFunctionCall","src":"25755:21:25"},"nodeType":"YulExpressionStatement","src":"25755:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25796:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25807:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25792:3:25"},"nodeType":"YulFunctionCall","src":"25792:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"25812:2:25","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25785:6:25"},"nodeType":"YulFunctionCall","src":"25785:30:25"},"nodeType":"YulExpressionStatement","src":"25785:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25835:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25846:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25831:3:25"},"nodeType":"YulFunctionCall","src":"25831:18:25"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nodeType":"YulLiteral","src":"25851:23:25","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25824:6:25"},"nodeType":"YulFunctionCall","src":"25824:51:25"},"nodeType":"YulExpressionStatement","src":"25824:51:25"},{"nodeType":"YulAssignment","src":"25884:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25896:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"25907:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25892:3:25"},"nodeType":"YulFunctionCall","src":"25892:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25884:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25722:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25736:4:25","type":""}],"src":"25571:345:25"},{"body":{"nodeType":"YulBlock","src":"26095:168:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26112:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26123:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26105:6:25"},"nodeType":"YulFunctionCall","src":"26105:21:25"},"nodeType":"YulExpressionStatement","src":"26105:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26146:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26157:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26142:3:25"},"nodeType":"YulFunctionCall","src":"26142:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26162:2:25","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26135:6:25"},"nodeType":"YulFunctionCall","src":"26135:30:25"},"nodeType":"YulExpressionStatement","src":"26135:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26185:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26196:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26181:3:25"},"nodeType":"YulFunctionCall","src":"26181:18:25"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nodeType":"YulLiteral","src":"26201:20:25","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26174:6:25"},"nodeType":"YulFunctionCall","src":"26174:48:25"},"nodeType":"YulExpressionStatement","src":"26174:48:25"},{"nodeType":"YulAssignment","src":"26231:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26243:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26254:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26239:3:25"},"nodeType":"YulFunctionCall","src":"26239:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26231:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26072:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26086:4:25","type":""}],"src":"25921:342:25"},{"body":{"nodeType":"YulBlock","src":"26442:161:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26470:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26452:6:25"},"nodeType":"YulFunctionCall","src":"26452:21:25"},"nodeType":"YulExpressionStatement","src":"26452:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26493:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26504:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26489:3:25"},"nodeType":"YulFunctionCall","src":"26489:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"26509:2:25","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26482:6:25"},"nodeType":"YulFunctionCall","src":"26482:30:25"},"nodeType":"YulExpressionStatement","src":"26482:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26532:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26543:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26528:3:25"},"nodeType":"YulFunctionCall","src":"26528:18:25"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nodeType":"YulLiteral","src":"26548:13:25","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26521:6:25"},"nodeType":"YulFunctionCall","src":"26521:41:25"},"nodeType":"YulExpressionStatement","src":"26521:41:25"},{"nodeType":"YulAssignment","src":"26571:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26583:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"26594:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26579:3:25"},"nodeType":"YulFunctionCall","src":"26579:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26571:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26419:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26433:4:25","type":""}],"src":"26268:335:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0xffffffffffffffff\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), 0)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_decode_uint128(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint128(headStart)\n value1 := abi_decode_uint128(add(headStart, 32))\n value2 := abi_decode_uint128(add(headStart, 64))\n value3 := abi_decode_uint64(add(headStart, 96))\n value4 := abi_decode_uint64(add(headStart, 128))\n }\n function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let value_1 := calldataload(add(headStart, 96))\n if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n value3 := value_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(0, 0) }\n value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n let _1 := 0xffffffffffffffffffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n let _2 := 0xffffffffffffffff\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, _2))\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value3 := value\n value4 := abi_decode_uint64(add(headStart, 96))\n value5 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value4 := value\n let value_1 := calldataload(add(headStart, 128))\n validator_revert_address(value_1)\n value5 := value_1\n let offset_2 := calldataload(add(headStart, 160))\n if gt(offset_2, _1) { revert(0, 0) }\n value6 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"LayerZeroMock: no stored payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"LayerZeroMock: invalid payload\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), and(value4, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"LayerZeroMock: no receive reentr\")\n mstore(add(headStart, 96), \"ancy\")\n tail := add(headStart, 128)\n }\n function increment_t_uint64(value) -> ret\n {\n let _1 := 0xffffffffffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"LayerZeroMock: wrong nonce\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 192))\n mstore(add(headStart, 64), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value4, 0xffffffffffffffff))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n let tail_2 := abi_encode_bytes_calldata(value5, value6, tail_1)\n mstore(add(headStart, 160), sub(tail_2, headStart))\n tail := abi_encode_bytes(value7, tail_2)\n }\n function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"LayerZeroMock: no send reentranc\")\n mstore(add(headStart, 96), \"y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"LayerZeroMock: incorrect remote \")\n mstore(add(headStart, 96), \"address size\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 55)\n mstore(add(headStart, 64), \"LayerZeroMock: destination Layer\")\n mstore(add(headStart, 96), \"Zero Endpoint not found\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"LayerZeroMock: not enough native\")\n mstore(add(headStart, 96), \" for fees\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"LayerZeroMock: failed to refund\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let _1 := not(0xffffffffffffffffffffffff)\n mstore(pos, and(shl(96, value0), _1))\n mstore(add(pos, 20), and(shl(96, value1), _1))\n end := add(pos, 40)\n }\n function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 192)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), sub(tail_1, headStart))\n tail := abi_encode_bytes(value5, tail_1)\n }\n function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n mstore(add(pos, 2), value1)\n end := add(pos, 34)\n }\n function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"LayerZeroMock: dstNativeAmt too \")\n mstore(add(headStart, 96), \"large \")\n tail := add(headStart, 128)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_mul_t_uint128(x, y) -> product\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_div_t_uint128(x, y) -> r\n {\n let _1 := 0xffffffffffffffffffffffffffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, 0xffff))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n mstore(add(headStart, 96), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"Invalid adapterParams\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Unsupported txType\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 11)\n mstore(add(headStart, 64), \"Gas too low\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a1461083c578063f5ecbdbc14610858578063f9cd3ceb1461088a578063fbba623b146108a0578063fdc07c70146108c057600080fd5b8063ca066b35146107bc578063cbed8b9c146107dd578063d23104f1146107fe578063da1a7c9a14610274578063db14f3051461082157600080fd5b8063b6d9ef60116100f2578063b6d9ef60146106ea578063c08f15a11461070a578063c2fa481314610753578063c580310014610773578063c81b383a1461078657600080fd5b80639924d33b146106375780639c729da11461043e578063aaff5f1614610689578063b2086499146106a957600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043e57806376a386dc146104765780637a1457481461050f5780637f6df8e614610579578063907c5e7e146105a757600080fd5b80633408e470146103c55780633e0dd83e146103de57806340a7bb10146103fe57806342d65a8d1461041e57600080fd5b806310ddb137116101ed57806310ddb1371461025457806312a9ee6b146102d8578063240de27714610307578063272bd3841461032d5780632c365e251461034f57600080fd5b806307d3277f1461021f57806307e0db1714610254578063096568f6146102745780630eaf6ea6146102a8575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604080519283526020830191909152015b60405180910390f35b34801561026057600080fd5b5061027261026f366004612315565b50565b005b34801561028057600080fd5b5061029561028f366004612345565b50600190565b60405161ffff909116815260200161024b565b3480156102b457600080fd5b506102c86102c33660046123aa565b6108e0565b604051901515815260200161024b565b3480156102e457600080fd5b506102f86102f336600461249e565b610926565b60405161024b93929190612541565b34801561031357600080fd5b5061027261032236600461257d565b600491909155600555565b34801561033957600080fd5b50610342610a23565b60405161024b919061259f565b34801561035b57600080fd5b5061027261036a3660046125e0565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103d157600080fd5b5060015461ffff16610295565b3480156103ea57600080fd5b506001546102c89062010000900460ff1681565b34801561040a57600080fd5b5061023a610419366004612645565b610ab1565b34801561042a57600080fd5b506102726104393660046123aa565b610bb0565b34801561044a57600080fd5b5061045e610459366004612345565b503090565b6040516001600160a01b03909116815260200161024b565b34801561048257600080fd5b506104e26104913660046126e5565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604080516001600160401b0390941684526001600160a01b0390921660208401529082015260600161024b565b34801561051b57600080fd5b5061056161052a366004612732565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b031692915050565b6040516001600160401b03909116815260200161024b565b34801561058557600080fd5b506105996105943660046123aa565b610cf7565b60405190815260200161024b565b3480156105b357600080fd5b506002546003546105f3916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161024b565b34801561064357600080fd5b506105616106523660046126e5565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b34801561069557600080fd5b506102726106a4366004612769565b610d33565b3480156106b557600080fd5b506105616106c4366004612732565b60096020908152600092835260408084209091529082529020546001600160401b031681565b3480156106f657600080fd5b506102726107053660046127e9565b600655565b34801561071657600080fd5b50610272610725366004612802565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b34801561075f57600080fd5b5061027261076e366004612820565b610f49565b6102726107813660046128cf565b6116a6565b34801561079257600080fd5b5061045e6107a1366004612345565b6000602081905290815260409020546001600160a01b031681565b3480156107c857600080fd5b506102c8600c54610100900460ff1660021490565b3480156107e957600080fd5b506102726107f8366004612996565b50505050565b34801561080a57600080fd5b506102726001805462ff0000191662010000179055565b34801561082d57600080fd5b506001546102959061ffff1681565b34801561084857600080fd5b506102c8600c5460ff1660021490565b34801561086457600080fd5b506103426108733660046129fd565b604080516020810190915260008152949350505050565b34801561089657600080fd5b5061059960065481565b3480156108ac57600080fd5b506102726108bb366004612a4a565b611c41565b3480156108cc57600080fd5b506105616108db3660046123aa565b611c58565b61ffff83166000908152600a602052604080822090518291906109069086908690612a86565b9081526040519081900360200190206001015415159150505b9392505050565b600b602090815260008481526040902083518085018301805192815290830192850192909220915280548290811061095d57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506109a090612a96565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc90612a96565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905083565b60078054610a3090612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90612a96565b8015610aa95780601f10610a7e57610100808354040283529160200191610aa9565b820191906000526020600020905b815481529060010190602001808311610a8c57829003601f168201915b505050505081565b600080600080845111610b4e5760078054610acb90612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054610af790612a96565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050610b50565b835b90506000610b638960018a8a5186611cc6565b90506000610b748783600654611e60565b905086610b845780945084610b89565b809350835b50600654610b978387612ae7565b610ba19190612ae7565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610bd39085908590612a86565b9081526040519081900360200190206001810154909150610c3b5760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b8054600160401b90046001600160a01b03163314610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610c32565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610ce490869086908690612b28565b60405180910390a16107f8848484611e9d565b61ffff83166000908152600b60205260408082209051610d1a9085908590612a86565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610d569087908790612a86565b9081526040519081900360200190206001810154909150610db95760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610c32565b80546001600160401b031682148015610dec575080600101548383604051610de2929190612a86565b6040518091039020145b610e385760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610c32565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610e829089908990612a86565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610ece908b908b908b9087908c908c90600401612b46565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610f37959493929190612b93565b60405180910390a15050505050505050565b600c54610100900460ff16600114610faf5760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472604482015263616e637960e01b6064820152608401610c32565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610fe1908a908a90612a86565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161101c929190612a86565b9081526040519081900360200190208054600090611042906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b0316146110c55760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610c32565b6001810154156113b95761ffff89166000908152600b602052604080822090516110f2908b908b90612a86565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561134357815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936111da939085019201906121b4565b50505060005b82546111ee90600190612c03565b8110156112c15782818154811061120757611207612c1a565b9060005260206000209060020201838260016112239190612ae7565b8154811061123357611233612c1a565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b0316909202919091178155600180830180549183019161129f90612a96565b6112aa929190612238565b5090505080806112b990612c30565b9150506111e0565b5080826000815481106112d6576112d6612c1a565b600091825260209182902083516002909202018054848401516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b039093169290921791909117815560408301518051919261133a926001850192909101906121b4565b509050506113b2565b815460018181018455600084815260209081902084516002909402018054828601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b0390951694909417939093178355604084015180518594936113ae939085019201906121b4565b5050505b505061168c565b60015462010000900460ff16156114e7576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611406929190612a86565b604080519182900390912090915261ffff8b166000908152600a6020528190209051611435908b908b90612a86565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916114ce918c918c918c918c918c918b918b9190612c4b565b60405180910390a16001805462ff00001916905561168c565b604051621d356760e01b81526001600160a01b03871690621d356790869061151d908d908d908d908c908b908b90600401612b46565b600060405180830381600088803b15801561153757600080fd5b5087f193505050508015611549575060015b61168c573d808015611577576040519150601f19603f3d011682016040523d82523d6000602084013e61157c565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516115b9929190612a86565b604080519182900390912090915261ffff8c166000908152600a60205281902090516115e8908c908c90612a86565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611676908c908c908c908c908c908b908b908a90612c4b565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146117055760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e636044820152607960f81b6064820152608401610c32565b600c805460ff1916600217905585516028146117785760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201526b616464726573732073697a6560a01b6064820152608401610c32565b60148601516001600160a01b03808216600090815260208190526040902054168061180b5760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610c32565b6000808451116118a5576007805461182290612a96565b80601f016020809104026020016040519081016040528092919081815260200182805461184e90612a96565b801561189b5780601f106118705761010080835404028352916020019161189b565b820191906000526020600020905b81548152906001019060200180831161187e57829003601f168201915b50505050506118a7565b835b905060006118f88b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a16151586610ab1565b5090508034101561195d5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201526820666f72206665657360b81b6064820152608401610c32565b61ffff8b166000908152600960209081526040808320338452909152812080548290611991906001600160401b0316612bdc565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346119c49190612c03565b90508015611a71576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a19576040519150601f19603f3d011682016040523d82523d6000602084013e611a1e565b606091505b5050905080611a6f5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610c32565b505b6000806000611a7f87612094565b91955093509150508115611b21576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611ada576040519150601f19603f3d011682016040523d82523d6000602084013e611adf565b606091505b5050905080611b1f5760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040516bffffffffffffffffffffffff1933606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b8152600401611bee96959493929190612cbd565b600060405180830381600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b8051611c549060079060208401906121b4565b5050565b61ffff83166000908152600860205260408082209051611c7b9085908590612a86565b908152604051908190036020019020546001600160401b031690509392505050565b60408051600160f01b602082015260228082019390935281518082039093018352604201905290565b600080600080611cd585612094565b5092509250925060008361ffff1660021415611d62576003546001600160801b0316821115611d555760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201526503630b933b2960d51b6064820152608401610c32565b611d5f8282612ae7565b90505b600354600090611d83908590600160801b90046001600160401b0316612ae7565b600254611da09190600160801b90046001600160801b0316612d11565b9050611dac8183612ae7565b6002549092506000906402540be40090611dcf906001600160801b031685612d11565b611dd99190612d46565b6002546003549192506000916402540be400916001600160801b0380821692611e1c92600160c01b9091046001600160401b031691600160801b90910416612d5a565b611e269190612d5a565b611e309190612d89565b6001600160801b03169050611e45818b612d11565b611e4f9083612ae7565b9d9c50505050505050505050505050565b60008315611e71575060045461091f565b60055461271090611e828486612ae7565b611e8c9190612d11565b611e969190612d46565b905061091f565b61ffff83166000908152600b60205260408082209051611ec09085908590612a86565b908152602001604051809103902090505b8054156107f85780546000908290611eeb90600190612c03565b81548110611efb57611efb612c1a565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611f5490612a96565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8090612a96565b8015611fcd5780601f10611fa257610100808354040283529160200191611fcd565b820191906000526020600020905b815481529060010190602001808311611fb057829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401612017959493929190612daf565b600060405180830381600087803b15801561203157600080fd5b505af1158015612045573d6000803e3d6000fd5b505050508180548061205957612059612dfa565b60008281526020812060026000199093019283020180546001600160e01b03191681559061208a60018301826122b3565b5050905550611ed1565b6000806000808451602214806120ab575060428551115b6120ef5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642061646170746572506172616d7360581b6044820152606401610c32565b60028501519350602285015192508361ffff166001148061211457508361ffff166002145b6121555760405162461bcd60e51b8152602060048201526012602482015271556e737570706f727465642074785479706560701b6044820152606401610c32565b600083116121935760405162461bcd60e51b815260206004820152600b60248201526a47617320746f6f206c6f7760a81b6044820152606401610c32565b8361ffff16600214156121ad575050604283015160568401515b9193509193565b8280546121c090612a96565b90600052602060002090601f0160209004810192826121e25760008555612228565b82601f106121fb57805160ff1916838001178555612228565b82800160010185558215612228579182015b8281111561222857825182559160200191906001019061220d565b506122349291506122e9565b5090565b82805461224490612a96565b90600052602060002090601f0160209004810192826122665760008555612228565b82601f106122775780548555612228565b8280016001018555821561222857600052602060002091601f016020900482015b82811115612228578254825591600101919060010190612298565b5080546122bf90612a96565b6000825580601f106122cf575050565b601f01602090049060005260206000209081019061026f91905b5b8082111561223457600081556001016122ea565b803561ffff8116811461231057600080fd5b919050565b60006020828403121561232757600080fd5b61091f826122fe565b6001600160a01b038116811461026f57600080fd5b60006020828403121561235757600080fd5b813561091f81612330565b60008083601f84011261237457600080fd5b5081356001600160401b0381111561238b57600080fd5b6020830191508360208285010111156123a357600080fd5b9250929050565b6000806000604084860312156123bf57600080fd5b6123c8846122fe565b925060208401356001600160401b038111156123e357600080fd5b6123ef86828701612362565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261242357600080fd5b81356001600160401b038082111561243d5761243d6123fc565b604051601f8301601f19908116603f01168101908282118183101715612465576124656123fc565b8160405283815286602085880101111561247e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156124b357600080fd5b6124bc846122fe565b925060208401356001600160401b038111156124d757600080fd5b6124e386828701612412565b925050604084013590509250925092565b6000815180845260005b8181101561251a576020818501810151868301820152016124fe565b8181111561252c576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03841681526001600160401b0383166020820152606060408201819052600090612574908301846124f4565b95945050505050565b6000806040838503121561259057600080fd5b50508035926020909101359150565b60208152600061091f60208301846124f4565b80356001600160801b038116811461231057600080fd5b80356001600160401b038116811461231057600080fd5b600080600080600060a086880312156125f857600080fd5b612601866125b2565b945061260f602087016125b2565b935061261d604087016125b2565b925061262b606087016125c9565b9150612639608087016125c9565b90509295509295909350565b600080600080600060a0868803121561265d57600080fd5b612666866122fe565b9450602086013561267681612330565b935060408601356001600160401b038082111561269257600080fd5b61269e89838a01612412565b94506060880135915081151582146126b557600080fd5b909250608087013590808211156126cb57600080fd5b506126d888828901612412565b9150509295509295909350565b600080604083850312156126f857600080fd5b612701836122fe565b915060208301356001600160401b0381111561271c57600080fd5b61272885828601612412565b9150509250929050565b6000806040838503121561274557600080fd5b61274e836122fe565b9150602083013561275e81612330565b809150509250929050565b60008060008060006060868803121561278157600080fd5b61278a866122fe565b945060208601356001600160401b03808211156127a657600080fd5b6127b289838a01612362565b909650945060408801359150808211156127cb57600080fd5b506127d888828901612362565b969995985093965092949392505050565b6000602082840312156127fb57600080fd5b5035919050565b6000806040838503121561281557600080fd5b823561274e81612330565b60008060008060008060008060c0898b03121561283c57600080fd5b612845896122fe565b975060208901356001600160401b038082111561286157600080fd5b61286d8c838d01612362565b909950975060408b0135915061288282612330565b81965061289160608c016125c9565b955060808b0135945060a08b01359150808211156128ae57600080fd5b506128bb8b828c01612362565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156128ea57600080fd5b6128f3886122fe565b965060208801356001600160401b038082111561290f57600080fd5b61291b8b838c01612412565b975060408a013591508082111561293157600080fd5b61293d8b838c01612362565b909750955060608a0135915061295282612330565b90935060808901359061296482612330565b90925060a0890135908082111561297a57600080fd5b506129878a828b01612412565b91505092959891949750929550565b600080600080608085870312156129ac57600080fd5b6129b5856122fe565b93506129c3602086016122fe565b92506040850135915060608501356001600160401b038111156129e557600080fd5b6129f187828801612412565b91505092959194509250565b60008060008060808587031215612a1357600080fd5b612a1c856122fe565b9350612a2a602086016122fe565b92506040850135612a3a81612330565b9396929550929360600135925050565b600060208284031215612a5c57600080fd5b81356001600160401b03811115612a7257600080fd5b612a7e84828501612412565b949350505050565b8183823760009101908152919050565b600181811c90821680612aaa57607f821691505b60208210811415612acb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612afa57612afa612ad1565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff84168152604060208201526000612574604083018486612aff565b61ffff87168152608060208201526000612b64608083018789612aff565b6001600160401b03861660408401528281036060840152612b86818587612aff565b9998505050505050505050565b61ffff86168152608060208201526000612bb1608083018688612aff565b6001600160401b03949094166040830152506001600160a01b03919091166060909101529392505050565b60006001600160401b0380831681811415612bf957612bf9612ad1565b6001019392505050565b600082821015612c1557612c15612ad1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612c4457612c44612ad1565b5060010190565b61ffff8916815260c060208201526000612c6960c08301898b612aff565b6001600160a01b03881660408401526001600160401b03871660608401528281036080840152612c9a818688612aff565b905082810360a0840152612cae81856124f4565b9b9a5050505050505050505050565b61ffff8716815260c060208201526000612cda60c08301886124f4565b6001600160a01b03871660408401526001600160401b03861660608401526080830185905282810360a0840152612b8681856124f4565b6000816000190483118215151615612d2b57612d2b612ad1565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612d5557612d55612d30565b500490565b60006001600160801b0380831681851681830481118215151615612d8057612d80612ad1565b02949350505050565b60006001600160801b0380841680612da357612da3612d30565b92169190910492915050565b61ffff86168152608060208201526000612dcd608083018688612aff565b6001600160401b03851660408401528281036060840152612dee81856124f4565b98975050505050505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220fcd2d38b724f9c9e5d1ac5abffe439ca2f05c406fdb9d323fa90177d94e6804364736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x83C JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x858 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x88A JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x8A0 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x8C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x6EA JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x637 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x689 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x579 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3FE JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2A8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x2315 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 PUSH2 0x2F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x249E JUMP JUMPDEST PUSH2 0x926 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x257D JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24B SWAP2 SWAP1 PUSH2 0x259F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x36A CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2C8 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2645 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x439 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E2 PUSH2 0x491 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH2 0x594 CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5F3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x24B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x652 CALLDATASIZE PUSH1 0x4 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2769 JUMP JUMPDEST PUSH2 0xD33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x6C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x705 CALLDATASIZE PUSH1 0x4 PUSH2 0x27E9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x725 CALLDATASIZE PUSH1 0x4 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x76E CALLDATASIZE PUSH1 0x4 PUSH2 0x2820 JUMP JUMPDEST PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x272 PUSH2 0x781 CALLDATASIZE PUSH1 0x4 PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45E PUSH2 0x7A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2996 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x295 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C8 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x342 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x599 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x8BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A4A JUMP JUMPDEST PUSH2 0x1C41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x561 PUSH2 0x8DB CALLDATASIZE PUSH1 0x4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x906 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x9A0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9CC SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA19 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9EE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA19 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9FC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xA30 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA5C SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAA9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA7E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAA9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA8C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xB4E JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xACB SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF7 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB44 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB19 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB44 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB27 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xB50 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB63 DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x1CC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB74 DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1E60 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xB84 JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xB89 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xB97 DUP4 DUP8 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xBD3 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xC3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xCE4 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x7F8 DUP5 DUP5 DUP5 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD56 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xDEC JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xDE2 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xE82 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xECE SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xF37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xFAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xFE1 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x101C SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1042 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0x10C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x13B9 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x10F2 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1343 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x11DA SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x11EE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x12C1 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1207 JUMPI PUSH2 0x1207 PUSH2 0x2C1A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1223 SWAP2 SWAP1 PUSH2 0x2AE7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1233 JUMPI PUSH2 0x1233 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP2 DUP4 ADD SWAP2 PUSH2 0x129F SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x12AA SWAP3 SWAP2 SWAP1 PUSH2 0x2238 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP1 PUSH2 0x12B9 SWAP1 PUSH2 0x2C30 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E0 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x12D6 JUMPI PUSH2 0x12D6 PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD DUP5 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD SWAP2 SWAP3 PUSH2 0x133A SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x13B2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD DUP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP4 SWAP1 SWAP4 OR DUP4 SSTORE PUSH1 0x40 DUP5 ADD MLOAD DUP1 MLOAD DUP6 SWAP5 SWAP4 PUSH2 0x13AE SWAP4 SWAP1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x168C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x14E7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1406 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1435 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x14CE SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x168C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x151D SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1549 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x168C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x157C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x15B9 SWAP3 SWAP2 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x15E8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1676 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2C4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1705 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x180B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x18A5 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1822 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x184E SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x189B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1870 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x189B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x187E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x18A7 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18F8 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xAB1 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x195D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1991 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2BDC JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x19C4 SWAP2 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A19 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1A6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1A7F DUP8 PUSH2 0x2094 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1B21 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1ADA JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1B1F JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BEE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C54 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x21B4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1C7B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1CD5 DUP6 PUSH2 0x2094 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1D62 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x1D55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH2 0x1D5F DUP3 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1D83 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DA0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2D11 JUMP JUMPDEST SWAP1 POP PUSH2 0x1DAC DUP2 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1DCF SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1DD9 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1E1C SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E26 SWAP2 SWAP1 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1E30 SWAP2 SWAP1 PUSH2 0x2D89 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1E45 DUP2 DUP12 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E4F SWAP1 DUP4 PUSH2 0x2AE7 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1E71 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x91F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1E82 DUP5 DUP7 PUSH2 0x2AE7 JUMP JUMPDEST PUSH2 0x1E8C SWAP2 SWAP1 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1E96 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST SWAP1 POP PUSH2 0x91F JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1EC0 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2A86 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x7F8 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1EEB SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C03 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1EFB JUMPI PUSH2 0x1EFB PUSH2 0x2C1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1F54 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F80 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2017 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2031 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x2059 JUMPI PUSH2 0x2059 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x208A PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x22B3 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1ED1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x20AB JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x20EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x2114 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xC32 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x21AD JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x21C0 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x21E2 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x21FB JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x220D JUMP JUMPDEST POP PUSH2 0x2234 SWAP3 SWAP2 POP PUSH2 0x22E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2244 SWAP1 PUSH2 0x2A96 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2266 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2277 JUMPI DUP1 SLOAD DUP6 SSTORE PUSH2 0x2228 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2228 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2228 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2298 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x22BF SWAP1 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x22CF JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26F SWAP2 SWAP1 JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2234 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x22EA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91F DUP3 PUSH2 0x22FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91F DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2374 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x23A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C8 DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23EF DUP7 DUP3 DUP8 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x243D JUMPI PUSH2 0x243D PUSH2 0x23FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2465 JUMPI PUSH2 0x2465 PUSH2 0x23FC JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x247E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24BC DUP5 PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E3 DUP7 DUP3 DUP8 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x251A JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x24FE JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x252C JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2574 SWAP1 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x91F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2310 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x25B2 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP4 POP PUSH2 0x261D PUSH1 0x40 DUP8 ADD PUSH2 0x25B2 JUMP JUMPDEST SWAP3 POP PUSH2 0x262B PUSH1 0x60 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP2 POP PUSH2 0x2639 PUSH1 0x80 DUP8 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2666 DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2676 DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269E DUP10 DUP4 DUP11 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x26B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2701 DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2728 DUP6 DUP3 DUP7 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x274E DUP4 PUSH2 0x22FE JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x275E DUP2 PUSH2 0x2330 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x278A DUP7 PUSH2 0x22FE JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x27A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27B2 DUP10 DUP4 DUP11 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D8 DUP9 DUP3 DUP10 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x274E DUP2 PUSH2 0x2330 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x283C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2845 DUP10 PUSH2 0x22FE JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286D DUP13 DUP4 DUP14 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2882 DUP3 PUSH2 0x2330 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2891 PUSH1 0x60 DUP13 ADD PUSH2 0x25C9 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28BB DUP12 DUP3 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP9 PUSH2 0x22FE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x290F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291B DUP12 DUP4 DUP13 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2931 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x293D DUP12 DUP4 DUP13 ADD PUSH2 0x2362 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2952 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2964 DUP3 PUSH2 0x2330 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x297A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2987 DUP11 DUP3 DUP12 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x29AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29B5 DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x29C3 PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F1 DUP8 DUP3 DUP9 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A1C DUP6 PUSH2 0x22FE JUMP JUMPDEST SWAP4 POP PUSH2 0x2A2A PUSH1 0x20 DUP7 ADD PUSH2 0x22FE JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2A3A DUP2 PUSH2 0x2330 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7E DUP5 DUP3 DUP6 ADD PUSH2 0x2412 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2AAA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2ACB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2AFA JUMPI PUSH2 0x2AFA PUSH2 0x2AD1 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2574 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x2AFF JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2B64 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 DUP8 PUSH2 0x2AFF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2BB1 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2BF9 JUMPI PUSH2 0x2BF9 PUSH2 0x2AD1 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C15 JUMPI PUSH2 0x2C15 PUSH2 0x2AD1 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C44 JUMPI PUSH2 0x2C44 PUSH2 0x2AD1 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2C69 PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C9A DUP2 DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2CDA PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP6 SWAP1 MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2B86 DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D2B JUMPI PUSH2 0x2D2B PUSH2 0x2AD1 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2D55 JUMPI PUSH2 0x2D55 PUSH2 0x2D30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP2 DUP4 DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2D80 JUMPI PUSH2 0x2D80 PUSH2 0x2AD1 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP5 AND DUP1 PUSH2 0x2DA3 JUMPI PUSH2 0x2DA3 PUSH2 0x2D30 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCD PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DEE DUP2 DUP6 PUSH2 0x24F4 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xD2 0xD3 DUP12 PUSH19 0x4F9C9E5D1AC5ABFFE439CA2F05C406FDB9D323 STATICCALL SWAP1 OR PUSH30 0x94E6804364736F6C634300080A0033000000000000000000000000000000 ","sourceMap":"768:98:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:42:6;;;;;;;;;;-1:-1:-1;1144:42:6;;;;;;;;;;;;;188:25:25;;;244:2;229:18;;222:34;;;;161:18;1144:42:6;;;;;;;;11660:78;;;;;;;;;;-1:-1:-1;11660:78:6;;;;;:::i;:::-;;;;;11206:133;;;;;;;;;;-1:-1:-1;11206:133:6;;;;;:::i;:::-;-1:-1:-1;11331:1:6;;11206:133;;;;1182:6:25;1170:19;;;1152:38;;1140:2;1125:18;11206:133:6;1008:188:25;10246:228:6;;;;;;;;;;-1:-1:-1;10246:228:6;;;;;:::i;:::-;;:::i;:::-;;;2204:14:25;;2197:22;2179:41;;2167:2;2152:18;10246:228:6;2039:187:25;1846:73:6;;;;;;;;;;-1:-1:-1;1846:73:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13583:162::-;;;;;;;;;;-1:-1:-1;13583:162:6;;;;;:::i;:::-;13656:17;:34;;;;13700:26;:38;13583:162;1219:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13145:432::-;;;;;;;;;;-1:-1:-1;13145:432:6;;;;;:::i;:::-;-1:-1:-1;;;;;13303:47:6;;;-1:-1:-1;;;13360:53:6;;;;;;13303:16;13360:53;13423:32;:51;;;;;;-1:-1:-1;;;;;;13484:35:6;;;;;;;-1:-1:-1;;;;;13484:35:6;;;;;;;;;;-1:-1:-1;;;;;13529:41:6;-1:-1:-1;;;13529:41:6;;;;;;;;13145:432;9344:97;;;;;;;;;;-1:-1:-1;9423:11:6;;;;9344:97;;1047:26;;;;;;;;;;-1:-1:-1;1047:26:6;;;;;;;;;;;8645:693;;;;;;;;;;-1:-1:-1;8645:693:6;;;;;:::i;:::-;;:::i;11831:720::-;;;;;;;;;;-1:-1:-1;11831:720:6;;;;;:::i;:::-;;:::i;10604:121::-;;;;;;;;;;-1:-1:-1;10604:121:6;;;;;:::i;:::-;-1:-1:-1;10713:4:6;;10604:121;;;;-1:-1:-1;;;;;6855:32:25;;;6837:51;;6825:2;6810:18;10604:121:6;6691:203:25;1728:71:6;;;;;;;;;;-1:-1:-1;1728:71:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1728:71:6;;;-1:-1:-1;;;1728:71:6;;-1:-1:-1;;;;;1728:71:6;;;;;;;;-1:-1:-1;;;;;7514:31:25;;;7496:50;;-1:-1:-1;;;;;7582:32:25;;;7577:2;7562:18;;7555:60;7631:18;;;7624:34;7484:2;7469:18;1728:71:6;7296:368:25;8475:164:6;;;;;;;;;;-1:-1:-1;8475:164:6;;;;;:::i;:::-;8596:23;;;8571:6;8596:23;;;:13;:23;;;;;;;;-1:-1:-1;;;;;8596:36:6;;;;;;;;;;-1:-1:-1;;;;;8596:36:6;8475:164;;;;;;;;-1:-1:-1;;;;;8155:31:25;;;8137:50;;8125:2;8110:18;8475:164:6;7993:200:25;12679:173:6;;;;;;;;;;-1:-1:-1;12679:173:6;;;;;:::i;:::-;;:::i;:::-;;;8344:25:25;;;8332:2;8317:18;12679:173:6;8198:177:25;1098:40:6;;;;;;;;;;-1:-1:-1;1098:40:6;;;;;;-1:-1:-1;;;;;1098:40:6;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;;;-1:-1:-1;;;;;1098:40:6;;;;;;-1:-1:-1;;;1098:40:6;;;;;;;;;-1:-1:-1;;;;;8706:15:25;;;8688:34;;8758:15;;;8753:2;8738:18;;8731:43;8810:15;;;;8790:18;;;8783:43;;;;-1:-1:-1;;;;;8899:15:25;;;8894:2;8879:18;;8872:43;8952:15;;;8946:3;8931:19;;8924:44;8622:3;8607:19;1098:40:6;8380:594:25;1345:63:6;;;;;;;;;;-1:-1:-1;1345:63:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1345:63:6;;;9447:793;;;;;;;;;;-1:-1:-1;9447:793:6;;;;;:::i;:::-;;:::i;1489:66::-;;;;;;;;;;-1:-1:-1;1489:66:6;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1489:66:6;;;13751:87;;;;;;;;;;-1:-1:-1;13751:87:6;;;;;:::i;:::-;13809:9;:22;13751:87;13001:138;;;;;;;;;;-1:-1:-1;13001:138:6;;;;;:::i;:::-;-1:-1:-1;;;;;13089:26:6;;;:16;:26;;;;;;;;;;:43;;-1:-1:-1;;;;;;13089:43:6;;;;;;;;13001:138;6031:2275;;;;;;;;;;-1:-1:-1;6031:2275:6;;;;;:::i;:::-;;:::i;4013:2012::-;;;;;;:::i;:::-;;:::i;958:51::-;;;;;;;;;;-1:-1:-1;958:51:6;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;958:51:6;;;10858:126;;;;;;;;;;;;10943:22;;;;;:34;:22;950:1;10943:34;;10858:126;11487:167;;;;;;;;;;-1:-1:-1;11487:167:6;;;;;:::i;:::-;11919:632;11831:720;;;;12924:71;;;;;;;;;;;;12984:4;12967:21;;-1:-1:-1;;12967:21:6;;;;;12924:71;1016:25;;;;;;;;;;-1:-1:-1;1016:25:6;;;;;;;;10731:121;;;;;;;;;;;;10814:19;;:31;:19;950:1;10814:31;;10731:121;10990:210;;;;;;;;;;-1:-1:-1;10990:210:6;;;;;:::i;:::-;11184:9;;;;;;;;;-1:-1:-1;11184:9:6;;10990:210;;;;;;;1192:21;;;;;;;;;;;;;;;;13844:125;;;;;;;;;;-1:-1:-1;13844:125:6;;;;;:::i;:::-;;:::i;8312:157::-;;;;;;;;;;-1:-1:-1;8312:157:6;;;;;:::i;:::-;;:::i;10246:228::-;10389:26;;;10346:4;10389:26;;;:13;:26;;;;;;:33;;10346:4;;10389:26;:33;;10416:5;;;;10389:33;:::i;:::-;;;;;;;;;;;;;;10439:14;;;:28;;;-1:-1:-1;;10246:228:6;;;;;;:::o;1846:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1846:73:6;;;-1:-1:-1;;;;1846:73:6;;;-1:-1:-1;;;;;1846:73:6;;-1:-1:-1;1846:73:6;;-1:-1:-1;1846:73:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1219:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8645:693::-;8802:14;8818:11;8841:26;8894:1;8870:14;:21;:25;:65;;8915:20;8870:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8898:14;8870:65;8841:94;;8969:15;8987:80;9002:11;9015:1;9018:16;9036:8;:15;9053:13;8987:14;:80::i;:::-;8969:98;;9103:16;9122:50;9139:9;9150:10;9162:9;;9122:16;:50::i;:::-;9103:69;;9182:9;:58;;9229:11;9217:23;;;9182:58;;;9203:11;9194:20;;;9182:58;-1:-1:-1;9322:9:6;;9297:22;9309:10;9297:9;:22;:::i;:::-;:34;;;;:::i;:::-;9285:46;;8831:507;;;8645:693;;;;;;;;:::o;11831:720::-;11956:26;;;11929:24;11956:26;;;:13;:26;;;;;;:33;;;;11983:5;;;;11956:33;:::i;:::-;;;;;;;;;;;;;;12085:14;;;;11956:33;;-1:-1:-1;12077:73:6;;;;-1:-1:-1;;;12077:73:6;;15069:2:25;12077:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;12077:73:6;;;;;;;;;12168:13;;-1:-1:-1;;;12168:13:6;;-1:-1:-1;;;;;12168:13:6;12185:10;12168:27;12160:69;;;;-1:-1:-1;;;12160:69:6;;15430:2:25;12160:69:6;;;15412:21:25;15469:2;15449:18;;;15442:30;15508:31;15488:18;;;15481:59;15557:18;;12160:69:6;15228:353:25;12160:69:6;12275:20;;-1:-1:-1;;;;;;12305:26:6;;;12294:1;12275:20;12341:14;;:27;12384:40;;;;;;12405:11;;12418:5;;;;12384:40;:::i;:::-;;;;;;;;12512:32;12525:11;12538:5;;12512:12;:32::i;12679:173::-;12799:26;;;12776:4;12799:26;;;:13;:26;;;;;;:39;;;;12826:11;;;;12799:39;:::i;:::-;;;;;;;;;;;;;;:46;;-1:-1:-1;12679:173:6;;;;;:::o;9447:793::-;9591:26;;;9564:24;9591:26;;;:13;:26;;;;;;:33;;;;9618:5;;;;9591:33;:::i;:::-;;;;;;;;;;;;;;9642:14;;;;9591:33;;-1:-1:-1;9634:73:6;;;;-1:-1:-1;;;9634:73:6;;15069:2:25;9634:73:6;;;15051:21:25;;;15088:18;;;15081:30;15147:34;15127:18;;;15120:62;15199:18;;9634:73:6;14867:356:25;9634:73:6;9744:16;;-1:-1:-1;;;;;9744:16:6;9725:35;;:76;;;;;9787:2;:14;;;9774:8;;9764:19;;;;;;;:::i;:::-;;;;;;;;:37;9725:76;9717:119;;;;-1:-1:-1;;;9717:119:6;;16390:2:25;9717:119:6;;;16372:21:25;16429:2;16409:18;;;16402:30;16468:32;16448:18;;;16441:60;16518:18;;9717:119:6;16188:354:25;9717:119:6;9868:13;;-1:-1:-1;;;;;;9956:26:6;;;;-1:-1:-1;;9992:14:6;;:27;;;10045:25;;;;;9868:13;10045:25;;;;;;:32;;-1:-1:-1;;;9868:13:6;;;-1:-1:-1;;;;;9868:13:6;;10045:32;;10071:5;;;;10045:32;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;10088:77:6;;-1:-1:-1;;;;;10045:32:6;;-1:-1:-1;;;;;;10088:40:6;;;;;:77;;10129:11;;10142:5;;;;10045:32;;10156:8;;;;10088:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10180:53;10195:11;10208:5;;10215;10222:10;10180:53;;;;;;;;;;:::i;:::-;;;;;;;;9554:686;;;9447:793;;;;;:::o;6031:2275::-;2823:22;;;;;:38;:22;908:1;2823:38;2815:87;;;;-1:-1:-1;;;2815:87:6;;17887:2:25;2815:87:6;;;17869:21:25;17926:2;17906:18;;;17899:30;17965:34;17945:18;;;17938:62;-1:-1:-1;;;18016:18:25;;;18009:34;18060:19;;2815:87:6;17685:400:25;2815:87:6;2912:22;:33;;-1:-1:-1;;2912:33:6;;;;;6249:26:::1;::::0;::::1;-1:-1:-1::0;6249:26:6;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6276:5;;;;6249:33:::1;:::i;:::-;;;;;;;;;;;;;6222:60;;6377:12;:25;6390:11;6377:25;;;;;;;;;;;;;;;6403:5;;6377:32;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;6375:34;;6377:32:::1;::::0;6375:34:::1;::::0;-1:-1:-1;;;;;6375:34:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6375:34:6::1;;;;;-1:-1:-1::0;;;;;6365:44:6::1;:6;-1:-1:-1::0;;;;;6365:44:6::1;;6357:83;;;::::0;-1:-1:-1;;;6357:83:6;;18506:2:25;6357:83:6::1;::::0;::::1;18488:21:25::0;18545:2;18525:18;;;18518:30;18584:28;18564:18;;;18557:56;18630:18;;6357:83:6::1;18304:350:25::0;6357:83:6::1;6578:14;::::0;::::1;::::0;:28;6574:1726:::1;;6653:26;::::0;::::1;6622:28;6653:26:::0;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6680:5;;;;6653:33:::1;:::i;:::-;;;;;;;;;;;;;6622:64;;6700:27;6730:44;;;;;;;;6744:11;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6757:6;-1:-1:-1::0;;;;;6730:44:6::1;;;;;6765:8;;6730:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6730:44:6;;-1:-1:-1;6980:11:6;;6700:74;;-1:-1:-1;6980:15:6;6976:436:::1;;7051:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7051:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7051:17:6::1;-1:-1:-1::0;;;7051:17:6::1;-1:-1:-1::0;;;;;;7051:17:6;;;-1:-1:-1;;;;;7051:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7061:6;;7051:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;7146:6;7141:105;7162:11:::0;;:15:::1;::::0;7176:1:::1;::::0;7162:15:::1;:::i;:::-;7158:1;:19;7141:105;;;7220:4;7225:1;7220:7;;;;;;;;:::i;:::-;;;;;;;;;;;7206:4;7211:1;7215;7211:5;;;;:::i;:::-;7206:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21;;:11:::1;::::0;;::::1;;:21:::0;;-1:-1:-1;;;;;7206:21:6;;::::1;-1:-1:-1::0;;;;;;7206:21:6;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;7206:21:6;;;;-1:-1:-1;;;7206:21:6;;;::::1;-1:-1:-1::0;;;;;7206:21:6::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7206:21:6;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;:::i;:::-;;;;;7179:3;;;;;:::i;:::-;;;;7141:105;;;;7335:6;7325:4;7330:1;7325:7;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:16;;:7:::1;::::0;;::::1;;:16:::0;;;;::::1;::::0;-1:-1:-1;;;;;7325:16:6::1;-1:-1:-1::0;;;7325:16:6::1;-1:-1:-1::0;;;;;;7325:16:6;;;-1:-1:-1;;;;;7325:16:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:7;;:16:::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;;;;6976:436;;;7380:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7380:17:6;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7380:17:6::1;-1:-1:-1::0;;;7380:17:6::1;-1:-1:-1::0;;;;;;7380:17:6;;;-1:-1:-1;;;;;7380:17:6;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;7390:6;;7380:17;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;6976:436;6608:814;;6574:1726;;;7432:14;::::0;;;::::1;;;7428:872;;;7498:72;;;;;;;;7519:8;;:15;;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7537:11;-1:-1:-1::0;;;;;7498:72:6::1;;;;;7560:8;;7550:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7498:72;;;7462:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7489:5;;;;7462:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7462:108:6::1;-1:-1:-1::0;;;7462:108:6::1;-1:-1:-1::0;;;;;;7462:108:6;;;-1:-1:-1;;;;;7462:108:6;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;7654:9;;::::1;::::0;;7462:108:::1;7654:9:::0;;7589:75;;::::1;::::0;::::1;::::0;7603:11;;7616:5;;;;7623:11;;7636:6;;7644:8;;;;7462:33;7589:75:::1;:::i;:::-;;;;;;;;7752:14;:22:::0;;-1:-1:-1;;7752:22:6::1;::::0;;7428:872:::1;;;7809:95;::::0;-1:-1:-1;;;7809:95:6;;-1:-1:-1;;;;;7809:41:6;::::1;::::0;::::1;::::0;7856:9;;7809:95:::1;::::0;7867:11;;7880:5;;;;7887:6;;7895:8;;;;7809:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;7805:485;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:72;;;;;;;;8011:8;;:15;;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8029:11;-1:-1:-1::0;;;;;7990:72:6::1;;;;;8052:8;;8042:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7990:72;;;7954:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7981:5;;;;7954:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7954:108:6::1;-1:-1:-1::0;;;7954:108:6::1;-1:-1:-1::0;;;;;;7954:108:6;;;-1:-1:-1;;;;;7954:108:6;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;8085:72:::1;::::0;::::1;::::0;8099:11;;8112:5;;;;8119:11;;8132:6;;8140:8;;;;8150:6;;8085:72:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;8253:14:6::1;:22:::0;;-1:-1:-1;;8253:22:6::1;::::0;;7805:485:::1;-1:-1:-1::0;;2966:22:6;:37;;-1:-1:-1;;2966:37:6;;;;;-1:-1:-1;;;;;;;6031:2275:6:o;4013:2012::-;2593:19;;:35;:19;908:1;2593:35;2585:81;;;;-1:-1:-1;;;2585:81:6;;20136:2:25;2585:81:6;;;20118:21:25;20175:2;20155:18;;;20148:30;20214:34;20194:18;;;20187:62;-1:-1:-1;;;20265:18:25;;;20258:31;20306:19;;2585:81:6;19934:397:25;2585:81:6;2676:19;:30;;-1:-1:-1;;2676:30:6;950:1;2676:30;;;4239:12;;4255:2:::1;4239:18;4231:75;;;::::0;-1:-1:-1;;;4231:75:6;;20538:2:25;4231:75:6::1;::::0;::::1;20520:21:25::0;20577:2;20557:18;;;20550:30;20616:34;20596:18;;;20589:62;-1:-1:-1;;;20667:18:25;;;20660:42;20719:19;;4231:75:6::1;20336:408:25::0;4231:75:6::1;4420:2;4409:14:::0;::::1;4403:21:::0;-1:-1:-1;;;;;4465:25:6;;::::1;4344:15;4465:25:::0;;;::::1;::::0;;;;;;;::::1;4508:24:::0;4500:92:::1;;;::::0;-1:-1:-1;;;4500:92:6;;20951:2:25;4500:92:6::1;::::0;::::1;20933:21:25::0;20990:2;20970:18;;;20963:30;21029:34;21009:18;;;21002:62;21100:25;21080:18;;;21073:53;21143:19;;4500:92:6::1;20749:419:25::0;4500:92:6::1;4635:26;4688:1:::0;4664:14:::1;:21;:25;:65;;4709:20;4664:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:14;4664:65;4635:94;;4740:14;4760:95;4773:8;4783:10;4795:8;;4760:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;4805:34:6;::::1;::::0;::::1;4841:13:::0;4760:12:::1;:95::i;:::-;4739:116;;;4886:9;4873;:22;;4865:76;;;::::0;-1:-1:-1;;;4865:76:6;;21375:2:25;4865:76:6::1;::::0;::::1;21357:21:25::0;21414:2;21394:18;;;21387:30;21453:34;21433:18;;;21426:62;-1:-1:-1;;;21504:18:25;;;21497:39;21553:19;;4865:76:6::1;21173:405:25::0;4865:76:6::1;4969:23;::::0;::::1;4952:12;4969:23:::0;;;:13:::1;:23;::::0;;;;;;;4993:10:::1;4969:35:::0;;;;;;;4967:37;;4952:12;;4967:37:::1;::::0;-1:-1:-1;;;;;4967:37:6::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;-1:-1:-1::0;;;;;4967:37:6::1;;;;;4952:52;;5055:11;5081:9;5069;:21;;;;:::i;:::-;5055:35:::0;-1:-1:-1;5104:10:6;;5100:163:::1;;5131:12;5149:14;-1:-1:-1::0;;;;;5149:19:6::1;5176:6;5149:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5130:57;;;5209:7;5201:51;;;::::0;-1:-1:-1;;;5201:51:6;;21995:2:25;5201:51:6::1;::::0;::::1;21977:21:25::0;22034:2;22014:18;;;22007:30;22073:33;22053:18;;;22046:61;22124:18;;5201:51:6::1;21793:355:25::0;5201:51:6::1;5116:147;5100:163;5420:13;5435:17:::0;5454:29:::1;5487:40;5513:13;5487:25;:40::i;:::-;5417:110:::0;;-1:-1:-1;5417:110:6;-1:-1:-1;5417:110:6;-1:-1:-1;;5541:16:6;;5537:222:::1;;5574:12;5592:13;-1:-1:-1::0;;;;;5592:18:6::1;5618:12;5592:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:62;;;5654:7;5649:100;;5686:48;::::0;5721:12;;-1:-1:-1;;;;;5686:48:6;::::1;::::0;::::1;::::0;;;::::1;5649:100;5559:200;5537:222;5797:37;::::0;-1:-1:-1;;5814:10:6::1;22380:2:25::0;22376:15;;;22372:24;;5797:37:6::1;::::0;::::1;22360::25::0;22431:15;;;22427:24;22413:12;;;22406:46;5769:25:6::1;::::0;22468:12:25;;5797:37:6::1;;;;;;;;;;;;5769:65;;5874:20;5897:8;;5874:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5930:10;-1:-1:-1::0;;;;;5915:41:6::1;;5957:11;;;;;;;;;;;5970:12;5984:7;5993:5;6000:8;6010:7;5915:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2727:19:6;:34;;-1:-1:-1;;2727:34:6;908:1;2727:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4013:2012:6:o;13844:125::-;13925:37;;;;:20;;:37;;;;;:::i;:::-;;13844:125;:::o;8312:157::-;8433:22;;;8408:6;8433:22;;;:12;:22;;;;;;:29;;;;8456:5;;;;8433:29;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;8433:29:6;;-1:-1:-1;8312:157:6;;;;;:::o;918:238:3:-;1114:35;;;-1:-1:-1;;;1114:35:3;;;23376:51:25;23443:11;;;;23436:27;;;;1114:35:3;;;;;;;;;;23479:12:25;;1114:35:3;;;918:238::o;14960:1322:6:-;15192:4;15209:13;15224;15239:17;15262:41;15288:14;15262:25;:41::i;:::-;15208:95;;;;;;;15313:21;15395:6;:11;;15405:1;15395:11;15391:187;;;15430:32;;-1:-1:-1;;;;;15430:32:6;:48;-1:-1:-1;15430:48:6;15422:99;;;;-1:-1:-1;;;15422:99:6;;23704:2:25;15422:99:6;;;23686:21:25;23743:2;23723:18;;;23716:30;23782:34;23762:18;;;23755:62;-1:-1:-1;;;23833:18:25;;;23826:36;23879:19;;15422:99:6;23502:402:25;15422:99:6;15535:32;15555:12;15535:32;;:::i;:::-;;;15391:187;15714:24;;15655:19;;15714:35;;15741:8;;-1:-1:-1;;;15714:24:6;;-1:-1:-1;;;;;15714:24:6;:35;:::i;:::-;15677:16;:33;:73;;;-1:-1:-1;;;15677:33:6;;-1:-1:-1;;;;;15677:33:6;:73;:::i;:::-;15655:95;-1:-1:-1;15760:34:6;15655:95;15760:34;;:::i;:::-;15959:16;:30;15760:34;;-1:-1:-1;15922:14:6;;15993:6;;15940:49;;-1:-1:-1;;;;;15959:30:6;15760:34;15940:49;:::i;:::-;15939:60;;;;:::i;:::-;16178:16;:30;16148:27;;15922:77;;-1:-1:-1;16091:17:6;;16212:6;;-1:-1:-1;;;;;16178:30:6;;;;16112:63;;-1:-1:-1;;;16148:27:6;;;-1:-1:-1;;;;;16148:27:6;;-1:-1:-1;;;16112:33:6;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16111:107;;;;:::i;:::-;-1:-1:-1;;;;;16091:127:6;;-1:-1:-1;16248:27:6;16091:127;16248:12;:27;:::i;:::-;16236:39;;:9;:39;:::i;:::-;16229:46;14960:1322;-1:-1:-1;;;;;;;;;;;;;14960:1322:6:o;14658:296::-;14758:4;14778:9;14774:174;;;-1:-1:-1;14810:17:6;:24;14803:31;;14774:174;14902:26;;14932:5;;14874:24;14888:10;14874:11;:24;:::i;:::-;14873:55;;;;:::i;:::-;14872:65;;;;:::i;:::-;14865:72;;;;14154:498;14268:26;;;14237:28;14268:26;;;:13;:26;;;;;;:33;;;;14295:5;;;;14268:33;:::i;:::-;;;;;;;;;;;;;14237:64;;14407:239;14414:11;;:15;14407:239;;14481:11;;14445:28;;14476:4;;14481:15;;14495:1;;14481:15;:::i;:::-;14476:21;;;;;;;;:::i;:::-;;;;;;;;;;14445:52;;;;;;;;14476:21;;;;;;;14445:52;;-1:-1:-1;;;;;14445:52:6;;;;-1:-1:-1;;;;;;;;14445:52:6;;;;;;;;;;;;;;;;;;14476:21;14445:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14530:7;:18;;;-1:-1:-1;;;;;14511:48:6;;14560:11;14573:5;;14580:7;:13;;;14595:7;:15;;;14511:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14625:4;:10;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;14625:10:6;;;;;;;;;-1:-1:-1;;;;;;14625:10:6;;;;;;;;;;:::i;:::-;;;;;14431:215;14407:239;;2036:715:3;2117:13;2132:10;2144:18;2164:30;2214:14;:21;2239:2;2214:27;:57;;;;2269:2;2245:14;:21;:26;2214:57;2206:91;;;;-1:-1:-1;;;2206:91:3;;25773:2:25;2206:91:3;;;25755:21:25;25812:2;25792:18;;;25785:30;-1:-1:-1;;;25831:18:25;;;25824:51;25892:18;;2206:91:3;25571:345:25;2206:91:3;2366:1;2350:14;2346:22;2340:29;2330:39;;2417:2;2401:14;2397:23;2391:30;2382:39;;2448:6;:11;;2458:1;2448:11;:26;;;;2463:6;:11;;2473:1;2463:11;2448:26;2440:57;;;;-1:-1:-1;;;2440:57:3;;26123:2:25;2440:57:3;;;26105:21:25;26162:2;26142:18;;;26135:30;-1:-1:-1;;;26181:18:25;;;26174:48;26239:18;;2440:57:3;25921:342:25;2440:57:3;2523:1;2515:5;:9;2507:33;;;;-1:-1:-1;;;2507:33:3;;26470:2:25;2507:33:3;;;26452:21:25;26509:2;26489:18;;;26482:30;-1:-1:-1;;;26528:18:25;;;26521:41;26579:18;;2507:33:3;26268:335:25;2507:33:3;2555:6;:11;;2565:1;2555:11;2551:194;;;-1:-1:-1;;2652:2:3;2632:23;;2626:30;2717:2;2697:23;;2691:30;2551:194;2036:715;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;267:159:25;334:20;;394:6;383:18;;373:29;;363:57;;416:1;413;406:12;363:57;267:159;;;:::o;431:184::-;489:6;542:2;530:9;521:7;517:23;513:32;510:52;;;558:1;555;548:12;510:52;581:28;599:9;581:28;:::i;620:131::-;-1:-1:-1;;;;;695:31:25;;685:42;;675:70;;741:1;738;731:12;756:247;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;923:9;910:23;942:31;967:5;942:31;:::i;1201:347::-;1252:8;1262:6;1316:3;1309:4;1301:6;1297:17;1293:27;1283:55;;1334:1;1331;1324:12;1283:55;-1:-1:-1;1357:20:25;;-1:-1:-1;;;;;1389:30:25;;1386:50;;;1432:1;1429;1422:12;1386:50;1469:4;1461:6;1457:17;1445:29;;1521:3;1514:4;1505:6;1497;1493:19;1489:30;1486:39;1483:59;;;1538:1;1535;1528:12;1483:59;1201:347;;;;;:::o;1553:481::-;1631:6;1639;1647;1700:2;1688:9;1679:7;1675:23;1671:32;1668:52;;;1716:1;1713;1706:12;1668:52;1739:28;1757:9;1739:28;:::i;:::-;1729:38;;1818:2;1807:9;1803:18;1790:32;-1:-1:-1;;;;;1837:6:25;1834:30;1831:50;;;1877:1;1874;1867:12;1831:50;1916:58;1966:7;1957:6;1946:9;1942:22;1916:58;:::i;:::-;1553:481;;1993:8;;-1:-1:-1;1890:84:25;;-1:-1:-1;;;;1553:481:25:o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:718;2405:5;2458:3;2451:4;2443:6;2439:17;2435:27;2425:55;;2476:1;2473;2466:12;2425:55;2512:6;2499:20;-1:-1:-1;;;;;2575:2:25;2571;2568:10;2565:36;;;2581:18;;:::i;:::-;2656:2;2650:9;2624:2;2710:13;;-1:-1:-1;;2706:22:25;;;2730:2;2702:31;2698:40;2686:53;;;2754:18;;;2774:22;;;2751:46;2748:72;;;2800:18;;:::i;:::-;2840:10;2836:2;2829:22;2875:2;2867:6;2860:18;2921:3;2914:4;2909:2;2901:6;2897:15;2893:26;2890:35;2887:55;;;2938:1;2935;2928:12;2887:55;3002:2;2995:4;2987:6;2983:17;2976:4;2968:6;2964:17;2951:54;3049:1;3042:4;3037:2;3029:6;3025:15;3021:26;3014:37;3069:6;3060:15;;;;;;2363:718;;;;:::o;3086:460::-;3171:6;3179;3187;3240:2;3228:9;3219:7;3215:23;3211:32;3208:52;;;3256:1;3253;3246:12;3208:52;3279:28;3297:9;3279:28;:::i;:::-;3269:38;;3358:2;3347:9;3343:18;3330:32;-1:-1:-1;;;;;3377:6:25;3374:30;3371:50;;;3417:1;3414;3407:12;3371:50;3440:49;3481:7;3472:6;3461:9;3457:22;3440:49;:::i;:::-;3430:59;;;3536:2;3525:9;3521:18;3508:32;3498:42;;3086:460;;;;;:::o;3551:471::-;3592:3;3630:5;3624:12;3657:6;3652:3;3645:19;3682:1;3692:162;3706:6;3703:1;3700:13;3692:162;;;3768:4;3824:13;;;3820:22;;3814:29;3796:11;;;3792:20;;3785:59;3721:12;3692:162;;;3872:6;3869:1;3866:13;3863:87;;;3938:1;3931:4;3922:6;3917:3;3913:16;3909:27;3902:38;3863:87;-1:-1:-1;4004:2:25;3983:15;-1:-1:-1;;3979:29:25;3970:39;;;;4011:4;3966:50;;3551:471;-1:-1:-1;;3551:471:25:o;4027:408::-;-1:-1:-1;;;;;4228:32:25;;4210:51;;-1:-1:-1;;;;;4297:31:25;;4292:2;4277:18;;4270:59;4365:2;4360;4345:18;;4338:30;;;-1:-1:-1;;4385:44:25;;4410:18;;4402:6;4385:44;:::i;:::-;4377:52;4027:408;-1:-1:-1;;;;;4027:408:25:o;4440:248::-;4508:6;4516;4569:2;4557:9;4548:7;4544:23;4540:32;4537:52;;;4585:1;4582;4575:12;4537:52;-1:-1:-1;;4608:23:25;;;4678:2;4663:18;;;4650:32;;-1:-1:-1;4440:248:25:o;4693:217::-;4840:2;4829:9;4822:21;4803:4;4860:44;4900:2;4889:9;4885:18;4877:6;4860:44;:::i;4915:188::-;4983:20;;-1:-1:-1;;;;;5032:46:25;;5022:57;;5012:85;;5093:1;5090;5083:12;5108:171;5175:20;;-1:-1:-1;;;;;5224:30:25;;5214:41;;5204:69;;5269:1;5266;5259:12;5284:480;5377:6;5385;5393;5401;5409;5462:3;5450:9;5441:7;5437:23;5433:33;5430:53;;;5479:1;5476;5469:12;5430:53;5502:29;5521:9;5502:29;:::i;:::-;5492:39;;5550:38;5584:2;5573:9;5569:18;5550:38;:::i;:::-;5540:48;;5607:38;5641:2;5630:9;5626:18;5607:38;:::i;:::-;5597:48;;5664:37;5697:2;5686:9;5682:18;5664:37;:::i;:::-;5654:47;;5720:38;5753:3;5742:9;5738:19;5720:38;:::i;:::-;5710:48;;5284:480;;;;;;;;:::o;5769:917::-;5878:6;5886;5894;5902;5910;5963:3;5951:9;5942:7;5938:23;5934:33;5931:53;;;5980:1;5977;5970:12;5931:53;6003:28;6021:9;6003:28;:::i;:::-;5993:38;;6081:2;6070:9;6066:18;6053:32;6094:31;6119:5;6094:31;:::i;:::-;6144:5;-1:-1:-1;6200:2:25;6185:18;;6172:32;-1:-1:-1;;;;;6253:14:25;;;6250:34;;;6280:1;6277;6270:12;6250:34;6303:49;6344:7;6335:6;6324:9;6320:22;6303:49;:::i;:::-;6293:59;;6404:2;6393:9;6389:18;6376:32;6361:47;;6453:7;6446:15;6439:23;6430:7;6427:36;6417:64;;6477:1;6474;6467:12;6417:64;6500:7;;-1:-1:-1;6560:3:25;6545:19;;6532:33;;6577:16;;;6574:36;;;6606:1;6603;6596:12;6574:36;;6629:51;6672:7;6661:8;6650:9;6646:24;6629:51;:::i;:::-;6619:61;;;5769:917;;;;;;;;:::o;6899:392::-;6975:6;6983;7036:2;7024:9;7015:7;7011:23;7007:32;7004:52;;;7052:1;7049;7042:12;7004:52;7075:28;7093:9;7075:28;:::i;:::-;7065:38;;7154:2;7143:9;7139:18;7126:32;-1:-1:-1;;;;;7173:6:25;7170:30;7167:50;;;7213:1;7210;7203:12;7167:50;7236:49;7277:7;7268:6;7257:9;7253:22;7236:49;:::i;:::-;7226:59;;;6899:392;;;;;:::o;7669:319::-;7736:6;7744;7797:2;7785:9;7776:7;7772:23;7768:32;7765:52;;;7813:1;7810;7803:12;7765:52;7836:28;7854:9;7836:28;:::i;:::-;7826:38;;7914:2;7903:9;7899:18;7886:32;7927:31;7952:5;7927:31;:::i;:::-;7977:5;7967:15;;;7669:319;;;;;:::o;8979:789::-;9077:6;9085;9093;9101;9109;9162:2;9150:9;9141:7;9137:23;9133:32;9130:52;;;9178:1;9175;9168:12;9130:52;9201:28;9219:9;9201:28;:::i;:::-;9191:38;;9280:2;9269:9;9265:18;9252:32;-1:-1:-1;;;;;9344:2:25;9336:6;9333:14;9330:34;;;9360:1;9357;9350:12;9330:34;9399:58;9449:7;9440:6;9429:9;9425:22;9399:58;:::i;:::-;9476:8;;-1:-1:-1;9373:84:25;-1:-1:-1;9564:2:25;9549:18;;9536:32;;-1:-1:-1;9580:16:25;;;9577:36;;;9609:1;9606;9599:12;9577:36;;9648:60;9700:7;9689:8;9678:9;9674:24;9648:60;:::i;:::-;8979:789;;;;-1:-1:-1;8979:789:25;;-1:-1:-1;9727:8:25;;9622:86;8979:789;-1:-1:-1;;;8979:789:25:o;9773:180::-;9832:6;9885:2;9873:9;9864:7;9860:23;9856:32;9853:52;;;9901:1;9898;9891:12;9853:52;-1:-1:-1;9924:23:25;;9773:180;-1:-1:-1;9773:180:25:o;9958:388::-;10026:6;10034;10087:2;10075:9;10066:7;10062:23;10058:32;10055:52;;;10103:1;10100;10093:12;10055:52;10142:9;10129:23;10161:31;10186:5;10161:31;:::i;10351:1067::-;10475:6;10483;10491;10499;10507;10515;10523;10531;10584:3;10572:9;10563:7;10559:23;10555:33;10552:53;;;10601:1;10598;10591:12;10552:53;10624:28;10642:9;10624:28;:::i;:::-;10614:38;;10703:2;10692:9;10688:18;10675:32;-1:-1:-1;;;;;10767:2:25;10759:6;10756:14;10753:34;;;10783:1;10780;10773:12;10753:34;10822:58;10872:7;10863:6;10852:9;10848:22;10822:58;:::i;:::-;10899:8;;-1:-1:-1;10796:84:25;-1:-1:-1;10984:2:25;10969:18;;10956:32;;-1:-1:-1;10997:31:25;10956:32;10997:31;:::i;:::-;11047:5;11037:15;;11071:37;11104:2;11093:9;11089:18;11071:37;:::i;:::-;11061:47;;11155:3;11144:9;11140:19;11127:33;11117:43;;11213:3;11202:9;11198:19;11185:33;11169:49;;11243:2;11233:8;11230:16;11227:36;;;11259:1;11256;11249:12;11227:36;;11298:60;11350:7;11339:8;11328:9;11324:24;11298:60;:::i;:::-;10351:1067;;;;-1:-1:-1;10351:1067:25;;-1:-1:-1;10351:1067:25;;;;;;11377:8;-1:-1:-1;;;10351:1067:25:o;11423:1185::-;11563:6;11571;11579;11587;11595;11603;11611;11664:3;11652:9;11643:7;11639:23;11635:33;11632:53;;;11681:1;11678;11671:12;11632:53;11704:28;11722:9;11704:28;:::i;:::-;11694:38;;11783:2;11772:9;11768:18;11755:32;-1:-1:-1;;;;;11847:2:25;11839:6;11836:14;11833:34;;;11863:1;11860;11853:12;11833:34;11886:49;11927:7;11918:6;11907:9;11903:22;11886:49;:::i;:::-;11876:59;;11988:2;11977:9;11973:18;11960:32;11944:48;;12017:2;12007:8;12004:16;12001:36;;;12033:1;12030;12023:12;12001:36;12072:60;12124:7;12113:8;12102:9;12098:24;12072:60;:::i;:::-;12151:8;;-1:-1:-1;12046:86:25;-1:-1:-1;12236:2:25;12221:18;;12208:32;;-1:-1:-1;12249:31:25;12208:32;12249:31;:::i;:::-;12299:5;;-1:-1:-1;12356:3:25;12341:19;;12328:33;;12370;12328;12370;:::i;:::-;12422:7;;-1:-1:-1;12482:3:25;12467:19;;12454:33;;12499:16;;;12496:36;;;12528:1;12525;12518:12;12496:36;;12551:51;12594:7;12583:8;12572:9;12568:24;12551:51;:::i;:::-;12541:61;;;11423:1185;;;;;;;;;;:::o;12613:533::-;12706:6;12714;12722;12730;12783:3;12771:9;12762:7;12758:23;12754:33;12751:53;;;12800:1;12797;12790:12;12751:53;12823:28;12841:9;12823:28;:::i;:::-;12813:38;;12870:37;12903:2;12892:9;12888:18;12870:37;:::i;:::-;12860:47;;12954:2;12943:9;12939:18;12926:32;12916:42;;13009:2;12998:9;12994:18;12981:32;-1:-1:-1;;;;;13028:6:25;13025:30;13022:50;;;13068:1;13065;13058:12;13022:50;13091:49;13132:7;13123:6;13112:9;13108:22;13091:49;:::i;:::-;13081:59;;;12613:533;;;;;;;:::o;13151:460::-;13235:6;13243;13251;13259;13312:3;13300:9;13291:7;13287:23;13283:33;13280:53;;;13329:1;13326;13319:12;13280:53;13352:28;13370:9;13352:28;:::i;:::-;13342:38;;13399:37;13432:2;13421:9;13417:18;13399:37;:::i;:::-;13389:47;;13486:2;13475:9;13471:18;13458:32;13499:31;13524:5;13499:31;:::i;:::-;13151:460;;;;-1:-1:-1;13549:5:25;;13601:2;13586:18;13573:32;;-1:-1:-1;;13151:460:25:o;13616:320::-;13684:6;13737:2;13725:9;13716:7;13712:23;13708:32;13705:52;;;13753:1;13750;13743:12;13705:52;13793:9;13780:23;-1:-1:-1;;;;;13818:6:25;13815:30;13812:50;;;13858:1;13855;13848:12;13812:50;13881:49;13922:7;13913:6;13902:9;13898:22;13881:49;:::i;:::-;13871:59;13616:320;-1:-1:-1;;;;13616:320:25:o;13941:271::-;14124:6;14116;14111:3;14098:33;14080:3;14150:16;;14175:13;;;14150:16;13941:271;-1:-1:-1;13941:271:25:o;14217:380::-;14296:1;14292:12;;;;14339;;;14360:61;;14414:4;14406:6;14402:17;14392:27;;14360:61;14467:2;14459:6;14456:14;14436:18;14433:38;14430:161;;;14513:10;14508:3;14504:20;14501:1;14494:31;14548:4;14545:1;14538:15;14576:4;14573:1;14566:15;14430:161;;14217:380;;;:::o;14602:127::-;14663:10;14658:3;14654:20;14651:1;14644:31;14694:4;14691:1;14684:15;14718:4;14715:1;14708:15;14734:128;14774:3;14805:1;14801:6;14798:1;14795:13;14792:39;;;14811:18;;:::i;:::-;-1:-1:-1;14847:9:25;;14734:128::o;15586:266::-;15674:6;15669:3;15662:19;15726:6;15719:5;15712:4;15707:3;15703:14;15690:43;-1:-1:-1;15778:1:25;15753:16;;;15771:4;15749:27;;;15742:38;;;;15834:2;15813:15;;;-1:-1:-1;;15809:29:25;15800:39;;;15796:50;;15586:266::o;15857:326::-;16052:6;16044;16040:19;16029:9;16022:38;16096:2;16091;16080:9;16076:18;16069:30;16003:4;16116:61;16173:2;16162:9;16158:18;16150:6;16142;16116:61;:::i;16547:609::-;16824:6;16816;16812:19;16801:9;16794:38;16868:3;16863:2;16852:9;16848:18;16841:31;16775:4;16895:62;16952:3;16941:9;16937:19;16929:6;16921;16895:62;:::i;:::-;-1:-1:-1;;;;;16997:6:25;16993:31;16988:2;16977:9;16973:18;16966:59;17073:9;17065:6;17061:22;17056:2;17045:9;17041:18;17034:50;17101:49;17143:6;17135;17127;17101:49;:::i;:::-;17093:57;16547:609;-1:-1:-1;;;;;;;;;16547:609:25:o;17161:519::-;17410:6;17402;17398:19;17387:9;17380:38;17454:3;17449:2;17438:9;17434:18;17427:31;17361:4;17475:62;17532:3;17521:9;17517:19;17509:6;17501;17475:62;:::i;:::-;-1:-1:-1;;;;;17573:31:25;;;;17568:2;17553:18;;17546:59;-1:-1:-1;;;;;;17641:32:25;;;;17636:2;17621:18;;;17614:60;17467:70;17161:519;-1:-1:-1;;;17161:519:25:o;18090:209::-;18128:3;-1:-1:-1;;;;;18209:2:25;18202:5;18198:14;18236:2;18227:7;18224:15;18221:41;;;18242:18;;:::i;:::-;18291:1;18278:15;;18090:209;-1:-1:-1;;;18090:209:25:o;18659:125::-;18699:4;18727:1;18724;18721:8;18718:34;;;18732:18;;:::i;:::-;-1:-1:-1;18769:9:25;;18659:125::o;18789:127::-;18850:10;18845:3;18841:20;18838:1;18831:31;18881:4;18878:1;18871:15;18905:4;18902:1;18895:15;18921:135;18960:3;-1:-1:-1;;18981:17:25;;18978:43;;;19001:18;;:::i;:::-;-1:-1:-1;19048:1:25;19037:13;;18921:135::o;19061:868::-;19412:6;19404;19400:19;19389:9;19382:38;19456:3;19451:2;19440:9;19436:18;19429:31;19363:4;19483:62;19540:3;19529:9;19525:19;19517:6;19509;19483:62;:::i;:::-;-1:-1:-1;;;;;19581:32:25;;19576:2;19561:18;;19554:60;-1:-1:-1;;;;;19650:31:25;;19645:2;19630:18;;19623:59;19719:22;;;19713:3;19698:19;;19691:51;19765:49;19723:6;19799;19791;19765:49;:::i;:::-;19751:63;;19863:9;19855:6;19851:22;19845:3;19834:9;19830:19;19823:51;19891:32;19916:6;19908;19891:32;:::i;:::-;19883:40;19061:868;-1:-1:-1;;;;;;;;;;;19061:868:25:o;22491:725::-;22804:6;22796;22792:19;22781:9;22774:38;22848:3;22843:2;22832:9;22828:18;22821:31;22755:4;22875:45;22915:3;22904:9;22900:19;22892:6;22875:45;:::i;:::-;-1:-1:-1;;;;;22956:32:25;;22951:2;22936:18;;22929:60;-1:-1:-1;;;;;23025:31:25;;23020:2;23005:18;;22998:59;23088:3;23073:19;;23066:35;;;23138:22;;;22976:3;23117:19;;23110:51;23178:32;23142:6;23195;23178:32;:::i;23909:168::-;23949:7;24015:1;24011;24007:6;24003:14;24000:1;23997:21;23992:1;23985:9;23978:17;23974:45;23971:71;;;24022:18;;:::i;:::-;-1:-1:-1;24062:9:25;;23909:168::o;24082:127::-;24143:10;24138:3;24134:20;24131:1;24124:31;24174:4;24171:1;24164:15;24198:4;24195:1;24188:15;24214:120;24254:1;24280;24270:35;;24285:18;;:::i;:::-;-1:-1:-1;24319:9:25;;24214:120::o;24339:287::-;24379:7;-1:-1:-1;;;;;24472:2:25;24469:1;24465:10;24502:2;24499:1;24495:10;24558:3;24554:2;24550:12;24545:3;24542:21;24535:3;24528:11;24521:19;24517:47;24514:73;;;24567:18;;:::i;:::-;24607:13;;24339:287;-1:-1:-1;;;;24339:287:25:o;24631:216::-;24671:1;-1:-1:-1;;;;;24758:2:25;24755:1;24751:10;24780:3;24770:37;;24787:18;;:::i;:::-;24825:10;;24821:20;;;;;24631:216;-1:-1:-1;;24631:216:25:o;24852:582::-;25119:6;25111;25107:19;25096:9;25089:38;25163:3;25158:2;25147:9;25143:18;25136:31;25070:4;25190:62;25247:3;25236:9;25232:19;25224:6;25216;25190:62;:::i;:::-;-1:-1:-1;;;;;25292:6:25;25288:31;25283:2;25272:9;25268:18;25261:59;25368:9;25360:6;25356:22;25351:2;25340:9;25336:18;25329:50;25396:32;25421:6;25413;25396:32;:::i;:::-;25388:40;24852:582;-1:-1:-1;;;;;;;;24852:582:25:o;25439:127::-;25500:10;25495:3;25491:20;25488:1;25481:31;25531:4;25528:1;25521:15;25555:4;25552:1;25545:15"},"gasEstimates":{"creation":{"codeDepositCost":"2369200","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24445","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2353","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"2842","getReceiveLibraryAddress(address)":"414","getReceiveVersion(address)":"469","getSendLibraryAddress(address)":"437","getSendVersion(address)":"449","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2369","isSendingPayload()":"2357","lzEndpointLookup(address)":"2688","mockChainId()":"2446","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2389","oracleFee()":"2383","outboundNonce(uint16,address)":"2831","protocolFeeConfig()":"4464","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"4807","retryPayload(uint16,bytes,bytes)":"infinite","send(uint16,bytes,bytes,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setDefaultAdapterParams(bytes)":"infinite","setDestLzEndpoint(address,address)":"infinite","setOracleFee(uint256)":"22357","setProtocolFee(uint256,uint256)":"44537","setReceiveVersion(uint16)":"326","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"349","storedPayload(uint16,bytes)":"infinite"}},"methodIdentifiers":{"blockNextMsg()":"d23104f1","defaultAdapterParams()":"272bd384","estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getLengthOfQueue(uint16,bytes)":"7f6df8e6","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","inboundNonce(uint16,bytes)":"9924d33b","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","lzEndpointLookup(address)":"c81b383a","mockChainId()":"db14f305","msgsToDeliver(uint16,bytes,uint256)":"12a9ee6b","nextMsgBlocked()":"3e0dd83e","oracleFee()":"f9cd3ceb","outboundNonce(uint16,address)":"b2086499","protocolFeeConfig()":"07d3277f","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","relayerFeeConfig()":"907c5e7e","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setDefaultAdapterParams(bytes)":"fbba623b","setDestLzEndpoint(address,address)":"c08f15a1","setOracleFee(uint256)":"b6d9ef60","setProtocolFee(uint256,uint256)":"240de277","setReceiveVersion(uint16)":"10ddb137","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"2c365e25","setSendVersion(uint16)":"07e0db17","storedPayload(uint16,bytes)":"76a386dc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"}],\"name\":\"PayloadCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PayloadStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"UaForceResumeReceive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"ValueTransferFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockNextMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdapterParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getLengthOfQueue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lzEndpointLookup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"msgsToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextMsgBlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeBP\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerFeeConfig\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasPerByte\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"setDefaultAdapterParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpointAddr\",\"type\":\"address\"}],\"name\":\"setDestLzEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_oracleFee\",\"type\":\"uint256\"}],\"name\":\"setOracleFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nativeBP\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"_baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_gasPerByte\",\"type\":\"uint64\"}],\"name\":\"setRelayerPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"storedPayload\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"payloadLength\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/LZEndpointMock.sol\":\"LZMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n // @param _dstChainId - the destination chain identifier\\n // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n // @param _payload - a custom bytes payload to send to the destination contract\\n // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;\\n\\n // @notice used by the messaging library to publish verified payload\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source contract (as bytes) at the source chain\\n // @param _dstAddress - the address on destination chain\\n // @param _nonce - the unbound message ordering nonce\\n // @param _gasLimit - the gas limit for external contract execution\\n // @param _payload - verified payload to send to the destination contract\\n function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;\\n\\n // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n // @param _srcAddress - the source chain contract address\\n function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n // @param _dstChainId - the destination chain identifier\\n // @param _userApplication - the user app address on this EVM chain\\n // @param _payload - the custom message to send over LayerZero\\n // @param _payInZRO - if false, user app pays the protocol fee in native token\\n // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);\\n\\n // @notice get this Endpoint's immutable source identifier\\n function getChainId() external view returns (uint16);\\n\\n // @notice the interface to retry failed message on this Endpoint destination\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n // @param _payload - the payload to be retried\\n function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;\\n\\n // @notice query if any STORED payload (message blocking) at the endpoint.\\n // @param _srcChainId - the source chain identifier\\n // @param _srcAddress - the source chain contract address\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n // @notice query if the _libraryAddress is valid for sending msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the _libraryAddress is valid for receiving msgs.\\n // @param _userApplication - the user app address on this EVM chain\\n function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n // @notice query if the non-reentrancy guard for send() is on\\n // @return true if the guard is on. false otherwise\\n function isSendingPayload() external view returns (bool);\\n\\n // @notice query if the non-reentrancy guard for receive() is on\\n // @return true if the guard is on. false otherwise\\n function isReceivingPayload() external view returns (bool);\\n\\n // @notice get the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _userApplication - the contract address of the user application\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);\\n\\n // @notice get the send() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n // @notice get the lzReceive() LayerZero messaging library version\\n // @param _userApplication - the contract address of the user application\\n function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xe9617a9f6db351b6ac4c9d5b1097798af59ad7f813e370e8cf69bb44addd8548\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n // @param _srcChainId - the source endpoint identifier\\n // @param _srcAddress - the source sending contract address from the source chain\\n // @param _nonce - the ordered message nonce\\n // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0x909bf72002c91806f39a64172c12b4188219e8649deefbe8d862604d4f9d3faf\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n // @notice set the configuration of the LayerZero messaging library of the specified version\\n // @param _version - messaging library version\\n // @param _chainId - the chainId for the pending config change\\n // @param _configType - type of configuration. every messaging library has its own convention.\\n // @param _config - configuration in the bytes. can encode arbitrary content.\\n function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;\\n\\n // @notice set the send() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setSendVersion(uint16 _version) external;\\n\\n // @notice set the lzReceive() LayerZero messaging library version to _version\\n // @param _version - new messaging library version\\n function setReceiveVersion(uint16 _version) external;\\n\\n // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n // @param _srcChainId - the chainId of the source chain\\n // @param _srcAddress - the contract address of the source contract at the source chain\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xe3e50134e39aa3c0f916447d36367970c6e4df972d488b794227e0b052ce80d5\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/libraries/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n // LayerZero communication\\n struct CallParams {\\n address payable refundAddress;\\n address zroPaymentAddress;\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n\\n struct AirdropParams {\\n uint airdropAmount;\\n bytes32 airdropAddress;\\n }\\n\\n function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n } else {\\n adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n }\\n }\\n\\n // Build Adapter Params\\n function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n // txType 1\\n // bytes [2 32 ]\\n // fields [txType extraGas]\\n return abi.encodePacked(uint16(1), _uaGas);\\n }\\n\\n function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n // txType 2\\n // bytes [2 32 32 bytes[] ]\\n // fields [txType extraGas dstNativeAmt dstNativeAddress]\\n return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n }\\n\\n function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n gasLimit := mload(add(_adapterParams, 34))\\n }\\n }\\n\\n // Decode Adapter Params\\n function decodeAdapterParams(bytes memory _adapterParams) internal pure returns (uint16 txType, uint uaGas, uint airdropAmount, address payable airdropAddress) {\\n require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n assembly {\\n txType := mload(add(_adapterParams, 2))\\n uaGas := mload(add(_adapterParams, 34))\\n }\\n require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n require(uaGas > 0, \\\"Gas too low\\\");\\n\\n if (txType == 2) {\\n assembly {\\n airdropAmount := mload(add(_adapterParams, 66))\\n airdropAddress := mload(add(_adapterParams, 86))\\n }\\n }\\n }\\n\\n //---------------------------------------------------------------------------\\n // Address type handling\\n // TODO: testing\\n function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n require(bytes12(_bytes32Address) == bytes12(0), \\\"Invalid address\\\"); // first 12 bytes should be empty\\n return address(uint160(uint(_bytes32Address)));\\n }\\n\\n function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n return bytes32(uint(uint160(_address)));\\n }\\n}\\n\",\"keccak256\":\"0xd533c5cdbe4c71e65a74677c96da49601612ac6dbff4372a859239a5c5e0a1da\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n uint8 internal constant _NOT_ENTERED = 1;\\n uint8 internal constant _ENTERED = 2;\\n\\n mapping(address => address) public lzEndpointLookup;\\n\\n uint16 public mockChainId;\\n bool public nextMsgBlocked;\\n\\n // fee config\\n RelayerFeeConfig public relayerFeeConfig;\\n ProtocolFeeConfig public protocolFeeConfig;\\n uint public oracleFee;\\n bytes public defaultAdapterParams;\\n\\n // path = remote addrss + local address\\n // inboundNonce = [srcChainId][path].\\n mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n //todo: this is a hack\\n // outboundNonce = [dstChainId][srcAddress]\\n mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n // // outboundNonce = [dstChainId][path].\\n // mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n // storedPayload = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n // msgToDeliver = [srcChainId][path]\\n mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n // reentrancy guard\\n uint8 internal _send_entered_state = 1;\\n uint8 internal _receive_entered_state = 1;\\n\\n struct ProtocolFeeConfig {\\n uint zroFee;\\n uint nativeBP;\\n }\\n\\n struct RelayerFeeConfig {\\n uint128 dstPriceRatio; // 10^10\\n uint128 dstGasPriceInWei;\\n uint128 dstNativeAmtCap;\\n uint64 baseGas;\\n uint64 gasPerByte;\\n }\\n\\n struct StoredPayload {\\n uint64 payloadLength;\\n address dstAddress;\\n bytes32 payloadHash;\\n }\\n\\n struct QueuedPayload {\\n address dstAddress;\\n uint64 nonce;\\n bytes payload;\\n }\\n\\n modifier sendNonReentrant() {\\n require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n _send_entered_state = _ENTERED;\\n _;\\n _send_entered_state = _NOT_ENTERED;\\n }\\n\\n modifier receiveNonReentrant() {\\n require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n _receive_entered_state = _ENTERED;\\n _;\\n _receive_entered_state = _NOT_ENTERED;\\n }\\n\\n event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n constructor(uint16 _chainId) {\\n mockChainId = _chainId;\\n\\n // init config\\n relayerFeeConfig = RelayerFeeConfig({\\n dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n dstGasPriceInWei: 1e10,\\n dstNativeAmtCap: 1e19,\\n baseGas: 100,\\n gasPerByte: 1\\n });\\n protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n oracleFee = 1e16;\\n defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n }\\n\\n // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n function send(uint16 _chainId, bytes memory _path, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable override sendNonReentrant {\\n require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n address dstAddr;\\n assembly {\\n dstAddr := mload(add(_path, 20))\\n }\\n\\n address lzEndpoint = lzEndpointLookup[dstAddr];\\n require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n // not handle zro token\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n // refund if they send too much\\n uint amount = msg.value - nativeFee;\\n if (amount > 0) {\\n (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n require(success, \\\"LayerZeroMock: failed to refund\\\");\\n }\\n\\n // Mock the process of receiving msg on dst chain\\n // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n if (dstNativeAmt > 0) {\\n (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n if (!success) {\\n emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n }\\n }\\n\\n bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n bytes memory payload = _payload;\\n LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n }\\n\\n function receivePayload(uint16 _srcChainId, bytes calldata _path, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n // assert and increment the nonce. no message shuffling\\n require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n if (sp.payloadHash != bytes32(0)) {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n // shift all the msgs over so we can treat this like a fifo via array.pop()\\n if (msgs.length > 0) {\\n // extend the array\\n msgs.push(newMsg);\\n\\n // shift all the indexes up for pop()\\n for (uint i = 0; i < msgs.length - 1; i++) {\\n msgs[i + 1] = msgs[i];\\n }\\n\\n // put the newMsg at the bottom of the stack\\n msgs[0] = newMsg;\\n } else {\\n msgs.push(newMsg);\\n }\\n } else if (nextMsgBlocked) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n } else {\\n try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n // ensure the next msgs that go through are no longer blocked\\n nextMsgBlocked = false;\\n }\\n }\\n }\\n\\n function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n return inboundNonce[_chainID][_path];\\n }\\n\\n function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n return outboundNonce[_chainID][_srcAddress];\\n }\\n\\n function estimateFees(uint16 _dstChainId, address _userApplication, bytes memory _payload, bool _payInZRO, bytes memory _adapterParams) public view returns (uint nativeFee, uint zroFee) {\\n bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n // Relayer Fee\\n uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n // LayerZero Fee\\n uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n // return the sum of fees\\n nativeFee = nativeFee + relayerFee + oracleFee;\\n }\\n\\n function getChainId() external view override returns (uint16) {\\n return mockChainId;\\n }\\n\\n function retryPayload(uint16 _srcChainId, bytes calldata _path, bytes calldata _payload) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n address dstAddress = sp.dstAddress;\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n }\\n\\n function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n return sp.payloadHash != bytes32(0);\\n }\\n\\n function getSendLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function getReceiveLibraryAddress(address) external view override returns (address) {\\n return address(this);\\n }\\n\\n function isSendingPayload() external view override returns (bool) {\\n return _send_entered_state == _ENTERED;\\n }\\n\\n function isReceivingPayload() external view override returns (bool) {\\n return _receive_entered_state == _ENTERED;\\n }\\n\\n function getConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n address, /*_ua*/\\n uint /*_configType*/\\n ) external pure override returns (bytes memory) {\\n return \\\"\\\";\\n }\\n\\n function getSendVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function getReceiveVersion(\\n address /*_userApplication*/\\n ) external pure override returns (uint16) {\\n return 1;\\n }\\n\\n function setConfig(\\n uint16, /*_version*/\\n uint16, /*_chainId*/\\n uint, /*_configType*/\\n bytes memory /*_config*/\\n ) external override {}\\n\\n function setSendVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function setReceiveVersion(\\n uint16 /*version*/\\n ) external override {}\\n\\n function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n // revert if no messages are cached. safeguard malicious UA behaviour\\n require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n // empty the storedPayload\\n sp.payloadLength = 0;\\n sp.dstAddress = address(0);\\n sp.payloadHash = bytes32(0);\\n\\n emit UaForceResumeReceive(_srcChainId, _path);\\n\\n // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n _clearMsgQue(_srcChainId, _path);\\n }\\n\\n // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n return msgsToDeliver[_srcChainId][_srcAddress].length;\\n }\\n\\n // used to simulate messages received get stored as a payload\\n function blockNextMsg() external {\\n nextMsgBlocked = true;\\n }\\n\\n function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n lzEndpointLookup[destAddr] = lzEndpointAddr;\\n }\\n\\n function setRelayerPrice(uint128 _dstPriceRatio, uint128 _dstGasPriceInWei, uint128 _dstNativeAmtCap, uint64 _baseGas, uint64 _gasPerByte) external {\\n relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n relayerFeeConfig.baseGas = _baseGas;\\n relayerFeeConfig.gasPerByte = _gasPerByte;\\n }\\n\\n function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n protocolFeeConfig.zroFee = _zroFee;\\n protocolFeeConfig.nativeBP = _nativeBP;\\n }\\n\\n function setOracleFee(uint _oracleFee) external {\\n oracleFee = _oracleFee;\\n }\\n\\n function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n defaultAdapterParams = _adapterParams;\\n }\\n\\n // --------------------- Internal Functions ---------------------\\n // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n while (msgs.length > 0) {\\n QueuedPayload memory payload = msgs[msgs.length - 1];\\n ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n msgs.pop();\\n }\\n }\\n\\n function _getProtocolFees(bool _payInZro, uint _relayerFee, uint _oracleFee) internal view returns (uint) {\\n if (_payInZro) {\\n return protocolFeeConfig.zroFee;\\n } else {\\n return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n }\\n }\\n\\n function _getRelayerFee(\\n uint16, /* _dstChainId */\\n uint16, /* _outboundProofType */\\n address, /* _userApplication */\\n uint _payloadSize,\\n bytes memory _adapterParams\\n ) internal view returns (uint) {\\n (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n if (txType == 2) {\\n require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n totalRemoteToken += dstNativeAmt;\\n }\\n // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n totalRemoteToken += remoteGasTotal;\\n\\n // tokenConversionRate = dstPrice / localPrice\\n // basePrice = totalRemoteToken * tokenConversionRate\\n uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n return basePrice + _payloadSize * pricePerByte;\\n }\\n}\\n\",\"keccak256\":\"0xed3c937bc98dda9c5c4e05379b87629540e8fa628d0e62c4e3d01e25b47bbedf\",\"license\":\"BUSL-1.1\"},\"contracts/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"@layerzerolabs/solidity-examples/contracts/mocks/LZEndpointMock.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZMock is LZEndpointMock {\\n constructor(uint16 _chainId) LZEndpointMock(_chainId) {}\\n}\\n\",\"keccak256\":\"0x5b8e06ee92de392b6c452eadba78aa10b02ea4f0b57469119fc007a0b0b449d1\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1154,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"lzEndpointLookup","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"},{"astId":1156,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"mockChainId","offset":0,"slot":"1","type":"t_uint16"},{"astId":1158,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nextMsgBlocked","offset":2,"slot":"1","type":"t_bool"},{"astId":1161,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"relayerFeeConfig","offset":0,"slot":"2","type":"t_struct(RelayerFeeConfig)1217_storage"},{"astId":1164,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"protocolFeeConfig","offset":0,"slot":"4","type":"t_struct(ProtocolFeeConfig)1206_storage"},{"astId":1166,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"oracleFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":1168,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"defaultAdapterParams","offset":0,"slot":"7","type":"t_bytes_storage"},{"astId":1174,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"inboundNonce","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))"},{"astId":1180,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"outboundNonce","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_mapping(t_address,t_uint64))"},{"astId":1187,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"storedPayload","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))"},{"astId":1195,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"msgsToDeliver","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))"},{"astId":1198,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"_send_entered_state","offset":0,"slot":"12","type":"t_uint8"},{"astId":1201,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"_receive_entered_state","offset":1,"slot":"12","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage":{"base":"t_struct(QueuedPayload)1231_storage","encoding":"dynamic_array","label":"struct LZEndpointMock.QueuedPayload[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_uint64)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])","numberOfBytes":"32","value":"t_array(t_struct(QueuedPayload)1231_storage)dyn_storage"},"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.StoredPayload)","numberOfBytes":"32","value":"t_struct(StoredPayload)1224_storage"},"t_mapping(t_bytes_memory_ptr,t_uint64)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_uint16,t_mapping(t_address,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => uint64))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint64)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1231_storage)dyn_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1224_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => uint64))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_uint64)"},"t_struct(ProtocolFeeConfig)1206_storage":{"encoding":"inplace","label":"struct LZEndpointMock.ProtocolFeeConfig","members":[{"astId":1203,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"zroFee","offset":0,"slot":"0","type":"t_uint256"},{"astId":1205,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nativeBP","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_struct(QueuedPayload)1231_storage":{"encoding":"inplace","label":"struct LZEndpointMock.QueuedPayload","members":[{"astId":1226,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstAddress","offset":0,"slot":"0","type":"t_address"},{"astId":1228,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"nonce","offset":20,"slot":"0","type":"t_uint64"},{"astId":1230,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"numberOfBytes":"64"},"t_struct(RelayerFeeConfig)1217_storage":{"encoding":"inplace","label":"struct LZEndpointMock.RelayerFeeConfig","members":[{"astId":1208,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstPriceRatio","offset":0,"slot":"0","type":"t_uint128"},{"astId":1210,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstGasPriceInWei","offset":16,"slot":"0","type":"t_uint128"},{"astId":1212,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstNativeAmtCap","offset":0,"slot":"1","type":"t_uint128"},{"astId":1214,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"baseGas","offset":16,"slot":"1","type":"t_uint64"},{"astId":1216,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"gasPerByte","offset":24,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_struct(StoredPayload)1224_storage":{"encoding":"inplace","label":"struct LZEndpointMock.StoredPayload","members":[{"astId":1219,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payloadLength","offset":0,"slot":"0","type":"t_uint64"},{"astId":1221,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"dstAddress","offset":8,"slot":"0","type":"t_address"},{"astId":1223,"contract":"contracts/mocks/LZEndpointMock.sol:LZMock","label":"payloadHash","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/MockToken.sol":{"MockToken":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_3041":{"entryPoint":null,"id":3041,"parameterSlots":2,"returnSlots":0},"@_4630":{"entryPoint":null,"id":4630,"parameterSlots":2,"returnSlots":0},"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":140,"id":3400,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":526,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":709,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":815,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":854,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":504,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2757:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:25"},"nodeType":"YulFunctionCall","src":"66:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:25"},"nodeType":"YulFunctionCall","src":"56:31:25"},"nodeType":"YulExpressionStatement","src":"56:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:25","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:25"},"nodeType":"YulFunctionCall","src":"96:15:25"},"nodeType":"YulExpressionStatement","src":"96:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:25"},"nodeType":"YulFunctionCall","src":"120:15:25"},"nodeType":"YulExpressionStatement","src":"120:15:25"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:25"},{"body":{"nodeType":"YulBlock","src":"210:821:25","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:25"},"nodeType":"YulFunctionCall","src":"261:12:25"},"nodeType":"YulExpressionStatement","src":"261:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:25"},"nodeType":"YulFunctionCall","src":"234:17:25"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:25"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:25"},"nodeType":"YulFunctionCall","src":"230:27:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:25"},"nodeType":"YulFunctionCall","src":"223:35:25"},"nodeType":"YulIf","src":"220:55:25"},{"nodeType":"YulVariableDeclaration","src":"284:23:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:25"},"nodeType":"YulFunctionCall","src":"294:13:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:25"},"nodeType":"YulFunctionCall","src":"330:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:25"},"nodeType":"YulFunctionCall","src":"326:18:25"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:25"},"nodeType":"YulFunctionCall","src":"369:18:25"},"nodeType":"YulExpressionStatement","src":"369:18:25"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:25"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:25"},"nodeType":"YulFunctionCall","src":"356:10:25"},"nodeType":"YulIf","src":"353:36:25"},{"nodeType":"YulVariableDeclaration","src":"398:17:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:25"},"nodeType":"YulFunctionCall","src":"408:7:25"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:25","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:25"},"nodeType":"YulFunctionCall","src":"438:9:25"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:25","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:25"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:25"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:25","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:25"},"nodeType":"YulFunctionCall","src":"498:13:25"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:25"},"nodeType":"YulFunctionCall","src":"494:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:25","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:25"},"nodeType":"YulFunctionCall","src":"490:31:25"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:25"},"nodeType":"YulFunctionCall","src":"486:40:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:25"},"nodeType":"YulFunctionCall","src":"474:53:25"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:25","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:25"},"nodeType":"YulFunctionCall","src":"588:18:25"},"nodeType":"YulExpressionStatement","src":"588:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:25"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:25"},"nodeType":"YulFunctionCall","src":"542:18:25"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:25"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:25"},"nodeType":"YulFunctionCall","src":"562:22:25"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:25"},"nodeType":"YulFunctionCall","src":"539:46:25"},"nodeType":"YulIf","src":"536:72:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:25","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:25"},"nodeType":"YulFunctionCall","src":"617:22:25"},"nodeType":"YulExpressionStatement","src":"617:22:25"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:25"},"nodeType":"YulFunctionCall","src":"648:18:25"},"nodeType":"YulExpressionStatement","src":"648:18:25"},{"nodeType":"YulVariableDeclaration","src":"675:14:25","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:25","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:25"},"nodeType":"YulFunctionCall","src":"737:12:25"},"nodeType":"YulExpressionStatement","src":"737:12:25"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:25"},"nodeType":"YulFunctionCall","src":"708:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:25"},"nodeType":"YulFunctionCall","src":"704:24:25"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:25"},"nodeType":"YulFunctionCall","src":"701:33:25"},"nodeType":"YulIf","src":"698:53:25"},{"nodeType":"YulVariableDeclaration","src":"760:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:25"},"nodeType":"YulFunctionCall","src":"850:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:25"},"nodeType":"YulFunctionCall","src":"846:23:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:25"},"nodeType":"YulFunctionCall","src":"881:14:25"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:25"},"nodeType":"YulFunctionCall","src":"877:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:25"},"nodeType":"YulFunctionCall","src":"871:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:25"},"nodeType":"YulFunctionCall","src":"839:63:25"},"nodeType":"YulExpressionStatement","src":"839:63:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:25"},"nodeType":"YulFunctionCall","src":"787:9:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:25","statements":[{"nodeType":"YulAssignment","src":"799:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:25"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:25"},"nodeType":"YulFunctionCall","src":"804:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:25","statements":[]},"src":"779:133:25"},{"body":{"nodeType":"YulBlock","src":"942:59:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:25"},"nodeType":"YulFunctionCall","src":"967:15:25"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:25"},"nodeType":"YulFunctionCall","src":"963:24:25"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:25"},"nodeType":"YulFunctionCall","src":"956:35:25"},"nodeType":"YulExpressionStatement","src":"956:35:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:25"},"nodeType":"YulFunctionCall","src":"924:9:25"},"nodeType":"YulIf","src":"921:80:25"},{"nodeType":"YulAssignment","src":"1010:15:25","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:25"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:25"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:25","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:25","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:25","type":""}],"src":"146:885:25"},{"body":{"nodeType":"YulBlock","src":"1154:444:25","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:25"},"nodeType":"YulFunctionCall","src":"1202:12:25"},"nodeType":"YulExpressionStatement","src":"1202:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:25"},"nodeType":"YulFunctionCall","src":"1171:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:25"},"nodeType":"YulFunctionCall","src":"1167:32:25"},"nodeType":"YulIf","src":"1164:52:25"},{"nodeType":"YulVariableDeclaration","src":"1225:30:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:25"},"nodeType":"YulFunctionCall","src":"1239:16:25"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:25","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:25","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:25","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:25"},"nodeType":"YulFunctionCall","src":"1278:10:25"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:25"},"nodeType":"YulFunctionCall","src":"1274:18:25"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:25"},"nodeType":"YulFunctionCall","src":"1321:12:25"},"nodeType":"YulExpressionStatement","src":"1321:12:25"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:25"},"nodeType":"YulFunctionCall","src":"1304:14:25"},"nodeType":"YulIf","src":"1301:34:25"},{"nodeType":"YulAssignment","src":"1344:71:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:25"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:25"},"nodeType":"YulFunctionCall","src":"1383:22:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:25"},"nodeType":"YulFunctionCall","src":"1354:61:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:25"},"nodeType":"YulFunctionCall","src":"1446:18:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:25"},"nodeType":"YulFunctionCall","src":"1440:25:25"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:25"},"nodeType":"YulFunctionCall","src":"1496:12:25"},"nodeType":"YulExpressionStatement","src":"1496:12:25"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:25"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:25"},"nodeType":"YulFunctionCall","src":"1477:16:25"},"nodeType":"YulIf","src":"1474:36:25"},{"nodeType":"YulAssignment","src":"1519:73:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:25"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:25"},"nodeType":"YulFunctionCall","src":"1558:24:25"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:25"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:25"},"nodeType":"YulFunctionCall","src":"1529:63:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:25"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:25","type":""}],"src":"1036:562:25"},{"body":{"nodeType":"YulBlock","src":"1777:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1794:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1805:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1787:6:25"},"nodeType":"YulFunctionCall","src":"1787:21:25"},"nodeType":"YulExpressionStatement","src":"1787:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1828:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1824:3:25"},"nodeType":"YulFunctionCall","src":"1824:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1817:6:25"},"nodeType":"YulFunctionCall","src":"1817:30:25"},"nodeType":"YulExpressionStatement","src":"1817:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1867:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1878:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1863:3:25"},"nodeType":"YulFunctionCall","src":"1863:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"1883:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1856:6:25"},"nodeType":"YulFunctionCall","src":"1856:61:25"},"nodeType":"YulExpressionStatement","src":"1856:61:25"},{"nodeType":"YulAssignment","src":"1926:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1938:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1949:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1934:3:25"},"nodeType":"YulFunctionCall","src":"1934:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1926:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1754:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1768:4:25","type":""}],"src":"1603:355:25"},{"body":{"nodeType":"YulBlock","src":"2011:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2046:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2067:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2079:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2070:3:25"},"nodeType":"YulFunctionCall","src":"2070:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2060:6:25"},"nodeType":"YulFunctionCall","src":"2060:31:25"},"nodeType":"YulExpressionStatement","src":"2060:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2111:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2114:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2104:6:25"},"nodeType":"YulFunctionCall","src":"2104:15:25"},"nodeType":"YulExpressionStatement","src":"2104:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2139:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2142:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2132:6:25"},"nodeType":"YulFunctionCall","src":"2132:15:25"},"nodeType":"YulExpressionStatement","src":"2132:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2027:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2034:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2030:3:25"},"nodeType":"YulFunctionCall","src":"2030:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2024:2:25"},"nodeType":"YulFunctionCall","src":"2024:13:25"},"nodeType":"YulIf","src":"2021:136:25"},{"nodeType":"YulAssignment","src":"2166:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2177:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"2180:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2173:3:25"},"nodeType":"YulFunctionCall","src":"2173:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2166:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1994:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"1997:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2003:3:25","type":""}],"src":"1963:225:25"},{"body":{"nodeType":"YulBlock","src":"2294:76:25","statements":[{"nodeType":"YulAssignment","src":"2304:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2316:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2327:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2312:3:25"},"nodeType":"YulFunctionCall","src":"2312:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2304:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2346:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"2357:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2339:6:25"},"nodeType":"YulFunctionCall","src":"2339:25:25"},"nodeType":"YulExpressionStatement","src":"2339:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2263:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2274:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2285:4:25","type":""}],"src":"2193:177:25"},{"body":{"nodeType":"YulBlock","src":"2430:325:25","statements":[{"nodeType":"YulAssignment","src":"2440:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2454:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2457:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2450:3:25"},"nodeType":"YulFunctionCall","src":"2450:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2440:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2471:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2501:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2507:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2497:3:25"},"nodeType":"YulFunctionCall","src":"2497:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2475:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2548:31:25","statements":[{"nodeType":"YulAssignment","src":"2550:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2564:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2572:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2560:3:25"},"nodeType":"YulFunctionCall","src":"2560:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2550:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2528:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2521:6:25"},"nodeType":"YulFunctionCall","src":"2521:26:25"},"nodeType":"YulIf","src":"2518:61:25"},{"body":{"nodeType":"YulBlock","src":"2638:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2659:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2666:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2671:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2662:3:25"},"nodeType":"YulFunctionCall","src":"2662:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2652:6:25"},"nodeType":"YulFunctionCall","src":"2652:31:25"},"nodeType":"YulExpressionStatement","src":"2652:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2703:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2706:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2696:6:25"},"nodeType":"YulFunctionCall","src":"2696:15:25"},"nodeType":"YulExpressionStatement","src":"2696:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2731:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2734:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2724:6:25"},"nodeType":"YulFunctionCall","src":"2724:15:25"},"nodeType":"YulExpressionStatement","src":"2724:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2594:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2617:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2625:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2614:2:25"},"nodeType":"YulFunctionCall","src":"2614:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2591:2:25"},"nodeType":"YulFunctionCall","src":"2591:38:25"},"nodeType":"YulIf","src":"2588:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2410:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2419:6:25","type":""}],"src":"2375:380:25"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), 0)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000ced38038062000ced8339810160408190526200003491620002c5565b8151829082906200004d90600390602085019062000152565b5080516200006390600490602084019062000152565b50505062000084336b033b2e3c9fd0803ce80000006200008c60201b60201c565b505062000393565b6001600160a01b038216620000e75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620000fb91906200032f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620001609062000356565b90600052602060002090601f016020900481019282620001845760008555620001cf565b82601f106200019f57805160ff1916838001178555620001cf565b82800160010185558215620001cf579182015b82811115620001cf578251825591602001919060010190620001b2565b50620001dd929150620001e1565b5090565b5b80821115620001dd5760008155600101620001e2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022057600080fd5b81516001600160401b03808211156200023d576200023d620001f8565b604051601f8301601f19908116603f01168101908282118183101715620002685762000268620001f8565b816040528381526020925086838588010111156200028557600080fd5b600091505b83821015620002a957858201830151818301840152908201906200028a565b83821115620002bb5760008385830101525b9695505050505050565b60008060408385031215620002d957600080fd5b82516001600160401b0380821115620002f157600080fd5b620002ff868387016200020e565b935060208501519150808211156200031657600080fd5b5062000325858286016200020e565b9150509250929050565b600082198211156200035157634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200036b57607f821691505b602082108114156200038d57634e487b7160e01b600052602260045260246000fd5b50919050565b61094a80620003a36000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220d350a2881b88d96973635c8ba61f870672c14e6174c25fb0f313da0f13e2dad564736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xCED CODESIZE SUB DUP1 PUSH3 0xCED DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x2C5 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH3 0x4D SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x152 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x63 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x152 JUMP JUMPDEST POP POP POP PUSH3 0x84 CALLER PUSH12 0x33B2E3C9FD0803CE8000000 PUSH3 0x8C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH3 0x393 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0xE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0xFB SWAP2 SWAP1 PUSH3 0x32F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x160 SWAP1 PUSH3 0x356 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x184 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1CF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x19F JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1CF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1CF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1CF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1B2 JUMP JUMPDEST POP PUSH3 0x1DD SWAP3 SWAP2 POP PUSH3 0x1E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x1DD JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x23D JUMPI PUSH3 0x23D PUSH3 0x1F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x268 JUMPI PUSH3 0x268 PUSH3 0x1F8 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x2A9 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x28A JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x2BB JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x2D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2FF DUP7 DUP4 DUP8 ADD PUSH3 0x20E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x325 DUP6 DUP3 DUP7 ADD PUSH3 0x20E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x351 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x36B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x38D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x94A DUP1 PUSH3 0x3A3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 POP LOG2 DUP9 SHL DUP9 0xD9 PUSH10 0x73635C8BA61F870672C1 0x4E PUSH2 0x74C2 0x5F 0xB0 RETURN SGT 0xDA 0xF SGT 0xE2 0xDA 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"133:332:23:-:0;;;189:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:13:10;;251:5:23;;258:7;;2042:13:10;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2065:17:10;;;;:7;;:17;;;;;:::i;:::-;;1976:113;;277:41:23::1;283:10;295:22;277:5;;;:41;;:::i;:::-;189:162:::0;;133:332;;8567:535:10;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;1805:2:25;8642:65:10;;;1787:21:25;1844:2;1824:18;;;1817:30;1883:33;1863:18;;;1856:61;1934:18;;8642:65:10;;;;;;;;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;2339:25:25;;;8999:37:10;;2312:18:25;8999:37:10;;;;;;;8567:535;;:::o;133:332:23:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;133:332:23;;;-1:-1:-1;133:332:23;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:25;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:25;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:25;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:25:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:25;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1963:225::-;2003:3;2034:1;2030:6;2027:1;2024:13;2021:136;;;2079:10;2074:3;2070:20;2067:1;2060:31;2114:4;2111:1;2104:15;2142:4;2139:1;2132:15;2021:136;-1:-1:-1;2173:9:25;;1963:225::o;2375:380::-;2454:1;2450:12;;;;2497;;;2518:61;;2572:4;2564:6;2560:17;2550:27;;2518:61;2625:2;2617:6;2614:14;2594:18;2591:38;2588:161;;;2671:10;2666:3;2662:20;2659:1;2652:31;2706:4;2703:1;2696:15;2734:4;2731:1;2724:15;2588:161;;2375:380;;;:::o;:::-;133:332:23;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3582":{"entryPoint":null,"id":3582,"parameterSlots":3,"returnSlots":0},"@_approve_3517":{"entryPoint":902,"id":3517,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_3571":{"entryPoint":null,"id":3571,"parameterSlots":3,"returnSlots":0},"@_mint_3400":{"entryPoint":1736,"id":3400,"parameterSlots":2,"returnSlots":0},"@_msgSender_3698":{"entryPoint":null,"id":3698,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_3560":{"entryPoint":1194,"id":3560,"parameterSlots":3,"returnSlots":0},"@_transfer_3343":{"entryPoint":1316,"id":3343,"parameterSlots":3,"returnSlots":0},"@allowance_3138":{"entryPoint":859,"id":3138,"parameterSlots":2,"returnSlots":1},"@approve_3163":{"entryPoint":594,"id":3163,"parameterSlots":2,"returnSlots":1},"@balanceOf_3095":{"entryPoint":null,"id":3095,"parameterSlots":1,"returnSlots":1},"@decimals_3071":{"entryPoint":null,"id":3071,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_3266":{"entryPoint":717,"id":3266,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_3225":{"entryPoint":654,"id":3225,"parameterSlots":2,"returnSlots":1},"@mint_4643":{"entryPoint":688,"id":4643,"parameterSlots":2,"returnSlots":0},"@name_3051":{"entryPoint":448,"id":3051,"parameterSlots":0,"returnSlots":1},"@symbol_3061":{"entryPoint":702,"id":3061,"parameterSlots":0,"returnSlots":1},"@totalSupply_3081":{"entryPoint":null,"id":3081,"parameterSlots":0,"returnSlots":1},"@transferFrom_3196":{"entryPoint":618,"id":3196,"parameterSlots":3,"returnSlots":1},"@transfer_3120":{"entryPoint":845,"id":3120,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2012,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2176,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2082,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2040,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1927,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2286,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2227,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6166:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:476:25","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:25","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:25","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:25","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:25"},"nodeType":"YulFunctionCall","src":"166:21:25"},"nodeType":"YulExpressionStatement","src":"166:21:25"},{"nodeType":"YulVariableDeclaration","src":"196:27:25","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:25"},"nodeType":"YulFunctionCall","src":"210:13:25"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:25","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:25"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:18:25"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:25"},"nodeType":"YulFunctionCall","src":"232:34:25"},"nodeType":"YulExpressionStatement","src":"232:34:25"},{"nodeType":"YulVariableDeclaration","src":"275:10:25","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:25","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:25"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:25"},"nodeType":"YulFunctionCall","src":"369:17:25"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:25"},"nodeType":"YulFunctionCall","src":"365:26:25"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:25"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:25"},"nodeType":"YulFunctionCall","src":"403:14:25"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:25"},"nodeType":"YulFunctionCall","src":"399:23:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:25"},"nodeType":"YulFunctionCall","src":"393:30:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:25"},"nodeType":"YulFunctionCall","src":"358:66:25"},"nodeType":"YulExpressionStatement","src":"358:66:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:25"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:25"},"nodeType":"YulFunctionCall","src":"302:13:25"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:25","statements":[{"nodeType":"YulAssignment","src":"318:15:25","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:25"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:25"},"nodeType":"YulFunctionCall","src":"323:10:25"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:25"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:25","statements":[]},"src":"294:140:25"},{"body":{"nodeType":"YulBlock","src":"468:66:25","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:25"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:25"},"nodeType":"YulFunctionCall","src":"493:22:25"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:25"},"nodeType":"YulFunctionCall","src":"489:31:25"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:25","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:25"},"nodeType":"YulFunctionCall","src":"482:42:25"},"nodeType":"YulExpressionStatement","src":"482:42:25"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:25"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:25"},"nodeType":"YulFunctionCall","src":"446:13:25"},"nodeType":"YulIf","src":"443:91:25"},{"nodeType":"YulAssignment","src":"543:62:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:25"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:25","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:25"},"nodeType":"YulFunctionCall","src":"574:15:25"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"595:2:25","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"591:3:25"},"nodeType":"YulFunctionCall","src":"591:7:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:25"},"nodeType":"YulFunctionCall","src":"570:29:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:25"},"nodeType":"YulFunctionCall","src":"555:45:25"},{"kind":"number","nodeType":"YulLiteral","src":"602:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:25"},"nodeType":"YulFunctionCall","src":"551:54:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:25"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:25","type":""}],"src":"14:597:25"},{"body":{"nodeType":"YulBlock","src":"665:124:25","statements":[{"nodeType":"YulAssignment","src":"675:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"697:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"684:12:25"},"nodeType":"YulFunctionCall","src":"684:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"675:5:25"}]},{"body":{"nodeType":"YulBlock","src":"767:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"776:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"779:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"769:6:25"},"nodeType":"YulFunctionCall","src":"769:12:25"},"nodeType":"YulExpressionStatement","src":"769:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"726:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"737:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"757:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"748:3:25"},"nodeType":"YulFunctionCall","src":"748:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"761:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"744:3:25"},"nodeType":"YulFunctionCall","src":"744:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"733:3:25"},"nodeType":"YulFunctionCall","src":"733:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"723:2:25"},"nodeType":"YulFunctionCall","src":"723:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"716:6:25"},"nodeType":"YulFunctionCall","src":"716:50:25"},"nodeType":"YulIf","src":"713:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"644:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"655:5:25","type":""}],"src":"616:173:25"},{"body":{"nodeType":"YulBlock","src":"881:167:25","statements":[{"body":{"nodeType":"YulBlock","src":"927:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:25"},"nodeType":"YulFunctionCall","src":"929:12:25"},"nodeType":"YulExpressionStatement","src":"929:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"902:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"911:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:25"},"nodeType":"YulFunctionCall","src":"898:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"923:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"894:3:25"},"nodeType":"YulFunctionCall","src":"894:32:25"},"nodeType":"YulIf","src":"891:52:25"},{"nodeType":"YulAssignment","src":"952:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"981:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"962:18:25"},"nodeType":"YulFunctionCall","src":"962:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"952:6:25"}]},{"nodeType":"YulAssignment","src":"1000:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1027:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1038:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:25"},"nodeType":"YulFunctionCall","src":"1023:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1010:12:25"},"nodeType":"YulFunctionCall","src":"1010:32:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1000:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"839:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"850:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"862:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"870:6:25","type":""}],"src":"794:254:25"},{"body":{"nodeType":"YulBlock","src":"1148:92:25","statements":[{"nodeType":"YulAssignment","src":"1158:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1170:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1181:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1166:3:25"},"nodeType":"YulFunctionCall","src":"1166:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1158:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:25"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1225:6:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1218:6:25"},"nodeType":"YulFunctionCall","src":"1218:14:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1211:6:25"},"nodeType":"YulFunctionCall","src":"1211:22:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1193:6:25"},"nodeType":"YulFunctionCall","src":"1193:41:25"},"nodeType":"YulExpressionStatement","src":"1193:41:25"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1117:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1128:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1139:4:25","type":""}],"src":"1053:187:25"},{"body":{"nodeType":"YulBlock","src":"1346:76:25","statements":[{"nodeType":"YulAssignment","src":"1356:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1379:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:25"},"nodeType":"YulFunctionCall","src":"1364:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1356:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1398:9:25"},{"name":"value0","nodeType":"YulIdentifier","src":"1409:6:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1391:6:25"},"nodeType":"YulFunctionCall","src":"1391:25:25"},"nodeType":"YulExpressionStatement","src":"1391:25:25"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1315:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1326:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1337:4:25","type":""}],"src":"1245:177:25"},{"body":{"nodeType":"YulBlock","src":"1531:224:25","statements":[{"body":{"nodeType":"YulBlock","src":"1577:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1579:6:25"},"nodeType":"YulFunctionCall","src":"1579:12:25"},"nodeType":"YulExpressionStatement","src":"1579:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1552:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1561:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:25"},"nodeType":"YulFunctionCall","src":"1548:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1573:2:25","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1544:3:25"},"nodeType":"YulFunctionCall","src":"1544:32:25"},"nodeType":"YulIf","src":"1541:52:25"},{"nodeType":"YulAssignment","src":"1602:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1612:18:25"},"nodeType":"YulFunctionCall","src":"1612:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1602:6:25"}]},{"nodeType":"YulAssignment","src":"1650:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1683:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1694:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:25"},"nodeType":"YulFunctionCall","src":"1679:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1660:18:25"},"nodeType":"YulFunctionCall","src":"1660:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1650:6:25"}]},{"nodeType":"YulAssignment","src":"1707:42:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1745:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:25"},"nodeType":"YulFunctionCall","src":"1730:18:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1717:12:25"},"nodeType":"YulFunctionCall","src":"1717:32:25"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1707:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1481:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1492:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1504:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1512:6:25","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1520:6:25","type":""}],"src":"1427:328:25"},{"body":{"nodeType":"YulBlock","src":"1857:87:25","statements":[{"nodeType":"YulAssignment","src":"1867:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1879:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1890:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1875:3:25"},"nodeType":"YulFunctionCall","src":"1875:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1867:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1924:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"1932:4:25","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1920:3:25"},"nodeType":"YulFunctionCall","src":"1920:17:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1902:6:25"},"nodeType":"YulFunctionCall","src":"1902:36:25"},"nodeType":"YulExpressionStatement","src":"1902:36:25"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1826:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1837:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1848:4:25","type":""}],"src":"1760:184:25"},{"body":{"nodeType":"YulBlock","src":"2019:116:25","statements":[{"body":{"nodeType":"YulBlock","src":"2065:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2077:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2067:6:25"},"nodeType":"YulFunctionCall","src":"2067:12:25"},"nodeType":"YulExpressionStatement","src":"2067:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2040:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2036:3:25"},"nodeType":"YulFunctionCall","src":"2036:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2032:3:25"},"nodeType":"YulFunctionCall","src":"2032:32:25"},"nodeType":"YulIf","src":"2029:52:25"},{"nodeType":"YulAssignment","src":"2090:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2100:18:25"},"nodeType":"YulFunctionCall","src":"2100:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2090:6:25"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1985:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1996:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2008:6:25","type":""}],"src":"1949:186:25"},{"body":{"nodeType":"YulBlock","src":"2227:173:25","statements":[{"body":{"nodeType":"YulBlock","src":"2273:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2282:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2285:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2275:6:25"},"nodeType":"YulFunctionCall","src":"2275:12:25"},"nodeType":"YulExpressionStatement","src":"2275:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2248:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"2257:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2244:3:25"},"nodeType":"YulFunctionCall","src":"2244:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2240:3:25"},"nodeType":"YulFunctionCall","src":"2240:32:25"},"nodeType":"YulIf","src":"2237:52:25"},{"nodeType":"YulAssignment","src":"2298:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2308:18:25"},"nodeType":"YulFunctionCall","src":"2308:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2298:6:25"}]},{"nodeType":"YulAssignment","src":"2346:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2379:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:25"},"nodeType":"YulFunctionCall","src":"2375:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2356:18:25"},"nodeType":"YulFunctionCall","src":"2356:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2346:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2185:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2196:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2208:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2216:6:25","type":""}],"src":"2140:260:25"},{"body":{"nodeType":"YulBlock","src":"2460:325:25","statements":[{"nodeType":"YulAssignment","src":"2470:22:25","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2484:1:25","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2487:4:25"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2480:3:25"},"nodeType":"YulFunctionCall","src":"2480:12:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2470:6:25"}]},{"nodeType":"YulVariableDeclaration","src":"2501:38:25","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:25"},{"kind":"number","nodeType":"YulLiteral","src":"2537:1:25","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:25"},"nodeType":"YulFunctionCall","src":"2527:12:25"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2505:18:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"2578:31:25","statements":[{"nodeType":"YulAssignment","src":"2580:27:25","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2594:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:25","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2590:3:25"},"nodeType":"YulFunctionCall","src":"2590:17:25"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2580:6:25"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2558:18:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2551:6:25"},"nodeType":"YulFunctionCall","src":"2551:26:25"},"nodeType":"YulIf","src":"2548:61:25"},{"body":{"nodeType":"YulBlock","src":"2668:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2696:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2701:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2692:3:25"},"nodeType":"YulFunctionCall","src":"2692:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2682:6:25"},"nodeType":"YulFunctionCall","src":"2682:31:25"},"nodeType":"YulExpressionStatement","src":"2682:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2733:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:25","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2726:6:25"},"nodeType":"YulFunctionCall","src":"2726:15:25"},"nodeType":"YulExpressionStatement","src":"2726:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2761:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2764:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2754:6:25"},"nodeType":"YulFunctionCall","src":"2754:15:25"},"nodeType":"YulExpressionStatement","src":"2754:15:25"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2624:18:25"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2647:6:25"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:25","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2644:2:25"},"nodeType":"YulFunctionCall","src":"2644:14:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2621:2:25"},"nodeType":"YulFunctionCall","src":"2621:38:25"},"nodeType":"YulIf","src":"2618:161:25"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2440:4:25","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2449:6:25","type":""}],"src":"2405:380:25"},{"body":{"nodeType":"YulBlock","src":"2838:177:25","statements":[{"body":{"nodeType":"YulBlock","src":"2873:111:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2894:1:25","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2901:3:25","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2906:10:25","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2897:3:25"},"nodeType":"YulFunctionCall","src":"2897:20:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2887:6:25"},"nodeType":"YulFunctionCall","src":"2887:31:25"},"nodeType":"YulExpressionStatement","src":"2887:31:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:25","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2941:4:25","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2931:6:25"},"nodeType":"YulFunctionCall","src":"2931:15:25"},"nodeType":"YulExpressionStatement","src":"2931:15:25"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2966:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2969:4:25","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2959:6:25"},"nodeType":"YulFunctionCall","src":"2959:15:25"},"nodeType":"YulExpressionStatement","src":"2959:15:25"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2854:1:25"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2861:1:25"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2857:3:25"},"nodeType":"YulFunctionCall","src":"2857:6:25"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2851:2:25"},"nodeType":"YulFunctionCall","src":"2851:13:25"},"nodeType":"YulIf","src":"2848:136:25"},{"nodeType":"YulAssignment","src":"2993:16:25","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3004:1:25"},{"name":"y","nodeType":"YulIdentifier","src":"3007:1:25"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3000:3:25"},"nodeType":"YulFunctionCall","src":"3000:9:25"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2993:3:25"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2821:1:25","type":""},{"name":"y","nodeType":"YulTypedName","src":"2824:1:25","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2830:3:25","type":""}],"src":"2790:225:25"},{"body":{"nodeType":"YulBlock","src":"3194:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3211:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3204:6:25"},"nodeType":"YulFunctionCall","src":"3204:21:25"},"nodeType":"YulExpressionStatement","src":"3204:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3245:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:25"},"nodeType":"YulFunctionCall","src":"3241:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:25"},"nodeType":"YulFunctionCall","src":"3234:30:25"},"nodeType":"YulExpressionStatement","src":"3234:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3284:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3295:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3280:3:25"},"nodeType":"YulFunctionCall","src":"3280:18:25"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3300:34:25","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3273:6:25"},"nodeType":"YulFunctionCall","src":"3273:62:25"},"nodeType":"YulExpressionStatement","src":"3273:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3366:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3351:3:25"},"nodeType":"YulFunctionCall","src":"3351:18:25"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3371:7:25","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3344:6:25"},"nodeType":"YulFunctionCall","src":"3344:35:25"},"nodeType":"YulExpressionStatement","src":"3344:35:25"},{"nodeType":"YulAssignment","src":"3388:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3411:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3396:3:25"},"nodeType":"YulFunctionCall","src":"3396:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3388:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3171:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3185:4:25","type":""}],"src":"3020:401:25"},{"body":{"nodeType":"YulBlock","src":"3600:226:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:25"},"nodeType":"YulFunctionCall","src":"3610:21:25"},"nodeType":"YulExpressionStatement","src":"3610:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:25"},"nodeType":"YulFunctionCall","src":"3647:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:25","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:25"},"nodeType":"YulFunctionCall","src":"3640:30:25"},"nodeType":"YulExpressionStatement","src":"3640:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3690:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:25"},"nodeType":"YulFunctionCall","src":"3686:18:25"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3706:34:25","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3679:6:25"},"nodeType":"YulFunctionCall","src":"3679:62:25"},"nodeType":"YulExpressionStatement","src":"3679:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:25"},"nodeType":"YulFunctionCall","src":"3757:18:25"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3777:6:25","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:25"},"nodeType":"YulFunctionCall","src":"3750:34:25"},"nodeType":"YulExpressionStatement","src":"3750:34:25"},{"nodeType":"YulAssignment","src":"3793:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"3816:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3801:3:25"},"nodeType":"YulFunctionCall","src":"3801:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3793:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3577:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3591:4:25","type":""}],"src":"3426:400:25"},{"body":{"nodeType":"YulBlock","src":"4005:224:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4022:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4033:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4015:6:25"},"nodeType":"YulFunctionCall","src":"4015:21:25"},"nodeType":"YulExpressionStatement","src":"4015:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4056:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4067:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4052:3:25"},"nodeType":"YulFunctionCall","src":"4052:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4072:2:25","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4045:6:25"},"nodeType":"YulFunctionCall","src":"4045:30:25"},"nodeType":"YulExpressionStatement","src":"4045:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4106:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4091:3:25"},"nodeType":"YulFunctionCall","src":"4091:18:25"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4111:34:25","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4084:6:25"},"nodeType":"YulFunctionCall","src":"4084:62:25"},"nodeType":"YulExpressionStatement","src":"4084:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:25"},"nodeType":"YulFunctionCall","src":"4162:18:25"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4182:4:25","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4155:6:25"},"nodeType":"YulFunctionCall","src":"4155:32:25"},"nodeType":"YulExpressionStatement","src":"4155:32:25"},{"nodeType":"YulAssignment","src":"4196:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4208:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4219:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4204:3:25"},"nodeType":"YulFunctionCall","src":"4204:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4196:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3982:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3996:4:25","type":""}],"src":"3831:398:25"},{"body":{"nodeType":"YulBlock","src":"4408:179:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4425:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:25"},"nodeType":"YulFunctionCall","src":"4418:21:25"},"nodeType":"YulExpressionStatement","src":"4418:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4459:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4470:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4455:3:25"},"nodeType":"YulFunctionCall","src":"4455:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4475:2:25","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:25"},"nodeType":"YulFunctionCall","src":"4448:30:25"},"nodeType":"YulExpressionStatement","src":"4448:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4509:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4494:3:25"},"nodeType":"YulFunctionCall","src":"4494:18:25"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4514:31:25","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4487:6:25"},"nodeType":"YulFunctionCall","src":"4487:59:25"},"nodeType":"YulExpressionStatement","src":"4487:59:25"},{"nodeType":"YulAssignment","src":"4555:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4567:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4578:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4563:3:25"},"nodeType":"YulFunctionCall","src":"4563:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4555:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4385:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4399:4:25","type":""}],"src":"4234:353:25"},{"body":{"nodeType":"YulBlock","src":"4766:227:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4794:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:25"},"nodeType":"YulFunctionCall","src":"4776:21:25"},"nodeType":"YulExpressionStatement","src":"4776:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:25"},"nodeType":"YulFunctionCall","src":"4813:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:25","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:25"},"nodeType":"YulFunctionCall","src":"4806:30:25"},"nodeType":"YulExpressionStatement","src":"4806:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4856:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4867:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4852:3:25"},"nodeType":"YulFunctionCall","src":"4852:18:25"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4872:34:25","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4845:6:25"},"nodeType":"YulFunctionCall","src":"4845:62:25"},"nodeType":"YulExpressionStatement","src":"4845:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4927:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4923:3:25"},"nodeType":"YulFunctionCall","src":"4923:18:25"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4943:7:25","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4916:6:25"},"nodeType":"YulFunctionCall","src":"4916:35:25"},"nodeType":"YulExpressionStatement","src":"4916:35:25"},{"nodeType":"YulAssignment","src":"4960:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:25"},"nodeType":"YulFunctionCall","src":"4968:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4743:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4757:4:25","type":""}],"src":"4592:401:25"},{"body":{"nodeType":"YulBlock","src":"5172:225:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5189:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5200:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:25"},"nodeType":"YulFunctionCall","src":"5182:21:25"},"nodeType":"YulExpressionStatement","src":"5182:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5234:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:25"},"nodeType":"YulFunctionCall","src":"5219:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5239:2:25","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:25"},"nodeType":"YulFunctionCall","src":"5212:30:25"},"nodeType":"YulExpressionStatement","src":"5212:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:25"},"nodeType":"YulFunctionCall","src":"5258:18:25"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5278:34:25","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5251:6:25"},"nodeType":"YulFunctionCall","src":"5251:62:25"},"nodeType":"YulExpressionStatement","src":"5251:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:25"},"nodeType":"YulFunctionCall","src":"5329:18:25"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5349:5:25","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5322:6:25"},"nodeType":"YulFunctionCall","src":"5322:33:25"},"nodeType":"YulExpressionStatement","src":"5322:33:25"},{"nodeType":"YulAssignment","src":"5364:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5376:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5387:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:25"},"nodeType":"YulFunctionCall","src":"5372:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5364:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5149:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5163:4:25","type":""}],"src":"4998:399:25"},{"body":{"nodeType":"YulBlock","src":"5576:228:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5593:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5604:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:25"},"nodeType":"YulFunctionCall","src":"5586:21:25"},"nodeType":"YulExpressionStatement","src":"5586:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5627:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5638:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5623:3:25"},"nodeType":"YulFunctionCall","src":"5623:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"5643:2:25","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5616:6:25"},"nodeType":"YulFunctionCall","src":"5616:30:25"},"nodeType":"YulExpressionStatement","src":"5616:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5666:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5662:3:25"},"nodeType":"YulFunctionCall","src":"5662:18:25"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5682:34:25","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5655:6:25"},"nodeType":"YulFunctionCall","src":"5655:62:25"},"nodeType":"YulExpressionStatement","src":"5655:62:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5737:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5748:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5733:3:25"},"nodeType":"YulFunctionCall","src":"5733:18:25"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5753:8:25","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5726:6:25"},"nodeType":"YulFunctionCall","src":"5726:36:25"},"nodeType":"YulExpressionStatement","src":"5726:36:25"},{"nodeType":"YulAssignment","src":"5771:27:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5783:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"5794:3:25","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5779:3:25"},"nodeType":"YulFunctionCall","src":"5779:19:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5771:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5553:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5567:4:25","type":""}],"src":"5402:402:25"},{"body":{"nodeType":"YulBlock","src":"5983:181:25","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6000:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6011:2:25","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:25"},"nodeType":"YulFunctionCall","src":"5993:21:25"},"nodeType":"YulExpressionStatement","src":"5993:21:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6034:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6045:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6030:3:25"},"nodeType":"YulFunctionCall","src":"6030:18:25"},{"kind":"number","nodeType":"YulLiteral","src":"6050:2:25","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6023:6:25"},"nodeType":"YulFunctionCall","src":"6023:30:25"},"nodeType":"YulExpressionStatement","src":"6023:30:25"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:25","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6069:3:25"},"nodeType":"YulFunctionCall","src":"6069:18:25"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"6089:33:25","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6062:6:25"},"nodeType":"YulFunctionCall","src":"6062:61:25"},"nodeType":"YulExpressionStatement","src":"6062:61:25"},{"nodeType":"YulAssignment","src":"6132:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6144:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"6155:2:25","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6140:3:25"},"nodeType":"YulFunctionCall","src":"6140:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6132:4:25"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5960:9:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5974:4:25","type":""}],"src":"5809:355:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610787565b60405180910390f35b6100ea6100e53660046107f8565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610822565b61026a565b604051601281526020016100ce565b6100ea61013c3660046107f8565b61028e565b61015461014f3660046107f8565b6102b0565b005b6100fe61016436600461085e565b6001600160a01b031660009081526020819052604090205490565b6100c16102be565b6100ea6101953660046107f8565b6102cd565b6100ea6101a83660046107f8565b61034d565b6100fe6101bb366004610880565b61035b565b6060600380546101cf906108b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610386565b5060019392505050565b6000336102788582856104aa565b610283858585610524565b506001949350505050565b6000336102608185856102a1838361035b565b6102ab91906108ee565b610386565b6102ba82826106c8565b5050565b6060600480546101cf906108b3565b600033816102db828661035b565b9050838110156103405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102838286868403610386565b600033610260818585610524565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610337565b6001600160a01b0382166104495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610337565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b6848461035b565b9050600019811461051e57818110156105115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610337565b61051e8484848403610386565b50505050565b6001600160a01b0383166105885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610337565b6001600160a01b0382166105ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610337565b6001600160a01b038316600090815260208190526040902054818110156106625760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610337565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051e565b6001600160a01b03821661071e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610337565b806002600082825461073091906108ee565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b457858101830151858201604001528201610798565b818111156107c6576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107f357600080fd5b919050565b6000806040838503121561080b57600080fd5b610814836107dc565b946020939093013593505050565b60008060006060848603121561083757600080fd5b610840846107dc565b925061084e602085016107dc565b9150604084013590509250925092565b60006020828403121561087057600080fd5b610879826107dc565b9392505050565b6000806040838503121561089357600080fd5b61089c836107dc565b91506108aa602084016107dc565b90509250929050565b600181811c908216806108c757607f821691505b602082108114156108e857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090f57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220d350a2881b88d96973635c8ba61f870672c14e6174c25fb0f313da0f13e2dad564736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x822 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x28E JUMP JUMPDEST PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F8 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x880 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x248 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x248 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x22B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x386 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x278 DUP6 DUP3 DUP6 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x283 DUP6 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x2A1 DUP4 DUP4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH2 0x2BA DUP3 DUP3 PUSH2 0x6C8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1CF SWAP1 PUSH2 0x8B3 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2DB DUP3 DUP7 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x283 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP2 DUP6 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x449 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B6 DUP5 DUP5 PUSH2 0x35B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x51E JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x511 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST PUSH2 0x51E DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x386 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x337 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x51E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x71E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x337 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x730 SWAP2 SWAP1 PUSH2 0x8EE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x798 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x80B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x814 DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x840 DUP5 PUSH2 0x7DC JUMP JUMPDEST SWAP3 POP PUSH2 0x84E PUSH1 0x20 DUP6 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x879 DUP3 PUSH2 0x7DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x89C DUP4 PUSH2 0x7DC JUMP JUMPDEST SWAP2 POP PUSH2 0x8AA PUSH1 0x20 DUP5 ADD PUSH2 0x7DC JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x90F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 POP LOG2 DUP9 SHL DUP9 0xD9 PUSH10 0x73635C8BA61F870672C1 0x4E PUSH2 0x74C2 0x5F 0xB0 RETURN SGT 0xDA 0xF SGT 0xE2 0xDA 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"133:332:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:10;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:25;;1211:22;1193:41;;1181:2;1166:18;4431:197:10;1053:187:25;3242:106:10;3329:12;;3242:106;;;1391:25:25;;;1379:2;1364:18;3242:106:10;1245:177:25;5190:286:10;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1902:36:25;;1890:2;1875:18;3091:91:10;1760:184:25;5871:234:10;;;;;;:::i;:::-;;:::i;379:84:23:-;;;;;;:::i;:::-;;:::i;:::-;;3406:125:10;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:10;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:13;4568:32:10;719:10:13;4584:7:10;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:10;;4431:197;-1:-1:-1;;;4431:197:10:o;5190:286::-;5317:4;719:10:13;5373:38:10;5389:4;719:10:13;5404:6:10;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:10;;5190:286;-1:-1:-1;;;;5190:286:10:o;5871:234::-;5959:4;719:10:13;6013:64:10;719:10:13;6029:7:10;6066:10;6038:25;719:10:13;6029:7:10;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;379:84:23:-;437:19;443:3;448:7;437:5;:19::i;:::-;379:84;;:::o;2365:102:10:-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:13;6685:4:10;6766:25;719:10:13;6783:7:10;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:10;;3222:2:25;6801:85:10;;;3204:21:25;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:25;;;3344:35;3396:19;;6801:85:10;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:13;3860:28:10;719:10:13;3877:2:10;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:10;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:10;;10627:68;;;;-1:-1:-1;;;10627:68:10;;3628:2:25;10627:68:10;;;3610:21:25;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:25;;;3750:34;3801:19;;10627:68:10;3426:400:25;10627:68:10;-1:-1:-1;;;;;10713:21:10;;10705:68;;;;-1:-1:-1;;;10705:68:10;;4033:2:25;10705:68:10;;;4015:21:25;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:25;;;4155:32;4204:19;;10705:68:10;3831:398:25;10705:68:10;-1:-1:-1;;;;;10784:18:10;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1391:25:25;;;10835:32:10;;1364:18:25;10835:32:10;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:10;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:10;;4436:2:25;11404:68:10;;;4418:21:25;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11404:68:10;4234:353:25;11404:68:10;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:10;;7591:68;;;;-1:-1:-1;;;7591:68:10;;4794:2:25;7591:68:10;;;4776:21:25;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:25;;;4916:35;4968:19;;7591:68:10;4592:401:25;7591:68:10;-1:-1:-1;;;;;7677:16:10;;7669:64;;;;-1:-1:-1;;;7669:64:10;;5200:2:25;7669:64:10;;;5182:21:25;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:25;;;5322:33;5372:19;;7669:64:10;4998:399:25;7669:64:10;-1:-1:-1;;;;;7815:15:10;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:10;;5604:2:25;7840:72:10;;;5586:21:25;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:25;;;5726:36;5779:19;;7840:72:10;5402:402:25;7840:72:10;-1:-1:-1;;;;;7946:15:10;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1391:25:25;;;8161:13:10;;8210:26;;1364:18:25;8210:26:10;;;;;;;8247:37;12180:121;8567:535;-1:-1:-1;;;;;8650:21:10;;8642:65;;;;-1:-1:-1;;;8642:65:10;;6011:2:25;8642:65:10;;;5993:21:25;6050:2;6030:18;;;6023:30;6089:33;6069:18;;;6062:61;6140:18;;8642:65:10;5809:355:25;8642:65:10;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:10;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1391:25:25;;;8999:37:10;;1364:18:25;8999:37:10;;;;;;;379:84:23;;:::o;14:597:25:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:25;574:15;-1:-1:-1;;570:29:25;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:25:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:25;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:25:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:25:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:25;;2790:225::o"},"gasEstimates":{"creation":{"codeDepositCost":"475600","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"24624","balanceOf(address)":"2562","decimals()":"266","decreaseAllowance(address,uint256)":"27016","increaseAllowance(address,uint256)":"27089","mint(address,uint256)":"50800","name()":"infinite","symbol()":"infinite","totalSupply()":"2326","transfer(address,uint256)":"51134","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/MockToken.sol\":\"MockToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n mapping(address => uint256) private _balances;\\n\\n mapping(address => mapping(address => uint256)) private _allowances;\\n\\n uint256 private _totalSupply;\\n\\n string private _name;\\n string private _symbol;\\n\\n /**\\n * @dev Sets the values for {name} and {symbol}.\\n *\\n * The default value of {decimals} is 18. To select a different value for\\n * {decimals} you should overload it.\\n *\\n * All two of these values are immutable: they can only be set once during\\n * construction.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() public view virtual override returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev Returns the symbol of the token, usually a shorter version of the\\n * name.\\n */\\n function symbol() public view virtual override returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev Returns the number of decimals used to get its user representation.\\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n *\\n * Tokens usually opt for a value of 18, imitating the relationship between\\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\\n * overridden;\\n *\\n * NOTE: This information is only used for _display_ purposes: it in\\n * no way affects any of the arithmetic of the contract, including\\n * {IERC20-balanceOf} and {IERC20-transfer}.\\n */\\n function decimals() public view virtual override returns (uint8) {\\n return 18;\\n }\\n\\n /**\\n * @dev See {IERC20-totalSupply}.\\n */\\n function totalSupply() public view virtual override returns (uint256) {\\n return _totalSupply;\\n }\\n\\n /**\\n * @dev See {IERC20-balanceOf}.\\n */\\n function balanceOf(address account) public view virtual override returns (uint256) {\\n return _balances[account];\\n }\\n\\n /**\\n * @dev See {IERC20-transfer}.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - the caller must have a balance of at least `amount`.\\n */\\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _transfer(owner, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-allowance}.\\n */\\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n return _allowances[owner][spender];\\n }\\n\\n /**\\n * @dev See {IERC20-approve}.\\n *\\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n * `transferFrom`. This is semantically equivalent to an infinite approval.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, amount);\\n return true;\\n }\\n\\n /**\\n * @dev See {IERC20-transferFrom}.\\n *\\n * Emits an {Approval} event indicating the updated allowance. This is not\\n * required by the EIP. See the note at the beginning of {ERC20}.\\n *\\n * NOTE: Does not update the allowance if the current allowance\\n * is the maximum `uint256`.\\n *\\n * Requirements:\\n *\\n * - `from` and `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n * - the caller must have allowance for ``from``'s tokens of at least\\n * `amount`.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) public virtual override returns (bool) {\\n address spender = _msgSender();\\n _spendAllowance(from, spender, amount);\\n _transfer(from, to, amount);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically increases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n */\\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n _approve(owner, spender, allowance(owner, spender) + addedValue);\\n return true;\\n }\\n\\n /**\\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n *\\n * This is an alternative to {approve} that can be used as a mitigation for\\n * problems described in {IERC20-approve}.\\n *\\n * Emits an {Approval} event indicating the updated allowance.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `spender` must have allowance for the caller of at least\\n * `subtractedValue`.\\n */\\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n address owner = _msgSender();\\n uint256 currentAllowance = allowance(owner, spender);\\n require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - subtractedValue);\\n }\\n\\n return true;\\n }\\n\\n /**\\n * @dev Moves `amount` of tokens from `from` to `to`.\\n *\\n * This internal function is equivalent to {transfer}, and can be used to\\n * e.g. implement automatic token fees, slashing mechanisms, etc.\\n *\\n * Emits a {Transfer} event.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `from` must have a balance of at least `amount`.\\n */\\n function _transfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {\\n require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n _beforeTokenTransfer(from, to, amount);\\n\\n uint256 fromBalance = _balances[from];\\n require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n unchecked {\\n _balances[from] = fromBalance - amount;\\n // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n // decrementing then incrementing.\\n _balances[to] += amount;\\n }\\n\\n emit Transfer(from, to, amount);\\n\\n _afterTokenTransfer(from, to, amount);\\n }\\n\\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n * the total supply.\\n *\\n * Emits a {Transfer} event with `from` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n */\\n function _mint(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n _beforeTokenTransfer(address(0), account, amount);\\n\\n _totalSupply += amount;\\n unchecked {\\n // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n _balances[account] += amount;\\n }\\n emit Transfer(address(0), account, amount);\\n\\n _afterTokenTransfer(address(0), account, amount);\\n }\\n\\n /**\\n * @dev Destroys `amount` tokens from `account`, reducing the\\n * total supply.\\n *\\n * Emits a {Transfer} event with `to` set to the zero address.\\n *\\n * Requirements:\\n *\\n * - `account` cannot be the zero address.\\n * - `account` must have at least `amount` tokens.\\n */\\n function _burn(address account, uint256 amount) internal virtual {\\n require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n _beforeTokenTransfer(account, address(0), amount);\\n\\n uint256 accountBalance = _balances[account];\\n require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n unchecked {\\n _balances[account] = accountBalance - amount;\\n // Overflow not possible: amount <= accountBalance <= totalSupply.\\n _totalSupply -= amount;\\n }\\n\\n emit Transfer(account, address(0), amount);\\n\\n _afterTokenTransfer(account, address(0), amount);\\n }\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n *\\n * This internal function is equivalent to `approve`, and can be used to\\n * e.g. set automatic allowances for certain subsystems, etc.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `owner` cannot be the zero address.\\n * - `spender` cannot be the zero address.\\n */\\n function _approve(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n _allowances[owner][spender] = amount;\\n emit Approval(owner, spender, amount);\\n }\\n\\n /**\\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n *\\n * Does not update the allowance amount in case of infinite allowance.\\n * Revert if not enough allowance is available.\\n *\\n * Might emit an {Approval} event.\\n */\\n function _spendAllowance(\\n address owner,\\n address spender,\\n uint256 amount\\n ) internal virtual {\\n uint256 currentAllowance = allowance(owner, spender);\\n if (currentAllowance != type(uint256).max) {\\n require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n unchecked {\\n _approve(owner, spender, currentAllowance - amount);\\n }\\n }\\n }\\n\\n /**\\n * @dev Hook that is called before any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * will be transferred to `to`.\\n * - when `from` is zero, `amount` tokens will be minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _beforeTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n\\n /**\\n * @dev Hook that is called after any transfer of tokens. This includes\\n * minting and burning.\\n *\\n * Calling conditions:\\n *\\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n * has been transferred to `to`.\\n * - when `from` is zero, `amount` tokens have been minted for `to`.\\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n * - `from` and `to` are never both zero.\\n *\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n */\\n function _afterTokenTransfer(\\n address from,\\n address to,\\n uint256 amount\\n ) internal virtual {}\\n}\\n\",\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the amount of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the amount of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves `amount` tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 amount) external returns (bool);\\n\\n /**\\n * @dev Moves `amount` tokens from `from` to `to` using the\\n * allowance mechanism. `amount` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(\\n address from,\\n address to,\\n uint256 amount\\n ) external returns (bool);\\n}\\n\",\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n /**\\n * @dev Returns the name of the token.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the symbol of the token.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the decimals places of the token.\\n */\\n function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/mocks/MockToken.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.4;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\n// this is a MOCK\\ncontract MockToken is ERC20 {\\n // this is a MOCK\\n constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {\\n _mint(msg.sender, 1_000_000_000 * 10**18); // mint 1B to deployoooor\\n }\\n\\n // this is a MOCK\\n function mint(address _to, uint _amount) public {\\n _mint(_to, _amount);\\n }\\n}\\n\",\"keccak256\":\"0x3c25fa8f0d860c6e67f221842303ae07fd7caa94fd9388a39e6d009923c7b6ba\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3012,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":3018,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3020,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":3022,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":3024,"contract":"contracts/mocks/MockToken.sol:MockToken","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/mocks/VotingEscrowRemapperMock.sol":{"VotingEscrowRemapperMock":{"abi":[{"inputs":[{"internalType":"address","name":"_votingEscrow","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"_localToRemoteAddressMap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_localUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"}],"name":"getRemoteUser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVotingEscrow","outputs":[{"internalType":"contract IVotingEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_remoteUser","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"}],"name":"setRemoteUser","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_4670":{"entryPoint":null,"id":4670,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":84,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:306:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:25","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:25"},"nodeType":"YulFunctionCall","src":"143:12:25"},"nodeType":"YulExpressionStatement","src":"143:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:25"},"nodeType":"YulFunctionCall","src":"112:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:25","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:25"},"nodeType":"YulFunctionCall","src":"108:32:25"},"nodeType":"YulIf","src":"105:52:25"},{"nodeType":"YulVariableDeclaration","src":"166:29:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:25"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:25"},"nodeType":"YulFunctionCall","src":"179:16:25"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:25","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:25"},"nodeType":"YulFunctionCall","src":"260:12:25"},"nodeType":"YulExpressionStatement","src":"260:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:25"},"nodeType":"YulFunctionCall","src":"239:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:25"},"nodeType":"YulFunctionCall","src":"235:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:25"},"nodeType":"YulFunctionCall","src":"224:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:25"},"nodeType":"YulFunctionCall","src":"214:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:25"},"nodeType":"YulFunctionCall","src":"207:50:25"},"nodeType":"YulIf","src":"204:70:25"},{"nodeType":"YulAssignment","src":"283:15:25","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:25"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:25","type":""}],"src":"14:290:25"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161028f38038061028f83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6101fc806100936000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806308b0308a14610051578063bda75c3814610080578063d0ff58ba146100ba578063e996a30614610107575b600080fd5b600054610064906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61006461008e366004610169565b61ffff1660009081526001602090815260408083206001600160a01b0394851684529091529020541690565b6101056100c8366004610169565b61ffff166000908152600160209081526040808320338452909152902080546001600160a01b0319166001600160a01b0392909216919091179055565b005b61006461011536600461019c565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b80356001600160a01b038116811461015257600080fd5b919050565b803561ffff8116811461015257600080fd5b6000806040838503121561017c57600080fd5b6101858361013b565b915061019360208401610157565b90509250929050565b600080604083850312156101af57600080fd5b6101b883610157565b91506101936020840161013b56fea26469706673582212204a6d7bcc4c48bda5a47e6e28acece922b606254dcb632951853259eb31f9111064736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x28F CODESIZE SUB DUP1 PUSH2 0x28F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x84 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1FC DUP1 PUSH2 0x93 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B0308A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBDA75C38 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0xD0FF58BA EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0xE996A306 EQ PUSH2 0x107 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x64 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0x8E CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH2 0x105 PUSH2 0xC8 CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x64 PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x19C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185 DUP4 PUSH2 0x13B JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x157 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B8 DUP4 PUSH2 0x157 JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x13B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A PUSH14 0x7BCC4C48BDA5A47E6E28ACECE922 0xB6 MOD 0x25 0x4D 0xCB PUSH4 0x29518532 MSIZE 0xEB BALANCE 0xF9 GT LT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"122:626:24:-:0;;;315:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;360:15;:46;;-1:-1:-1;;;;;;360:46:24;-1:-1:-1;;;;;360:46:24;;;;;;;;;;122:626;;14:290:25;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:25;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:25:o;:::-;122:626:24;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_localToRemoteAddressMap_4658":{"entryPoint":null,"id":4658,"parameterSlots":0,"returnSlots":0},"@getRemoteUser_4686":{"entryPoint":null,"id":4686,"parameterSlots":2,"returnSlots":1},"@getVotingEscrow_4652":{"entryPoint":null,"id":4652,"parameterSlots":0,"returnSlots":0},"@setRemoteUser_4703":{"entryPoint":null,"id":4703,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":315,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_uint16":{"entryPoint":361,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_address":{"entryPoint":412,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":343,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1317:25","statements":[{"nodeType":"YulBlock","src":"6:3:25","statements":[]},{"body":{"nodeType":"YulBlock","src":"137:102:25","statements":[{"nodeType":"YulAssignment","src":"147:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"159:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"170:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"155:3:25"},"nodeType":"YulFunctionCall","src":"155:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"147:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"189:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"204:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"220:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"225:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"216:3:25"},"nodeType":"YulFunctionCall","src":"216:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"229:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"212:3:25"},"nodeType":"YulFunctionCall","src":"212:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"200:3:25"},"nodeType":"YulFunctionCall","src":"200:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"182:6:25"},"nodeType":"YulFunctionCall","src":"182:51:25"},"nodeType":"YulExpressionStatement","src":"182:51:25"}]},"name":"abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"106:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"117:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"128:4:25","type":""}],"src":"14:225:25"},{"body":{"nodeType":"YulBlock","src":"293:124:25","statements":[{"nodeType":"YulAssignment","src":"303:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"325:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"312:12:25"},"nodeType":"YulFunctionCall","src":"312:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"303:5:25"}]},{"body":{"nodeType":"YulBlock","src":"395:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"404:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"407:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"397:6:25"},"nodeType":"YulFunctionCall","src":"397:12:25"},"nodeType":"YulExpressionStatement","src":"397:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"354:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"365:5:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"380:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"385:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"376:3:25"},"nodeType":"YulFunctionCall","src":"376:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"389:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"372:3:25"},"nodeType":"YulFunctionCall","src":"372:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"361:3:25"},"nodeType":"YulFunctionCall","src":"361:31:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"351:2:25"},"nodeType":"YulFunctionCall","src":"351:42:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"344:6:25"},"nodeType":"YulFunctionCall","src":"344:50:25"},"nodeType":"YulIf","src":"341:70:25"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"272:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"283:5:25","type":""}],"src":"244:173:25"},{"body":{"nodeType":"YulBlock","src":"470:111:25","statements":[{"nodeType":"YulAssignment","src":"480:29:25","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"502:6:25"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"489:12:25"},"nodeType":"YulFunctionCall","src":"489:20:25"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"480:5:25"}]},{"body":{"nodeType":"YulBlock","src":"559:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"568:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"571:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"561:6:25"},"nodeType":"YulFunctionCall","src":"561:12:25"},"nodeType":"YulExpressionStatement","src":"561:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"531:5:25"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"542:5:25"},{"kind":"number","nodeType":"YulLiteral","src":"549:6:25","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"538:3:25"},"nodeType":"YulFunctionCall","src":"538:18:25"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"528:2:25"},"nodeType":"YulFunctionCall","src":"528:29:25"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"521:6:25"},"nodeType":"YulFunctionCall","src":"521:37:25"},"nodeType":"YulIf","src":"518:57:25"}]},"name":"abi_decode_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"449:6:25","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"460:5:25","type":""}],"src":"422:159:25"},{"body":{"nodeType":"YulBlock","src":"672:172:25","statements":[{"body":{"nodeType":"YulBlock","src":"718:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:25"},"nodeType":"YulFunctionCall","src":"720:12:25"},"nodeType":"YulExpressionStatement","src":"720:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"693:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"702:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"689:3:25"},"nodeType":"YulFunctionCall","src":"689:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"714:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"685:3:25"},"nodeType":"YulFunctionCall","src":"685:32:25"},"nodeType":"YulIf","src":"682:52:25"},{"nodeType":"YulAssignment","src":"743:39:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"772:9:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"753:18:25"},"nodeType":"YulFunctionCall","src":"753:29:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"743:6:25"}]},{"nodeType":"YulAssignment","src":"791:47:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"823:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"834:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"819:3:25"},"nodeType":"YulFunctionCall","src":"819:18:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"801:17:25"},"nodeType":"YulFunctionCall","src":"801:37:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"791:6:25"}]}]},"name":"abi_decode_tuple_t_addresst_uint16","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"630:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"641:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"653:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"661:6:25","type":""}],"src":"586:258:25"},{"body":{"nodeType":"YulBlock","src":"950:102:25","statements":[{"nodeType":"YulAssignment","src":"960:26:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"972:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"983:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"968:3:25"},"nodeType":"YulFunctionCall","src":"968:18:25"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"960:4:25"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1002:9:25"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1017:6:25"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1033:3:25","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1038:1:25","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1029:3:25"},"nodeType":"YulFunctionCall","src":"1029:11:25"},{"kind":"number","nodeType":"YulLiteral","src":"1042:1:25","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1025:3:25"},"nodeType":"YulFunctionCall","src":"1025:19:25"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1013:3:25"},"nodeType":"YulFunctionCall","src":"1013:32:25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"995:6:25"},"nodeType":"YulFunctionCall","src":"995:51:25"},"nodeType":"YulExpressionStatement","src":"995:51:25"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"919:9:25","type":""},{"name":"value0","nodeType":"YulTypedName","src":"930:6:25","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"941:4:25","type":""}],"src":"849:203:25"},{"body":{"nodeType":"YulBlock","src":"1143:172:25","statements":[{"body":{"nodeType":"YulBlock","src":"1189:16:25","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1198:1:25","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1201:1:25","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1191:6:25"},"nodeType":"YulFunctionCall","src":"1191:12:25"},"nodeType":"YulExpressionStatement","src":"1191:12:25"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1164:7:25"},{"name":"headStart","nodeType":"YulIdentifier","src":"1173:9:25"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1160:3:25"},"nodeType":"YulFunctionCall","src":"1160:23:25"},{"kind":"number","nodeType":"YulLiteral","src":"1185:2:25","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1156:3:25"},"nodeType":"YulFunctionCall","src":"1156:32:25"},"nodeType":"YulIf","src":"1153:52:25"},{"nodeType":"YulAssignment","src":"1214:38:25","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1242:9:25"}],"functionName":{"name":"abi_decode_uint16","nodeType":"YulIdentifier","src":"1224:17:25"},"nodeType":"YulFunctionCall","src":"1224:28:25"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1214:6:25"}]},{"nodeType":"YulAssignment","src":"1261:48:25","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1294:9:25"},{"kind":"number","nodeType":"YulLiteral","src":"1305:2:25","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1290:3:25"},"nodeType":"YulFunctionCall","src":"1290:18:25"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1271:18:25"},"nodeType":"YulFunctionCall","src":"1271:38:25"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1261:6:25"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1101:9:25","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1112:7:25","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1124:6:25","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1132:6:25","type":""}],"src":"1057:258:25"}]},"contents":"{\n { }\n function abi_encode_tuple_t_contract$_IVotingEscrow_$4518__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint16(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n}","id":25,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c806308b0308a14610051578063bda75c3814610080578063d0ff58ba146100ba578063e996a30614610107575b600080fd5b600054610064906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61006461008e366004610169565b61ffff1660009081526001602090815260408083206001600160a01b0394851684529091529020541690565b6101056100c8366004610169565b61ffff166000908152600160209081526040808320338452909152902080546001600160a01b0319166001600160a01b0392909216919091179055565b005b61006461011536600461019c565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b80356001600160a01b038116811461015257600080fd5b919050565b803561ffff8116811461015257600080fd5b6000806040838503121561017c57600080fd5b6101858361013b565b915061019360208401610157565b90509250929050565b600080604083850312156101af57600080fd5b6101b883610157565b91506101936020840161013b56fea26469706673582212204a6d7bcc4c48bda5a47e6e28acece922b606254dcb632951853259eb31f9111064736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B0308A EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xBDA75C38 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0xD0FF58BA EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0xE996A306 EQ PUSH2 0x107 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x64 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0x8E CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH2 0x105 PUSH2 0xC8 CALLDATASIZE PUSH1 0x4 PUSH2 0x169 JUMP JUMPDEST PUSH2 0xFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x64 PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x19C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185 DUP4 PUSH2 0x13B JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x157 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B8 DUP4 PUSH2 0x157 JUMP JUMPDEST SWAP2 POP PUSH2 0x193 PUSH1 0x20 DUP5 ADD PUSH2 0x13B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A PUSH14 0x7BCC4C48BDA5A47E6E28ACECE922 0xB6 MOD 0x25 0x4D 0xCB PUSH4 0x29518532 MSIZE 0xEB BALANCE 0xF9 GT LT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"122:626:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:36;;;;;-1:-1:-1;;;;;187:36:24;;;;;;-1:-1:-1;;;;;200:32:25;;;182:51;;170:2;155:18;187:36:24;;;;;;;419:168;;;;;;:::i;:::-;531:37;;505:7;531:37;;;:24;:37;;;;;;;;-1:-1:-1;;;;;531:49:24;;;;;;;;;;;;;419:168;593:153;;;;;;:::i;:::-;676:37;;;;;;:24;:37;;;;;;;;714:10;676:49;;;;;;;:63;;-1:-1:-1;;;;;;676:63:24;-1:-1:-1;;;;;676:63:24;;;;;;;;;;593:153;;;230:78;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;230:78:24;;;244:173:25;312:20;;-1:-1:-1;;;;;361:31:25;;351:42;;341:70;;407:1;404;397:12;341:70;244:173;;;:::o;422:159::-;489:20;;549:6;538:18;;528:29;;518:57;;571:1;568;561:12;586:258;653:6;661;714:2;702:9;693:7;689:23;685:32;682:52;;;730:1;727;720:12;682:52;753:29;772:9;753:29;:::i;:::-;743:39;;801:37;834:2;823:9;819:18;801:37;:::i;:::-;791:47;;586:258;;;;;:::o;1057:::-;1124:6;1132;1185:2;1173:9;1164:7;1160:23;1156:32;1153:52;;;1201:1;1198;1191:12;1153:52;1224:28;1242:9;1224:28;:::i;:::-;1214:38;;1271;1305:2;1294:9;1290:18;1271:38;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"101600","executionCost":"infinite","totalCost":"infinite"},"external":{"_localToRemoteAddressMap(uint16,address)":"infinite","getRemoteUser(address,uint16)":"infinite","getVotingEscrow()":"2303","setRemoteUser(address,uint16)":"infinite"}},"methodIdentifiers":{"_localToRemoteAddressMap(uint16,address)":"e996a306","getRemoteUser(address,uint16)":"bda75c38","getVotingEscrow()":"08b0308a","setRemoteUser(address,uint16)":"d0ff58ba"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_votingEscrow\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_localToRemoteAddressMap\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"}],\"name\":\"getRemoteUser\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVotingEscrow\",\"outputs\":[{\"internalType\":\"contract IVotingEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_remoteUser\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"}],\"name\":\"setRemoteUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getVotingEscrow()\":{\"notice\":\"Returns Voting Escrow contract address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/VotingEscrowRemapperMock.sol\":\"VotingEscrowRemapperMock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOmniVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n * @dev Partial voting escrow bridge interface.\\n * See https://github.com/LayerZero-Labs/lz_gauges/blob/main/contracts/OmniVotingEscrow.sol for reference.\\n */\\ninterface IOmniVotingEscrow {\\n function estimateSendUserBalance(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function estimateSendTotalSupply(uint16 _dstChainId, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n function sendUserBalance(address _localUser, uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n\\n function sendTotalSupply(uint16 _dstChainId, address payable _refundAddress, address _zroPaymentAddress, bytes memory _adapterParams) external payable;\\n}\\n\",\"keccak256\":\"0x171e4f5c260cd73305ee98e7759341941c11054d47d20287ce4845b6ea06993e\",\"license\":\"GPL-3.0-or-later\"},\"contracts/interfaces/IVotingEscrow.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\ninterface IVotingEscrow {\\n struct Point {\\n int128 bias;\\n int128 slope;\\n uint ts;\\n uint blk; // TODO get rid of blk?\\n }\\n\\n function epoch() external view returns (uint);\\n\\n function user_point_epoch(address _user) external returns (uint);\\n\\n function user_point_history(address _user, uint _epoch) external returns (Point memory);\\n\\n function point_history(uint _epoch) external returns (Point memory);\\n\\n function checkpoint() external;\\n\\n function locked__end(address user) external view returns (uint);\\n}\\n\",\"keccak256\":\"0x1622bebf55e66ab3a310f6950f7898ca99f5b916c765fadcfd8fb8a868d42c45\",\"license\":\"BUSL-1.1\"},\"contracts/interfaces/IVotingEscrowRemapper.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see .\\n\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"./IVotingEscrow.sol\\\";\\nimport \\\"./IOmniVotingEscrow.sol\\\";\\n\\ninterface IVotingEscrowRemapper {\\n /**\\n * @notice Returns Voting Escrow contract address.\\n */\\n function getVotingEscrow() external view returns (IVotingEscrow);\\n\\n // /**\\n // * @notice Returns Omni Voting Escrow contract address).\\n // */\\n // function getOmniVotingEscrow() external view returns (IOmniVotingEscrow);\\n //\\n // /**\\n // * @notice Get timestamp when `user`'s lock finishes.\\n // * @dev The returned value is taken directly from the voting escrow.\\n // */\\n // function getLockedEnd(address user) external view returns (uint256);\\n\\n // /**\\n // * @notice Returns the local user corresponding to an address on a remote chain.\\n // * @dev Returns `address(0)` if the remapping does not exist for the given remote user.\\n // * @param remoteUser - Address of the user on the remote chain which are querying the local address for.\\n // * @param chainId - The chain ID of the network which this user is on.\\n // */\\n // function getLocalUser(address remoteUser, uint256 chainId) external view returns (address);\\n\\n /**\\n * @notice Returns the remote user corresponding to an address on the local chain.\\n * @dev Returns `address(0)` if the remapping does not exist for the given local user.\\n * @param localUser - Address of the user on the local chain which are querying the remote address for.\\n * @param chainId - The chain ID of the network which the remote user is on.\\n */\\n function getRemoteUser(address localUser, uint16 chainId) external view returns (address);\\n}\\n\",\"keccak256\":\"0x277c7b07029ff46547cdd4829ea756109a27859e8d004caaf1afc33c8a9eb217\",\"license\":\"GPL-3.0-or-later\"},\"contracts/mocks/VotingEscrowRemapperMock.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-or-later\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../interfaces/IVotingEscrowRemapper.sol\\\";\\n\\ncontract VotingEscrowRemapperMock is IVotingEscrowRemapper {\\n IVotingEscrow public getVotingEscrow;\\n\\n mapping(uint16 => mapping(address => address)) public _localToRemoteAddressMap;\\n\\n constructor(address _votingEscrow) {\\n getVotingEscrow = IVotingEscrow(_votingEscrow);\\n }\\n\\n function getRemoteUser(address _localUser, uint16 _dstChainId) external view returns (address) {\\n return _localToRemoteAddressMap[_dstChainId][_localUser];\\n }\\n\\n function setRemoteUser(address _remoteUser, uint16 _dstChainId) external {\\n _localToRemoteAddressMap[_dstChainId][msg.sender] = _remoteUser;\\n }\\n}\\n\",\"keccak256\":\"0x839e702639239e31523f076c15c7165abba0ddd39e050e0742b47c4ad96946f5\",\"license\":\"GPL-3.0-or-later\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4652,"contract":"contracts/mocks/VotingEscrowRemapperMock.sol:VotingEscrowRemapperMock","label":"getVotingEscrow","offset":0,"slot":"0","type":"t_contract(IVotingEscrow)4518"},{"astId":4658,"contract":"contracts/mocks/VotingEscrowRemapperMock.sol:VotingEscrowRemapperMock","label":"_localToRemoteAddressMap","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_mapping(t_address,t_address))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(IVotingEscrow)4518":{"encoding":"inplace","label":"contract IVotingEscrow","numberOfBytes":"20"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint16,t_mapping(t_address,t_address))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => address))","numberOfBytes":"32","value":"t_mapping(t_address,t_address)"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"}}},"userdoc":{"kind":"user","methods":{"getVotingEscrow()":{"notice":"Returns Voting Escrow contract address."}},"version":1}}}}}} \ No newline at end of file diff --git a/tasks/20230524-mainnet-lz-omni-voting-escrow/index.ts b/tasks/20230524-mainnet-lz-omni-voting-escrow/index.ts new file mode 100644 index 00000000..f0a0ec6f --- /dev/null +++ b/tasks/20230524-mainnet-lz-omni-voting-escrow/index.ts @@ -0,0 +1,9 @@ +import { Task, TaskRunOptions } from '@src'; +import { OmniVotingEscrowDeployment } from './input'; + +export default async (task: Task, { force, from }: TaskRunOptions = {}): Promise => { + const input = task.input() as OmniVotingEscrowDeployment; + + const args = [input.LayerZeroEndpoint, input.VotingEscrowRemapper]; + await task.deployAndVerify('OmniVotingEscrow', args, from, force); +}; diff --git a/tasks/20230524-mainnet-lz-omni-voting-escrow/input.ts b/tasks/20230524-mainnet-lz-omni-voting-escrow/input.ts new file mode 100644 index 00000000..78445d57 --- /dev/null +++ b/tasks/20230524-mainnet-lz-omni-voting-escrow/input.ts @@ -0,0 +1,14 @@ +import { Task, TaskMode } from '@src'; + +export type OmniVotingEscrowDeployment = { + LayerZeroEndpoint: string; + VotingEscrowRemapper: string; +}; + +const VotingEscrowRemapper = new Task('20230504-vebal-remapper', TaskMode.READ_ONLY); + +export default { + VotingEscrowRemapper, + // https://docs.layerzero.network/v1/developers/evm/technical-reference/mainnet/mainnet-addresses + LayerZeroEndpoint: '0x66A71Dcef29A0fFBDBE3c6a460a3B5BC225Cd675', +}; diff --git a/tasks/20230524-mainnet-lz-omni-voting-escrow/output/mainnet.json b/tasks/20230524-mainnet-lz-omni-voting-escrow/output/mainnet.json new file mode 100644 index 00000000..7508b65c --- /dev/null +++ b/tasks/20230524-mainnet-lz-omni-voting-escrow/output/mainnet.json @@ -0,0 +1,3 @@ +{ + "OmniVotingEscrow": "0xE241C6e48CA045C7f631600a0f1403b2bFea05ad" +} \ No newline at end of file diff --git a/tasks/20230524-mainnet-lz-omni-voting-escrow/readme.md b/tasks/20230524-mainnet-lz-omni-voting-escrow/readme.md new file mode 100644 index 00000000..8a016966 --- /dev/null +++ b/tasks/20230524-mainnet-lz-omni-voting-escrow/readme.md @@ -0,0 +1,9 @@ +# 2023-05-24 - LayerZero OmniVotingEscrow + +Deployment of the `OmniVotingEscrow`, which sends veBAL balances from mainnet to child chains using LayerZero endpoints. + +## Useful Files + +- [Ethereum mainnet addresses](./output/mainnet.json) +- [`OmniVotingEscrow` artifact](./artifact/OmniVotingEscrow.json) +- [Source code](https://github.com/LayerZero-Labs/lz_gauges/tree/b76bce29b9ff122efdfbd8f4b18e698038cfb85a) diff --git a/tasks/20230524-mainnet-lz-omni-voting-escrow/test/task.fork.ts b/tasks/20230524-mainnet-lz-omni-voting-escrow/test/task.fork.ts new file mode 100644 index 00000000..fcc3bd75 --- /dev/null +++ b/tasks/20230524-mainnet-lz-omni-voting-escrow/test/task.fork.ts @@ -0,0 +1,72 @@ +import hre, { ethers } from 'hardhat'; +import { expect } from 'chai'; +import { Contract } from 'ethers'; +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/dist/src/signer-with-address'; + +import { describeForkTest } from '@src'; +import { Task, TaskMode } from '@src'; +import { getForkedNetwork } from '@src'; +import { OmniVotingEscrowDeployment as OmniVotingEscrowDeployment } from '../input'; + +describeForkTest('OmniVotingEscrow', 'mainnet', 17331260, function () { + let deployer: SignerWithAddress; + + let task: Task; + let omniVotingEscrow: Contract, veBalRemapper: Contract; + let input: OmniVotingEscrowDeployment; + + const LM_MULTISIG = '0xc38c5f97B34E175FFd35407fc91a937300E33860'; + + // https://docs.layerzero.network/v1/developers/evm/technical-reference/mainnet/mainnet-addresses + const POLYGON_LZ_CHAIN_ID = 109; + // https://github.com/LayerZero-Labs/lz_gauges/blob/main/deployments/polygon/OmniVotingEscrowChild.json#L2 + const POLYGON_TRUSTED_ENDPOINT = '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad'; + + before('run OmniVotingEscrow task', async () => { + task = new Task('20230524-mainnet-lz-omni-voting-escrow', TaskMode.TEST, getForkedNetwork(hre)); + await task.run({ force: true }); + omniVotingEscrow = await task.deployedInstance('OmniVotingEscrow'); + input = task.input() as OmniVotingEscrowDeployment; + }); + + before('setup contracts', async () => { + const veBalRemapperTask = new Task('20230504-vebal-remapper', TaskMode.READ_ONLY, getForkedNetwork(hre)); + veBalRemapper = await veBalRemapperTask.deployedInstance('VotingEscrowRemapper'); + }); + + before('setup accounts', async () => { + deployer = (await ethers.getSigners())[0]; + }); + + context('constructor', async () => { + it('stores the endpoint', async () => { + expect(await omniVotingEscrow.lzEndpoint()).to.equal(input.LayerZeroEndpoint); + }); + + it('stores the remapper', async () => { + expect(await omniVotingEscrow.votingEscrowRemapper()).to.equal(veBalRemapper.address); + }); + }); + + context('setup and transfer ownership', async () => { + it('wires trusted endpoint', async () => { + await expect(omniVotingEscrow.getTrustedRemoteAddress(POLYGON_LZ_CHAIN_ID)).to.be.revertedWith( + 'LzApp: no trusted path record' + ); + const encodedEndpoint = ethers.utils.defaultAbiCoder.encode(['bytes'], [POLYGON_TRUSTED_ENDPOINT]); + await omniVotingEscrow.connect(deployer).setTrustedRemoteAddress(POLYGON_LZ_CHAIN_ID, encodedEndpoint); + + const remoteAddressBytes = await omniVotingEscrow.getTrustedRemoteAddress(POLYGON_LZ_CHAIN_ID); + const decodedAddress = ethers.utils.defaultAbiCoder.decode(['bytes'], remoteAddressBytes)[0]; + + expect(decodedAddress).to.be.eq(POLYGON_TRUSTED_ENDPOINT.toLowerCase()); + }); + + it('transfer ownership to LM multisig', async () => { + expect(await omniVotingEscrow.owner()).to.be.eq(deployer.address); + + await omniVotingEscrow.connect(deployer).transferOwnership(LM_MULTISIG); + expect(await omniVotingEscrow.owner()).to.be.eq(LM_MULTISIG); + }); + }); +}); diff --git a/tasks/20230525-l2-veboost-v2/input.ts b/tasks/20230525-l2-veboost-v2/input.ts index 670b251f..d60a5258 100644 --- a/tasks/20230525-l2-veboost-v2/input.ts +++ b/tasks/20230525-l2-veboost-v2/input.ts @@ -1,3 +1,5 @@ +import Task, { TaskMode } from 'task'; + export type L2VeBoostV2Deployment = { VotingEscrow: string; }; @@ -5,30 +7,50 @@ export type L2VeBoostV2Deployment = { export default { // https://polygonscan.com/address/0xE241C6e48CA045C7f631600a0f1403b2bFea05ad polygon: { - VotingEscrow: '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad', + VotingEscrow: new Task('20230524-lz-omni-voting-escrow-child', TaskMode.READ_ONLY).output({ + network: 'polygon', + }).OmniVotingEscrowChild, }, // https://arbiscan.io/address/0xe241c6e48ca045c7f631600a0f1403b2bfea05ad arbitrum: { - VotingEscrow: '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad', + VotingEscrow: new Task('20230524-lz-omni-voting-escrow-child', TaskMode.READ_ONLY).output({ + network: 'arbitrum', + }).OmniVotingEscrowChild, }, // https://optimistic.etherscan.io/address/0xe241c6e48ca045c7f631600a0f1403b2bfea05ad optimism: { - VotingEscrow: '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad', + VotingEscrow: new Task('20230524-lz-omni-voting-escrow-child', TaskMode.READ_ONLY).output({ + network: 'optimism', + }).OmniVotingEscrowChild, }, // https://gnosisscan.io/address/0xe241c6e48ca045c7f631600a0f1403b2bfea05ad gnosis: { - VotingEscrow: '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad', + VotingEscrow: new Task('20230524-lz-omni-voting-escrow-child', TaskMode.READ_ONLY).output({ + network: 'gnosis', + }).OmniVotingEscrowChild, }, // https://snowtrace.io/address/0xe241c6e48ca045c7f631600a0f1403b2bfea05ad avalanche: { - VotingEscrow: '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad', + VotingEscrow: new Task('20230524-lz-omni-voting-escrow-child', TaskMode.READ_ONLY).output({ + network: 'avalanche', + }).OmniVotingEscrowChild, }, // https://zkevm.polygonscan.com/address/0xe241c6e48ca045c7f631600a0f1403b2bfea05ad zkevm: { - VotingEscrow: '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad', + VotingEscrow: new Task('20230524-lz-omni-voting-escrow-child', TaskMode.READ_ONLY).output({ + network: 'zkevm', + }).OmniVotingEscrowChild, }, // https://basescan.org/address/0xE241C6e48CA045C7f631600a0f1403b2bFea05ad base: { - VotingEscrow: '0xE241C6e48CA045C7f631600a0f1403b2bFea05ad', + VotingEscrow: new Task('20230524-base-lz-omni-voting-escrow-child', TaskMode.READ_ONLY).output({ + network: 'base', + }).OmniVotingEscrowChild, + }, + // https://basescan.org/address/0xE241C6e48CA045C7f631600a0f1403b2bFea05ad + fraxtal: { + VotingEscrow: new Task('20230524-lz-omni-voting-escrow-child', TaskMode.READ_ONLY).output({ + network: 'fraxtal', + }).OmniVotingEscrowChild, }, }; diff --git a/tasks/20230525-l2-veboost-v2/output/fraxtal.json b/tasks/20230525-l2-veboost-v2/output/fraxtal.json new file mode 100644 index 00000000..9c3916fb --- /dev/null +++ b/tasks/20230525-l2-veboost-v2/output/fraxtal.json @@ -0,0 +1,3 @@ +{ + "VeBoostV2": "0x1702067424096F07A60e62cceE3dE9420068492D" +} \ No newline at end of file diff --git a/tasks/20230525-l2-veboost-v2/readme.md b/tasks/20230525-l2-veboost-v2/readme.md index 6f1bc7f0..39d75192 100644 --- a/tasks/20230525-l2-veboost-v2/readme.md +++ b/tasks/20230525-l2-veboost-v2/readme.md @@ -15,4 +15,5 @@ The artifact is the same as in the [20221205-veboost-v2 task](../20221205-veboos - [Avalanche mainnet addresses](./output/avalanche.json) - [Polygon zkEVM mainnet addresses](./output/zkevm.json) - [Base mainnet addresses](./output/base.json) +- [Fraxtal mainnet addresses](./output/fraxtal.json) - [`VeBoostV2` artifact](./artifact/VeBoostV2.json)